excel - 将数字和字符串排序在一起,其中字符串是可以后跟字母的数字

标签 excel sorting

我需要对一个混合了实际数字和文本的 Excel 工作表进行排序,其中的数字可能后跟文本。
例如,如果以下列表是随机的,则最终结果应该是:

54 <-- Actual number
55
56
57
57B <-- Number followed by a letter
57M <-- Yet another letter
58
58M
59
59M
60
60B
61
61M
62
62B
63
64
65
66
90
99
99A
100
100B
100B2
120
120B
我尝试了一百万种不同的方法。但是,我无法找到像这样对工作表进行排序的方法。
有没有办法做到这一点?某种“人性化”排序?

最佳答案

使用以下公式添加辅助列:

=TEXT(IFERROR(LEFT(A1,MIN(IF(ISERROR(--MID(A1,SEQUENCE(LEN(A1)),1)),SEQUENCE(LEN(A1))))-1),A1),"000")&IFERROR(MID(A1,MIN(IF(ISERROR(--MID(A1,SEQUENCE(LEN(A1)),1)),SEQUENCE(LEN(A1)))),LEN(A1)),"")
然后排序。
注意:更改"000"到与列表中最大数字相同的位数。
此外,如果没有 SEQUENCE 用 ROW($ZZ$1:INDEX($ZZ:$ZZ,LEN(A1))) 替换该部分。然后,在退出编辑模式时,还需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认公式。
按 A 列排序:
enter image description here
按 B 列排序:
enter image description here

关于excel - 将数字和字符串排序在一起,其中字符串是可以后跟字母的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71872963/

相关文章:

excel - 更改原始电子表格后更新电子表格

vba - excel vba中出现错误 “Out of Memory”

C++:运行时检查失败;堆栈变量损坏;也因一个错误而关闭

r - R 中每组第 k_ 个最小元素

shell - Unix 中的自定义排序

javascript - 按字母顺序对数组进行排序,将数字和特殊字符保留在末尾

sql-server - SSIS - 目标excel不显示所有单元格,而只显示F1,F2等

graph - 创建包含多个调查结果的 Excel 图表

vba - Excel VBA - 以 0 开头的字符串

c - 如何为二维数组的 qsort 编写比较器函数?