之前给大家讲解了如何用 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], …);
所以此处的公式就表示用换行符将排序后的数值合并起来。从而实现题目需求。