在之前的 Excel 技巧分享中,我们详细讲解了如何运用 PQ(Power Query)的方法给合并单元格内的数值重新排序,不少同学对此很感兴趣,同时也提出疑问:有没有公式可以实现同样的效果呢?答案是肯定的!利用 Excel 365 的函数,我们能够轻松达成这一目标。今天,就通过一个实际案例,为大家展示如何运用公式为合并单元格中的数值按升序排序,并将结果仍放置在合并单元格内。
现有数据如图 1 所示,我们的任务是将这些合并单元格中的数值进行升序排序,最终呈现出如图 2 所示的效果。
图 1
图 2
解决方案:
输入公式:在 B2 单元格中输入公式 “=TEXTJOIN (CHAR (10),,SORT (--TEXTSPLIT (A2,,CHAR (10))))” 。
公式详细释义:
CHAR(10):这部分代表换行符。在整个公式的运算过程中,它充当着重要的分隔角色,用于后续对文本进行拆分和合并的操作。
TEXTSPLIT(A2,,CHAR(10)):
函数作用:TEXTSPLIT 函数的主要功能是依据指定的分隔符来拆分文本字符串。
函数语法:TEXTSPLIT (要拆分的文本字符串,列分隔符,[行分隔符],[忽略空值], [是否区分大小写;0 表示区分,1 不区分], [用于填充结果的值,默认值为 #N/A]) 。
公式解析:在我们输入的公式中,“TEXTSPLIT (A2,,CHAR (10))” 表示以换行符(CHAR (10))作为分隔符,将 A2 单元格中的内容拆分成不同的行。比如,如果 A2 单元格中有 “10 换行符 20 换行符 30” 这样的内容,经过这个函数处理后,就会被拆分成 “10”“20”“30” 三个独立的部分。
--:在 “--TEXTSPLIT (A2,,CHAR (10))” 中,“--” 的作用至关重要。由于 TEXTSPLIT 函数拆分出来的结果默认是文本格式,而我们后续要对这些数值进行排序,如果不将其转换为数值格式,那么排序时遵循的是文本排序规则,即从左到右先比较第一位数,再比较第二位数,以此类推。这样就可能会出现像 “56958816 比 6049572 小” 这种不符合数值大小逻辑的错误排序结果。加上 “--” 后,就能将文本格式的数值成功转换成真正的数值格式,为正确排序做好准备。
SORT(...):这个函数用于对前面转换为数值格式的内容进行排序。在默认情况下,SORT 函数会按照升序对数值进行排列。也就是说,经过这一步处理,之前拆分并转换格式后的数值就会按照从小到大的顺序排列好。
TEXTJOIN(CHAR(10),,...):
函数作用:TEXTJOIN 函数与 TEXTSPLIT 函数的功能恰好相反,它主要用于将文本合并起来。
函数语法:TEXTJOIN (分隔符,忽略空值,文本 1, [文本 2], …) 。
公式解析:在我们的公式中,“TEXTJOIN (CHAR (10),,...)” 表示使用换行符(CHAR (10))作为分隔符,将经过 SORT 函数排序后的数值重新合并起来。这样,就完美地实现了将合并单元格中的数值按升序排序,并将结果仍放置在合并单元格内的题目需求。
通过这个 Excel 365 函数的巧妙运用,我们成功解决了合并单元格数值排序的问题。掌握了这个技巧,在处理数据时,就能更加高效地应对各种复杂的排序需求,让数据处理工作变得更加轻松。赶紧动手试试吧,看看这个公式在你的实际操作中能发挥多大的作用!
评论 (0)