资源描述:
《excel的文本函数replace、find和search》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、EXCEL的文本函数REPLACE、FIND和SEARCH文本中的LEFT、MID、RIGHT、LEN、LENB、SUBSTITUTE有印象不?最后一个类似于替换,你也用过替换命令的,很多时候需要对某个文本中的部分内容进行替换,除了EXCEL原本具有的查找替换功能以外还可以用文本替换函数,而SUBSTITUTE就是替换函数之一,如果你知道要替换的字符是什么但不知道该字符在文本中的具体位置就可以使用该函数,比如:你好你们好你好,要把你好替换成你不好,条件是被替换的字符串是你好,要替换成你不好,文本中我不
2、确定具体位置就用SUBSTITUTE公式=SUBSTITUTE(A1,"你好","你不好"),字符串:你好你们好你好中,我要把第二个你好替换成你不好呢?也就是说第一个你好我不替换,只替换第二个出现的你好,还是使用SUBSTITUTE,因为我不知道第二个你好的位置在哪=SUBSTITUTE(A1,"你好","你不好",2)后面的数字2是该函数的第四个参数,代表替换位置,也就是替换第二个你好,通过组合我们可以完成一些小应用,所以SUBSTITUTE的替换作用还是挺实用的,但我们如何知道一个文本中有几个指定
3、的字符?这是一个小应用比如这一串文本中有几个好字?如果知道这个文本中有几个好字?比如里面有三个好,如果用公式算出来?如何用公式来整出来?比如原来的字符宽是多少?再判断替换掉好字的文本的宽度,再相减,不就是结果了?不用替换成空格,替换成空第一步替换好为无=SUBSTITUTE(A1,"好",),第二步判断已替换的字符长=len(SUBSTITUTE(A1,"好",))第三步用原来的字符长去减=len(a1)-len(SUBSTITUTE(A1,"好",))得到最后的答案,len是判断字符长度的,这上次已
4、讲过了,赫赫。=len("abc")结果为3代表abc文本中有三个字符len("中华人民共和国")结果是7代表有7个字符,上次讲了LEFT、MID、RIGHT、LEN、LENB、SUBSTITUTE,len是判断字符长度的,一个字母,一个数字,一个汉字都是一个字符,lenb是判断字节长的,一个半角字母或数字为一个字节,一个汉字是两个字节,这个可以看上次的聊天记录吧。现在我来讲一个REPLACE,REPLACE也是替换函数,他的参数描述是replace(原文本,第几个字符,宽度,替换成的新文本)比如A1
5、="abcde"我要把A1的第2和第3个字符变成x,也就是我要把abcde变成axde,用replace函数就是=replace(a1,2,2,"x")从a1的第2个位置开始,向右截2个字符宽度,以x来替换,replace一般用在已知道具体的替换位置的应用比如,我要把A列的值变成B列的值,A1的第1个字符开始,向右4个字符宽度,用A来替换,这个理解不REPLACE 还有一个特别的功能,就是添加字符从第5个字符开始,插入-B,第三个参数没有数字,意思就是插入字符了,REPLACE有替换功能,同样也有插入
6、功能,替换与插入由第三个参数决定,这个需要多多的练习的,在概念上和SUBSTITUTE用法不一样,容易混淆。现在说下FIND和SEARCH,这两个函数都是查找,他们的区别是FIND可以区分大小写而SEARCH不能,还有一个是FIND不可以使用通配符而后者能,我来举例子这里面可以看出,FIND是区域大小写的,SEARCH不区分,现在我来就刚才乐观的问题,我们来分析一下思路这个用到了前面的方法,找出第三个逗号的位置,第三个逗号的位置怎么找?我们第一步把第三个逗号换成文本中没有的符号,比如#substitu
7、te(a1,",","#",3)把A1中第3个逗号换成#然后通过FIND#来确定#的位置,即第三个逗号的位置=find("#",substitute(a1,",","#",3)这个FIND+SUBSTITUTE可以确定了第三个逗号的位置,然后可以通过LEFT来截取,也可以通过REPLACE来替换,用REPLACE的话需要保证替换的文本是固定的,比如用REPALCE,=REPLACE(A1,FIND("#",SUBSTITUTE(A1,",","#",3))+1,7,C1)从A1给定的文本中确定第三个逗
8、号的位置+1,固定宽度是7,替换成C1的值,为什么要FIND()+1,FIND是第三个逗号的位置,而我们要从第三个逗号右边的第一个字符开始替换,所以要+1但这个公式不怎么通用,如果 长度不固定怎么办?=LEFT(A1,FIND("#",SUBSTITUTE(A1,",","#",3))+1)&C1&",工资"这样倒通用些,忘了,LEFT后,就不能+1了=LEFT(A1,FIND("#",SUBSTITUTE(A1,",","#",3)))&C1&",工资