如何在Excel 2010中执行自定义排序

时间:2017-07-21 18:14:41

标签: arrays excel sorting

这是排序之前的样子

0, 
1 to 4,
10 to 19,
100 to 249,
1000 and up,
20 to 49,
250 to 499,
5 to 9,
50 to 99,
500 to 999,
Grand Total

我需要它看起来像这样:

0,
1 to 4,
5 to 9,
10 to 19,

依旧......

我见过类似的问题,他们使用数组。我还不熟悉数组。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我假设您确实有一个字符串值为“0”,“1到4”等的列表,我会回答这个问题。

您可以创建第二个关联列,该列使用查找对第一列进行排名,以进行某种映射...

0 -> 0
"1 to 4" -> 1
"5 to 9" -> 2
etc.

这将在您的表中实现,类似于以下内容:

╔═══════════╦═══════╗
║ Input     ║ Value ║
╠═══════════╬═══════╣
║ "0"       ║ 0     ║
║ "1 to 4"  ║ 1     ║
║ "5 to 9"  ║ 2     ║
╚═══════════╩═══════╝

然后您可以使用VLookup来设置列,就像Fink用“帮助列”说的那样。 然后,使用类似下面的内容可以非常容易地计算辅助列的值:

=VLOOKUP(text,lookup_table,2,0)

因此,如果您的查找表位于A2:B8,并且您的值列位于C中,并且要从第10行开始对表进行排序,您可能会得到类似这样的内容

=VLOOKUP($C10,$A$2:$B$8,2,0)

设置VLookup“参考”列后,将数据格式化为表格,然后按照您创建的新列进行排序应该是微不足道的。

More on VLookup()
实际VLookup reference,由微软提供。

答案 1 :(得分:0)

一般的想法是根据类别以及如何对它们进行排序来定义基于整数的SortOrder方案或辅助列。然后你就可以使用内置的excel排序功能而不会有太多麻烦。例如,0,类别的排序顺序值为11 to 4,类别的排序顺序为2,依此类推。