字母数字数据的高级排序

字母数字数据的高级排序

我需要对以下格式的数据进行排序:A1、A2...A10...A??,然后从 B1、B2...B?? 开始,到达 Z?? 后,转到 AA1、AA2、AA3...AA??,然后到 AB1、AB2 等等。我不知道首字母后面可能有多少实际数字,但不会超过 3 位。字母不会超过 2 个字符,因此 ZZ 将是最高计数。基本排序将单元格视为文本,因此将其排序为 A1、A10、A11-A19、A2 等等,但这不适用于这种情况。我不熟悉 VBA,无法创建自定义列表,因为组件上的引脚因零件而异。任何帮助都将不胜感激。肖恩

这是我最终想要做的事情 - 按显示的顺序对 A 列进行排序。

Excel 屏幕截图

答案1

如果您有 O365,则可以使用单个公式执行此操作:

=SORTBY(myRng,COLUMN(INDIRECT(myRng)),1,ROW(INDIRECT(myRng)),1)

myRng其中需要排序的范围是。

在此处输入图片描述

在此处输入图片描述

它使用与下面看到的分割相同的算法,如果您没有该功能,则可以使用该算法。

拆分原始数据以便按您想要的方式排序。但我建议通过假设值代表单元格地址来拆分它们。

然后您就可以获得代表字母和数字部分的数字。

下面是公式:

B1: =COLUMN(INDIRECT(A1))
C1: =ROW(INDIRECT(A1))

在此处输入图片描述

按 B 列和 C 列排序:

在此处输入图片描述

这就是你想要的结果吗?

答案2

看起来您想要按字母数字顺序对数据进行排序,但要覆盖 Excel 的标准行为,即当常用文本相同时,先将较短的文本排序在较长的文本之前。

您可以使用“辅助”列来填充数据,使它们的长度相同,然后按该辅助列对范围进行排序。

您说数据由 1-2 个字母和 1-3 个数字组成,因此我们将填充到总共 6 个字符(比我们实际需要的字符多一个,以防万一)。我们还将选择一个填充字符,~该填充字符在数字 0-9 和字母 AZ 的 ASCII 码之前。

=A2&REPT("~",6-LEN(A2))

现在按辅助列对区域进行排序,您应该得到您喜欢的顺序。

Excel 屏幕截图

相关内容