都是套路!如果非要用公式按分隔符拆分 Excel 单元格,那就是它

文摘   科技   2024-11-15 19:01   上海  

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!


点击上方蓝字 --> 点击“...”--> 选择“设为星标


前阵子带大家复习了按分隔符拆分单元格的各种方式,涵盖了快捷键、分列、PQ 等多种解法。


之所以当时没用公式,是因为公式有点难度,若非必须,完全有更简单的方法可替代。但有宝子留言说就是需要公式解法,别的就是不行不行。


那今天我就教一个分列的套路公式。觉得理解太难的话,保存套用就行。


案例:


将下图 1 中 A 列的食品按分隔符拆分,结果填写到右侧的单元格中。


效果如下图 2 所示。


解决方案:


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

=TRIM(MID(SUBSTITUTE($A2,"/",REPT(" ",50)),COLUMN(A1)*50-49,50))


2. 向右向下拖动,复制公式。


公式释义:

  • REPT(" ",50):生成 50 个连续的空格;因为要拆分出来的每段字符数都不超过 50,所以这个数值足够大了;

  • SUBSTITUTE($A2,"/",...):将 A2 单元格中的所有“/”都替换成 50 个空格,也就是说,单元格中的分隔符由原来的“/”变成了 50 个空格;

  • MID(...,COLUMN(A1)*50-49,50):

    • mid 函数的作用是返回文本字符串中从指定位置开始的特定数目的字符;

    • 语法为 mid(要提取字符的文本字符串,要提取的第一个字符的位置,从文本中返回字符的个数);

    • 第二个参数中的 COLUMN(A1) 返回 A1 列的列号,即 1;COLUMN(A1)*50-49 的结果就变成 1*50-49=1;也就是从第 1 个字符开始提取;随着公式向右拖动,COLUMN(A1) 的结果会依次递增,于是变成 2*50-49=51;3*50-49=101;因为需要提取的每段字符都不超过 50 个,所以按每 50 为一个分界点足够将每段字符提取出来了;

    • 第三个参数为 50,表示总共提取 50 个字符;

    • 至此,已经将每段字符都按分隔符提取到不同单元格中了,只是因字符长短不同,前后会有数量不等的空格;

  • 所以最后在外面包一个 TRIM 函数,去除字符前后的所有空格


转发、点赞、在看也是爱!

Excel学习世界
你遇到的所有 Excel 坑,我都帮你趟过了。
 最新文章