加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SUBSTITUTE函数详解_Excel公式教程

(2016-06-15 18:52:37)
标签:

excel公式教程

substitute函数

分类: Excel公式教程-函数篇

语法SUBSTITUTE(text,old_text,new_text,[instance_num])

把文本text中的子文本old_text,用新文本new_text替换。

SUBSTITUTE函数不支持通配符,参数text、old_text和new_text中的“?”“*”“~”一律视作普通字符。

SUBSTITUTE函数严格区分英文字母大小写。

参数instance_num是一个数字值,小数部分截尾取整。用来指定替换文本text中第几次出现的old_text。

Instance_num必须≥1,否则函数返回错误值#VALUE!。

如果指定了instance_num,则只替换该处的old_text;否则替换所有的old_text。

如果instance_num大于old_text出现的次数,则不发生替换,函数直接返回原文本text。

用法

一、替换文本。

=SUBSTITUTE("A类","A","B")  返回"B类"

=SUBSTITUTE("1-2-3-4","-","_")  返回"1_2_3_4"

=SUBSTITUTE("1-2-3-4","-","#",3)  返回"1-2-3#4",只替换第三个“-”

=SUBSTITUTE("111111","11","22",3)  返回"112211",而不是"111122"


二、把new_text指定为空文本或空参数,即把old_text替换为空文本,相当于删除文本old_text。例如:

=SUBSTITUTE("河南省开封","省",)  返回"河南开封"

如果old_text为空文本或空参数,则不发生替换。


三、解决字母大小写混杂的问题。

http://s4/mw690/0067PPKnty72vgeSxwv53&690

如图,要把A列的“A类”和“a类”都替换为“B类”。可以在单元格B1输入以下其中一个公式,然后把公式向下复制就可以了:

=SUBSTITUTE(UPPER(A1),"A","B") 

=SUBSTITUTE(LOWER(A1),"a","B") 

=SUBSTITUTE(SUBSTITUTE(A1,"a","B"),"A","B")


四、结合LEN函数,统计文本中包含某特征文本的数目。

假设单元格A1是文本“12,213,34”,下面的公式返回A1中包含数字的个数,返回3:

=LEN(A1)-LEN(SUBSTITUTE(A1,",",))+1

公式中利用SUBSTITUTE(A1,",",)把文本里的逗号删掉,然后用LEN函数对删掉逗号前和删掉逗号后的文本字符数进行比较,即可知道文本有几个逗号。


五、结合FIND、MID、REPLACE等函数,提取文本中的一段字符串。

假设单元格A1是文本“12,213,34,52”,下面的公式提取其中第三个数字,返回"34":

=MID(A1,FIND("_",SUBSTITUTE(A1,",","_",2))+1,FIND("_",SUBSTITUTE(A1,",","_",3))-FIND("_",
SUBSTITUTE(A1,",","_",2))-1)

文本中的第三个数字,就是第二、第三个逗号之间的字符。公式中利用SUBSTITUTE(A1,",","_",2)把文本里第二个逗号改为下划线,然后用FIND查找下划线,就能确定第二逗号的位置。

同样地,用FIND("_",SUBSTITUTE(A1,",","_",3))确定第三个逗号的位置。

改一下思路,把提取第二、第三个逗号之间的字符,改为删掉第二个逗号之前、第三个逗号之后的字符。公式如下:

=REPLACE(REPLACE(A1,FIND("_",SUBSTITUTE(A1,",","_",3)),99,),1,FIND("_",SUBSTITUTE(A1,",",
"_",2)),)

公式中,先用里层的REPLACE把第三个逗号及其后面的字符删掉,再用外层的REPLACE把第二个逗号及其前面的字符删掉。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有