各位表亲好,关于字符替换大家应该都不陌生。EXCEL中提供两种替换的方法,一个是通过“查找替换”(快捷键是“Ctrl+H”),另外一种是利用函数进行替换。EXCEL提供的替换函数有两个,分别是SUBSTITUTE函数和REPLACE函数,今天咱们就来聊聊函数法进行字符替换。
(一)函数介绍:
1. SUBSTITUTE
函数用途:在文本字符串中用新字符替代指定的旧字符。
函数写法:=SUBSTITUTE(包含要替换的字符串,旧字符,新字符,替换第几次出现的旧字符)。
特点:可替换指定第几次出现的旧字符,也可替换全部制定的旧字符。
2. REPLACE
函数用途:在文本字符串中用新字符替代指定位置的旧字符。
函数写法:=REPLACE(包含要替换的字符串, 起始位置, 替换几个字符, 新字符串)。
特点:不按出现的次数,而是按指定的位置进行替换。
(二)应用案例
1.用星号显示出生日期
图1:用星号显示出生日期公式】D3单元格中的公式为:=REPLACE(C3,7,8, "********"),其中第二个参数表示从身份证号的第7为开始,第三个参数表示指定位置开始需替换8个字符,第四个参数为替换老字符的新字符是"********"。
如果使用SUBSTITUTE, 公式为=SUBSTITUTE(C3,MID(C3,7,8),"********")。
2.统计各国武将的人数
图2:统计各国武将的人数【公式】C3单元格中的公式为:=LEN(B3)-LEN(SUBSTITUTE(B3,"、",""))+1。
【拆解】首先,使用SUBSTITUTE(B3,"、","")将B2单元格中的“、”替换为空;然后,使用LEN函数分别统计替换前后B2字符个数的差值,差值就是“、”的 个数;最后,再加上1就是武将的数量。
3.统计单位的数量合计
图3:统计单位的数量合计【公式】C6中的公式为:=SUMPRODUCT(SUBSTITUTE(C3:C5,"吨","")*1)。
【拆解】首先,使用SUBSTITUTE函数将C3:C5中的“吨”替换为空,得到数量;然后,用得到的数量*1,将文本转化为数值;最后,使用SUMPRODUCT函数进行求和。
【注意】文本函数处理的结果仍然是文本格式。
4.根据分隔符进行分列
图4:根据分隔符进行分列【公式】B3、C3、D3单元格中的公式分别为
=TRIM(MID(SUBSTITUTE($A3,"/",REPT(" ",99)),COLUMN(A2)*100-99,99));
=TRIM(MID(SUBSTITUTE($A3,"/",REPT(" ",99)),COLUMN(B2)*100-99,99));
=TRIM(MID(SUBSTITUTE($A3,"/",REPT(" ",99)),COLUMN(C2)*100-99,99));
【拆解】
① 利用SUBSTITUTE函数将"/"用重复了99次的空格替换;
② 利用COLUMN(A2)*100-99构建1,101,201,的数据序列作为MID函数的第二个参数;
③ 利用MID函数分别从第1位、第101位、第201位提取长度为99个字符;
④ 最后利用TRIM去除多余的空格得到数值;
【注意】公式中为什么用99的目的是为了重复的空格长度要大于字符的长度,确保能够提取到想要提取到的数据。
5.拆分同类项
图5:拆分同类项【公式】B9单元格中的公式为:
=TRIM(MID(SUBSTITUTE(LOOKUP(1,0/($A$3:$A$5=A9),$B$3:$B$5),"、",REPT(" ",99)),100*COUNTIF($A$8:A9,A9)-99,100));
【拆解】
① 利用LOOKUP函数的经典套路,根据国家名称确定需要替换的单元格;
② 利用SUBSTITUTE函数和PEPT函数将"、"用重复了99次的空格替换;
③ 利用100*COUNTIF-99构建1、101、201的数列,作为MID函数的第二参数;
④ 最后利用TRIM函数去除多余的空格得到数值;
结语:今天我们学习了PEPLACE和SUBSTITUTE函数的含义、并介绍了两个函数的区别和基本用法。好了今天的内容就到这里了,Bye!