1职场实例
小伙伴们大家好,今天我们来学习使用函数的方法提取指定符号前面或后面的内容。解决今天的这个问题,一般情况下我们可能会首先想到使用“分列”的方式提取,但是今天我们要求使用的是函数公式,所以不考虑这种束缚我们思维扩散的传统做法。要说运用公式,面对复杂的多函数嵌套,Excel又推出了特别好用的、专门针对此类问题的TEXTBEFORE函数和TEXTAFTER函数。
如下图所示:
A列为一列内容,我们发现单元格内有明显的分隔符号冒号(:),现在我们想要在B列得到A列单元格内容中冒号前面的字符串,在C列得到A列单元格内容中冒号后面的字符串。
2解题思路
TextAfter函数的作用是:提取分隔符,后面的字符;TextBefore函数的作用是:提取分隔符,前面的字符。顾名思义,After在英文中是“向后”的意思,Before在英文中是“向前”的意思,所以TextAfter和TextBefore就很容易被我们记忆和理解了。
我们先来对比旧方法,以前我们提取指定符号,本例中是冒号前面的内容时,使用的函数公式是:
=LEFT(A2,FIND(":",A2)-1)
FIND(":",A2)部分用来确定“:”冒号在A2单元格中的位置,返回数字3;
在FIND(":",A2)的基础上减去1,即可获得冒号前面的字符数量2,以此作为LEFT函数的第2参数,即用LEFT函数提取A2单元中,左边2个字符“电话”。
用LEFT嵌套FIND函数,提取冒号前面的内容,确实有点复杂麻烦。用TextAfter函数就轻松明了多了,在B2单元格输入函数公式:
=TEXTBEFORE(A2,":")
TEXTAFTER:是提取指定字符之后的内容。
TEXTBEFORE函数参数:
=TEXTBEFORE(要拆分的文本,分隔符,[搜索的方向],[是否区分大小写],[结尾匹配],[异常返回值])
虽然TEXTBEFORE函数有六个参数,但是一般情况下我们只用到前两个参数。
即用TEXTBEFORE函数提取A2单元格内冒号之前的内容“电话”。
提取指定符号后面的内容,本例中是冒号后面的内容,以前的老方法是使用的函数公式:
=RIGHT(A2,LEN(A2)-FIND(":",A2))
FIND(":",A2)部分获取冒号在A2单元格的位置3,再用LEN(A2)获取A2单元格的总字符数量,用LEN(A2)与FIND(":",A2)相减获取冒号之后的字符总数量11,以此来作为RIGHT函数的第2参数,即用RIGHT函数提取A2单元中,右边11个字符:“158****1314”。
然而用TEXTAFTER就更简单了,在C2单元格输入函数公式:
=TEXTAFTER(A2,":")
TEXTAFTER函数与TEXTBEFORE函数语法一样,只不过提取指定符号前后内容的方向正好相反,TEXTAFTER是提取指定字符之后的内容。
即用TEXTAFTER函数提取A2单元格中指定的符号冒号之后的内容:“158****1314”。