Excel 函数学习07-文本类函数

在之前我们学习掌握了逻辑函数IF、AND、OR、ISTEXT、ISERROR、ISNUMBER、IFERROR、IFS、SWITCH等。

以及常用的统计类函数COUNT、COUNTA、COUNTBLANK、COUNTIF(S)、SUMIF(S)等。

聊了实用的查询与引用类函数VLOOKUP、HLOOKUP、INDEX、MATCH、LOOKUP等。

我们今天继续学习最常用的字符串处理函数,先学习它们的基础语法和用法,后续再学习它们的扩展功能。

先说下什么是字符串……,一般也可以简单认为是文本值。

本次主要学习如下:

1,字符串的合并
2,字符串的长度
3,字符串的查找
4,字符串的替换
5,字符串的截取

请记住一句话:一切文本函数的返回的计算结果必然是文本值
当然还有可能是错误值

1 字符串合并

如下图所示,需要将A/B列的数据合并为C列。



C2单元格,公式如下:

=A2&"-"&B2

公式使用文本连接符&,将A2、B2以及分隔符“-”串联在一起。

当有多个字符需要合并时,使用&过于烦琐,比如将A列的姓名,以逗号为间隔符合并为一个字符串。
此时可以使用TEXTJOIN函数:

=TEXTJOIN(",",TRUE,A2:A9)

公式返回结果:李白,李清照,关汉卿,令狐冲,杜甫,庄子,武大郎

TEXTJOIN语法如下:

=TEXTJOIN(间隔符,是否忽略空单元格,需要合并的数据1,需要合并的数据2……)

上述公式的意思也就是以逗号为间隔符,合并A2:A8的数据,同时忽略空单元格,比如A9。

需要说明的是,该函数只有最新版WPS、Excel 2019及O365版本才有哦~


2 字符串的长度

如下图所示,需要计算A列数据的字符个数,也就是字符串的长度。


B2公式如下:

=LEN(A2)

LEN函数只有一个参数,用于计算该参数字符的个数。它还有个弟弟叫LENB,可以计算字符串中用于代表字符的字节数。

3 字符串的查找

如下图所示,需要查找A列出现“朝代”的位置。



判断一个字符串中是否包含某个关键词,或者查找关键词在指定字符串的位置,最常用的函数有两个FIND和SEARCH。

FIND函数的语法如下:

=FIND(找谁?在哪里找?[从第几个字符开始找?])

第3参数是可以省略的,如果该参数省略,则默认为1。

比如,公式:=FIND("朝代","哪个朝代")

公式返回结果为3,说明查找值”朝代“在字符串”哪个朝代“的第3个字符开始的位置。

当FIND函数查无结果时,会返回错误值#VALUE!。

比如,公式:=FIND("唐朝","哪个朝代")

结果为#VALUE!

借助这一规则,我们可以使用以下两个函数判断指定字符串中是否包含某个关键词。

=IF(ISNUMBER(FIND("PPT","我爱excel")),"包含","不包含")

=IF(ISERR(FIND("PPT","我爱excel")),"不包含","包含")

............................................
SEARCH函数的语法和功能同FIND函数极其类似。

=SEARCH(找谁?在哪里找?[从第几个字符开始找?])

第3参数同样可以省略的,如果该参数省略,则默认为1。

SEARCH和FIND函数的主要区别在于,FIND函数区分字母大小写,并且不允许使用通配符;SEARCH函数则不区分字母大小写,但是允许使用通配符。

比如,你忘记了excel的完整拼法,只记得以e开头,以l结尾,查找该关键词在我爱excel中的位置。公式如下:

=SEARCH("朝*代","哪个朝代")

再比如,公式:=SEARCH("PPT","我爱EXCEL")
结果为错误值。

4 字符串的替换

如下图所示,需要将A列的关键字”朝代"替换为空白。



SUBSTITUTE函数可以将字符串中指定的内容替换为新的字符串,语法如下:

=SUBSTITUTE(源字符串,旧的字符串,新的字符串,第几次出现的旧字符串?)

第4个参数是可选的,如果省略则将源字符串中所有符合条件的旧字符串全部替换为新字符串。

例如公式=SUBSTITUTE("1111","1","2"),结果为2222

如果第4参数有指定次数,比如2,则只替换第2次出现的旧字符串。

例如公式=SUBSTITUTE("1111","1","2",2),结果为1211

示例中A列公式如下:

=SUBSTITUTE(A2,"朝代","")

需要说明的是,SUBSTITUTE函数区分字母大小写,如公式:

=SUBSTITUTE("微博@EXCELers","Excel","")

返回结果:微博@EXCELers

除了SUBSTITUTE函数,REPLACE函数也具有替换指定字符串的作用,它可以将指定位置的旧字符串替换为新字符串。语法如下:

=REPLACE(源字符串,开始位置,替换个数,新的文本)

如下图所示,需要将号码的前3位字符替换为*。



F2公式如下:

=REPLACE(E2,1,3,"***")

公式的意思是将E2单元格的值,从第1位取3个,替换为***

也可以使用SUBSTITUTE函数完成该任务,公式如下:

=SUBSTITUTE(E2,LEFT(E2,3),"***",1)

此时SUBSTITUTE的第4参数能不能省略

5 字符串的截取

在日常工作和学习中,字符串截取的问题非常常见,常用的函数有LEFT/RIGHT/MID/LEFTB/RIGHTB/MIDB等。

其中LEFT函数只有一个参数,是从字符串的左边提取指定个数的字符。

如下图所示,提取D列中的班级信息。


班级都是两个字符构成的,所以E2单元格公式如下:

=LEFT(D2,2)

意思是从D2单元格的左边提取两个字符,即为班级。

...................................................

RIGHT函数也只有一个参数,可以从字符串的右边提取指定个数的字符。

如下图所示,需要提取G列的电话号码。



电话号码都是8个字符构成的,所以H列公式如下:

=RIGHT(G2,8)

意思是从G2单元格的右边提取8个字符。

MID函数可以从字符串指定位置,提取指定长度的字符。语法如下:

=MID(源字符串,从第几个位置开始取?,取几个字符?)

如下图所示,需要提取A列身份证中的年月日。



身份证从第7位开始是出生年月日,所以B2公式如下:

=MID(A2,7,8)

意思是从A2单元格,第7个字符开始,提取8个字符。

这几个函数常和FIND/SEARCH函数搭配使用;类似于INDEX+MATCH函数组合,FIND函数用于获取目标数据的位置,MID函数按图索骥,提取数据。

如下图所示,需要提取A列数据中的爱好,也就是分隔符"-"后的数据。



B12公式如下:

=MID(A12,FIND("-",A12)+1,99)

FIND("-",A12),查询A12单元格"李白-喝酒"中字符 - 第一次出现的位置,本例为3,该字符不是我们需要的,所以+1,也就是FIND("-",A12)+1

公式的意思也就是从A12单元格的第4个字符开始,提取99个字符。

有朋友会问,为什么是99个字符?为什么不是4?4不就够了吗?

——你怎么知道4就够了呢?

首先,99是一个很大的值,大于预测中可能的结果的最大长度,这样可以防止提取的结果有字符遗漏。然后,当该值大于实际结果的字符串长度时,SUBSTITUTE函数会默认以实际的长度为准。

比如=MID(A12,FIND("-","看见星光-发呆")+1,99)

实际结果发呆只有2个字符,SUBSTITUTE便只会提取2个字符的数据。

……

你可能感兴趣的:(Excel 函数学习07-文本类函数)