Excel整列的单元格都有文字和数字混合,如何按数字升序排序?

Excel学习世界 2025-04-03 21:47:25

解答网友提问:单元格内容由文本+数字组成,如何在不改变数据表的前提下,按数字排序?

这种需求一听就是哪个领导天马行空的要求,没关系,当好打工人,领导要啥就是啥。

案例:

将下图 1 中的 A 列根据单元格中的数字升序排序,效果如下图 2 所示。

解决方案 1:

1. 在 B2 单元格中输入以下公式 --> 回车:

=SORTBY(A2:A21,--RIGHT(A2:A21,LEN(A2:A21)-(LENB(A2:A21)-LEN(A2:A21))))

如果这个公式让大家理解困难,那我先拆解并简化一下,你们就知道在说啥了。

在 C2 单元格中输入以下公式 --> 下拉复制公式:

=RIGHT(A2,LEN(A2)-(LENB(A2)-LEN(A2)))

公式释义:

LENB(A2)-LEN(A2):将 A2 单元格的字节数减去字符数,就得到文本数;因为文本占 2 个字节;

LEN(A2)-...:用总字符数减去文本数,就是数字个数;

RIGHT(A2,...):从 A2 单元格中从右向左提取出数字个数,即提取所有数字

那现在再回过头看 B 列的公式:

将 RIGHT 函数中的 A2 单元格全都变成了 B 列的内容区域,形成数组;

--RIGHT(...):-- 的目的是将提取出来的文本数字转换为数值格式,这样才能排序;

SORTBY(A2:A21,...):将 A2:A21 根据第二个参数中的数值升序排序

解决方案 2:

如果没有 365 函数,那么还是用 PQ 最省事。

1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“来自表格/区域”

2. 在弹出的对话框中保留默认设置 --> 点击“确定”

表格已经上传至 Power Query。

3. 选中列 --> 右键单击 --> 在弹出的菜单中选择“重复列”

4. 选中第二列 --> 选择任务栏的“主页”-->“拆分列”-->“按照从非数字到数字的转换”

5. 将最后一列的格式修改为整数。

6. 将最后一列按升序排序。

7. 删除最后两列。

8. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”

9. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”

右侧绿色的表格就是排序结果。

0 阅读:1

Excel学习世界

简介:Excel 学习交流