1职场实例

小伙伴们大家好,今天我们来学习使用函数的方法提取指定符号前面或后面的内容。解决今天的这个问题,一般情况下我们可能会首先想到使用“分列”的方式提取,但是今天我们要求使用的是函数公式,所以不考虑这种束缚我们思维扩散的传统做法。要说运用公式,面对复杂的多函数嵌套,Excel又推出了特别好用的、专门针对此类问题的TEXTBEFORE函数TEXTAFTER函数

如下图所示

A列为一列内容,我们发现单元格内有明显的分隔符号冒号:),现在我们想要在B列得到A列单元格内容中冒号前面的字符串,在C列得到A列单元格内容中冒号后面的字符串。


Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_嵌套


2解题思路

TextAfter函数的作用是:提取分隔符,后面的字符;TextBefore函数的作用是:提取分隔符,前面的字符。顾名思义,After在英文中是“向后”的意思,Before在英文中是“向前”的意思,所以TextAfter和TextBefore就很容易被我们记忆和理解了。


下面我们就来看一下具体操作方法。


Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_分隔符_02


我们先来对比旧方法,以前我们提取指定符号,本例中是冒号前面的内容时,使用的函数公式是:

=LEFT(A2,FIND(":",A2)-1)


FIND(":",A2)部分用来确定“:”冒号在A2单元格中的位置,返回数字3;

在FIND(":",A2)的基础上减去1,即可获得冒号前面的字符数量2,以此作为LEFT函数的第2参数,即用LEFT函数提取A2单元中,左边2个字符“电话”。

Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_分隔符_03


用LEFT嵌套FIND函数,提取冒号前面的内容,确实有点复杂麻烦。用TextAfter函数就轻松明了多了,在B2单元格输入函数公式:

=TEXTBEFORE(A2,":")


TEXTAFTER:是提取指定字符之后的内容。


TEXTBEFORE函数参数

=TEXTBEFORE(要拆分的文本,分隔符,[搜索的方向],[是否区分大小写],[结尾匹配],[异常返回值])


虽然TEXTBEFORE函数有六个参数,但是一般情况下我们只用到前两个参数。


即用TEXTBEFORE函数提取A2单元格内冒号之前的内容“电话”。

Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_分隔符_04


提取指定符号后面的内容,本例中是冒号后面的内容,以前的老方法是使用的函数公式:

=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”。

Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_字符串_05


然而用TEXTAFTER就更简单了,在C2单元格输入函数公式:

=TEXTAFTER(A2,":")


TEXTAFTER函数与TEXTBEFORE函数语法一样,只不过提取指定符号前后内容的方向正好相反,TEXTAFTER是提取指定字符之后的内容


即用TEXTAFTER函数提取A2单元格中指定的符号冒号之后的内容:“158****1314”。

Text家族又添新成员,TextBefore和​TextAfter提取指定符号前后内容!_字符串_06