在excel 2007中显示,排序和过滤带有多个小数的数字

时间:2013-05-02 10:57:31

标签: excel excel-vba excel-2007 vba

我正在使用excel 2007。

我有一个任务列表(200-500),我需要在不同的类别/部分等(多个过滤器)进行分组。整个数据在excel表中,因此我可以应用Excel的内置表过滤器来显示我需要的确切数据。

然而,应用多个过滤器来显示预期数据总是很困难,特别是因为我需要经常这样做。为了简单起见,我打算为每条记录编号,如

a.b.c.d.e.f 

Where a, b, c, d, e, f are simple numbers. List looks like:
1
1.1
1.2
1.2.1
1.2.1.1
1.2.2
1.3
& so on.

问题是,Excel将其作为单个小数的数字,但只要我添加第二个小数,excel将其视为文本,这在一般行为中是显而易见的。

但是,作为特例,我需要excel同时将其视为数字或文本。数字是可取的,因为我想对它们进行排序,这可能很难作为文本。

为了使事情变得更复杂,在表格中进行过滤时,我需要添加一些公式来过滤结果,例如1.*应显示所有数字以1.开头

是否可以使用excel的默认行为,没有VBA?

如果不是,是否可以使用VBA?如果是的话,任何线索都会受到赞赏。我不需要整个程序,因为我可以编写基本的VBA程序,只是想知道它是如何完成的?

2 个答案:

答案 0 :(得分:2)

我通过添加一个帮助列来对我进行排序,该列在前面添加一个字母并对其进行排序。例如。 1变为f1,1.1变为f1.1等。然后所有都被排序为文本。

您可以使用公式="f" & A1

我的样本:

Sample

然后数据排序:

Sorted

过滤器:

filtered

答案 1 :(得分:1)

如果我在没有VBA的情况下尝试此操作,我的第一步是在数据选项卡上使用sort to columns函数。

enter image description here

接下来,确保数据中的所有空格都用零填充。 enter image description here

然后按列

对数据进行排序

enter image description here

只要您将原始数据保留在与排序数据相同的行中(我没有在发布的图像中专注于该过程),您的项目现在应该是有序的。