公式很短,将Excel合并单元格中的数据行按大小排序

Excel学习世界 2025-02-21 14:37:17

之前给大家讲解了如何用 PQ 的方法给合并单元格内的数值重新排序。

有同学问有没有公式可以实现?那肯定有,用 365 函数也是能很容易做到的。

案例:

将下图 1 的合并单元格中的数值按升序排序,结果仍放置在合并单元格内。

效果如下图 2 所示。

解决方案:

1. 在 B2 单元格中输入以下公式:

=TEXTJOIN(CHAR(10),,SORT(--TEXTSPLIT(A2,,CHAR(10))))

公式释义:

CHAR(10):表示换行符;

TEXTSPLIT(A2,,CHAR(10)):

TEXTSPLIT 函数的作用是用分隔符拆分文本字符串;

语法为 TEXTSPLIT(要拆分的文本字符串,列分隔符,[行分隔符],[忽略空值], [是否区分大小写;0 表示区分,1 不区分], [用于填充结果的值,默认值为 #N/A]);

这段公式表示以换行符作为分隔符,将 A2 单元格拆分成不同的行;

--:

上述函数拆分出来的是文本格式,加上“--”可以将文本转换成数值格式;

如果不加的话,就是对文本排序,那么排序的规则是从左到右先比较第一位数,再比较第二位数,以此类推……这就会产生 56958816 比 6049572 小这种错误排序;

SORT(...):对上述数值排序,默认情况下是按升序排序;

TEXTJOIN(CHAR(10),,...):

textjoin 函数与 textsplit 的作用正好相反,是用于将文本合并起来;

语法为 TEXTJOIN(分隔符, 忽略空值, 文本1, [文本2], …);

所以此处的公式就表示用换行符将排序后的数值合并起来。从而实现题目需求。

0 阅读:29
Excel学习世界

Excel学习世界

Excel 学习交流