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个字符的数据。

……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354