excel中,如何替换字符串中的特定字符,否则返回原字符串

比如,要把“我爱你哈哈{hoho}”中的括号内的字符替换成“啊啊”,返回值为“我爱你哈哈{啊啊}”;如果在字符串中,没有括号,比如“我爱你哈哈”,则直接返回“我爱你哈哈”,而不替换任何值。

以上我想的办法是,
=SUBSTITUTE(B2,MID(B2,FIND("{",B2,1)+1,FIND("}",B2,1)-FIND("{",B2,1)-1),"啊啊")
这个公式,就是解决不了上面提的问题中后者,“不包含括号就不替换”这个问题。怎么都想不明白怎么弄,大家有办法吗?
其中这个“hoho”和“啊啊”都是变量,不是常量……所以才会出现要替换的字符中不含有这个变量的情况。

假设原字符串在A1中,结果出现在B1中,那么可以使用如下图公式来实现:


关于此例中用到的主要函数find的相关知识:

FIND(find_text,within_text,start_num)

其中括号内的Find_text表示我们要查找的字符串。

Within_text表示要超找的区域,也就是需要在哪个单元格内查找find_text

Start_num 指定开始进行查找的字符数。比如Start_num为1,则从单元格内第一个字符开始查找关键字。如果忽略 start_num,则假设其为 1。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-15
我有个笨办法,因为其他更优的办法我也不会哈,就将就你这个公式,解决没有括号时的问题。
我觉得可以用个if先判断有没有括号嘛,有括号才执行你这个公式,比如:
IF(ISERROR(FIND("{",B2,1)),B2,SUBSTITUTE(B2,MID(B2,FIND("{",B2,1)+1,FIND("}",B2,1)-FIND("{",B2,1)-1),"啊啊"))
我也是菜鸟,你看能满足需求不
第2个回答  2018-03-15
我觉得replace 可以解决
=REPLACE(A1,FIND("{",A1),LEN(A1)-FIND("{",A1),B1)
第3个回答  2010-07-10
直接用:
=SUBSTITUTE(B2,"hoho","啊啊")
第4个回答  2018-03-15
你这公式好复杂看不懂。但你水平这么高了,我就给你点提示好了。你可以用if(find(***)=0,SUBSTITUTE,b2)
至于find(***)=0还是=1你自己试吧
相似回答