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

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

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

2015-11-13 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33696

向TA提问 私信TA
展开全部

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


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

FIND(find_text,within_text,start_num)

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

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

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

leess525
2018-03-15
知道答主
回答量:15
采纳率:75%
帮助的人:4.4万
展开全部
我有个笨办法,因为其他更优的办法我也不会哈,就将就你这个公式,解决没有括号时的问题。
我觉得可以用个if先判断有没有括号嘛,有括号才执行你这个公式,比如:
IF(ISERROR(FIND("{",B2,1)),B2,SUBSTITUTE(B2,MID(B2,FIND("{",B2,1)+1,FIND("}",B2,1)-FIND("{",B2,1)-1),"啊啊"))
我也是菜鸟,你看能满足需求不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
未王人
2018-03-15 · TA获得超过8875个赞
知道小有建树答主
回答量:670
采纳率:51%
帮助的人:136万
展开全部
我觉得replace 可以解决
=REPLACE(A1,FIND("{",A1),LEN(A1)-FIND("{",A1),B1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whachel
2010-07-10 · TA获得超过5万个赞
知道大有可为答主
回答量:1.7万
采纳率:66%
帮助的人:9725万
展开全部
直接用:
=SUBSTITUTE(B2,"hoho","啊啊")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzt46585
2018-03-15 · TA获得超过646个赞
知道小有建树答主
回答量:811
采纳率:85%
帮助的人:136万
展开全部
你这公式好复杂看不懂。但你水平这么高了,我就给你点提示好了。你可以用if(find(***)=0,SUBSTITUTE,b2)
至于find(***)=0还是=1你自己试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式