按分隔符将字段分列,大家首先想到怎么做?“分列”设置,或者 PQ 对吧?这两种是最常见的整理方法。
但今天这个办法可能会超出很多人的想象,用 text 函数竟然也能轻松将单元格分列提取出来。
案例:
将下图 1 的 A 列中用“/”分隔开的文本分别提取到不同列中,效果如下图 2 所示。
解决方案:
1. 在 C2 单元格中输入以下公式:
=TEXT(1,SUBSTITUTE($A2,"/",";"))
公式释义:
SUBSTITUTE($A2,"/",";"):将 A2 单元格中的“/”替换成“;”号,结果变成“马凤英;本科;运营;女”;
将上述结果用作 text 函数的第二个参数,就变成了格式代码;
text 函数的第二个参数的用法就相当于自定义单元格格式;最多可以有四个区域,用英文半角的 ; 隔开,分别代表:正数;负数;0;文本;
这样一来,substitute 的结果就分别跟四个格式段对应上了,也就是说,当 text 函数的第一个参数为正数时,显示“马凤英”,负数则显示“本科”……依此类推;
TEXT(1,...):text 的第一个参数可以是任意正数;根据上述格式代码规则,将正数显示为 ; 隔开的第一段,即“马凤英”。
* 请注意:如上所述,格式代码最多只能有 4 段,如果超出 4 段,本公式就不适用了。
2. 在 D2 单元格中输入以下公式:
=TEXT(-11,SUBSTITUTE($A2,"/",";"))
公式释义:
这里的公式含义与 C 列完全一样,对照格式代码,负数会被转换成 ; 隔开的第二段内容,也就是“本科”。
3. 根据同样的规则,要提取第三和第四段文本,只需要将 text 函数的第一个参数分别设置为 0 和任意文本即可。
=TEXT(0,SUBSTITUTE($A2,"/",";"))
=TEXT("a",SUBSTITUTE($A2,"/",";"))
4. 最后选中整行 --> 向下拖动复制公式