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

Excel学习世界 2023-07-21 19:44:04

前阵子带大家复习了按分隔符拆分单元格的各种方式,涵盖了快捷键、分列、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 函数,去除字符前后的所有空格

0 阅读:82

Excel学习世界

简介:Excel 学习交流