Excel问题中的值排序

Excel问题中的值排序,excel,Excel,我有一个电子表格,我正在根据项目编号列进行排序。因此,如果项目编号列具有以下值: 2.2 2.1.b 我希望具有2.1.b的行位于2.2行之前。但是,Excel中的排序函数将2.2放在前面。它必须根据字符数确定值 有没有办法在VBA中对列进行排序?我会添加一个带有公式的隐藏列,以将2.1.b格式转换为更简单、可排序的数值,如10000*第一位数字+100*第二位数字+asciiletter-“a”,其中:第一位数字=10000*NUMSUBSTRINGA1;查找,A1。。。等等。这可以在Exc

我有一个电子表格,我正在根据项目编号列进行排序。因此,如果项目编号列具有以下值:

2.2
2.1.b
我希望具有2.1.b的行位于2.2行之前。但是,Excel中的排序函数将2.2放在前面。它必须根据字符数确定值


有没有办法在VBA中对列进行排序?

我会添加一个带有公式的隐藏列,以将2.1.b格式转换为更简单、可排序的数值,如10000*第一位数字+100*第二位数字+asciiletter-“a”,其中:第一位数字=10000*NUMSUBSTRINGA1;查找,A1。。。等等。

这可以在Excel中轻松完成,方法是创建一个自定义列表,然后对该列表进行排序

自定义列表允许您创建自己的默认排序顺序。您可以创建一个新的自定义列表,如下所示:0,1,2,3,4,5,6,7,8,9,、a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z。如果您的排序需要进一步的逻辑,您可以添加到这一点

然后,这个新列表将首先按照数字、句点、字母进行排序


您创建了列表,当第一次排序时,选择自定义排序,选择新列表,就完成了。现在,当您进行排序时,数据将根据您的新标准进行排序。

您无需使用代码即可完成此操作Excel支持此内置:

将整个列的数字格式设置为文本格式,而不是常规格式。 您必须重新输入以前输入的任何仅限数字的条目。 作为第2步的替代方法,如果您已经有很多预先存在的条目,则可以使用文本函数对该列进行排序,或者复制并粘贴值以覆盖原始列值


我在Excel 2007中对此进行了测试,但我非常确定这种行为已经存在了一段时间。

如果在每个值前面加上撇号,这将向Excel表明该值是文本而不是数字

至少这是理论

Excel在试图修复看起来像数字的文本方面非常积极。它会在每个单元格上通知有一个格式化为text duh!,然后你必须选择忽略错误,因为它不是一个真正的数字

然后将数字格式从“常规”更改为“文本”,以便更好地测量

然后,当你试图对它进行分类时,它会再次试图握住你的手,纠正你的错误。通过分别选择排序数字和存储为文本的数字,您可以让它执行您想要的操作。没有,都是[形容词解释]文本[感叹词解释]!遗憾的是,这是一个选择