如何在Excel 2010中执行自定义sorting

这是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, 

等等..

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

我将在这样的假设下回答这个问题,假设你字面值为“0”,“1到4”等string

您可以创build第二个关联列,使用查找来排列第一列,以进行一种映射…

 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行开始对表进行sorting,你可能会得到类似的结果

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

设置VLookup“引用”列之后,将数据格式化为表格,然后按照您创build的新列进行sorting应该很简单。

更多关于VLookup()
实际VLookup参考 ,由Microsoft提供。

一般的想法是根据类别定义基于整数的SortOrderscheme或帮助列,以及如何对它们进行sorting。 那么你可以使用内置的Excelsortingfunction,没有太多的麻烦。 因此,例如, 0,类别的sorting顺序值为1 to 4,类别的sorting顺序为2 ,依此类推。