如何使用Excel的FIND函数提取目标值并去除字符串中的大写类别?
处理方法
方法1:针对固定大写内容(OSCARS NOMS)
直接用SUBSTITUTE替换目标片段,把原提取公式嵌套即可:
=SUBSTITUTE(MID(D186,FIND("code=",D186)+5,FIND("; external_link",D186)-FIND("code=",D186)-5),"_OSCARS NOMS_","_")
该公式会将提取结果中的_OSCARS NOMS_替换为单个下划线,直接得到tweet_recycled_2_3。
方法2:通用处理任意全大写带空格的中间部分(Excel 365/2021及以上版本)
利用Excel的正则替换功能REGEXREPLACE,匹配下划线包裹的全大写+空格内容,替换为单个下划线:
=REGEXREPLACE(MID(D186,FIND("code=",D186)+5,FIND("; external_link",D186)-FIND("code=",D186)-5),"_([A-Z ]+)_","_")
正则表达式_([A-Z ]+)_会匹配所有以下划线首尾包裹、中间为大写字母或空格的片段,替换后即可去除任意符合规则的全大写类别。
方法3:旧版Excel(无正则支持)
如果你的Excel版本不支持正则,可通过字符串拆分拼接实现:
- 先将原提取结果存入辅助单元格(如E186):
=MID(D186,FIND("code=",D186)+5,FIND("; external_link",D186)-FIND("code=",D186)-5) - 拼接前缀与目标后缀:
=LEFT(E186,FIND("_",E186)-1)&"_"&RIGHT(E186,LEN(E186)-FIND("@",SUBSTITUTE(E186,"_","@",LEN(E186)-LEN(SUBSTITUTE(E186,"_",""))-1)))
该方法通过计数下划线数量,定位到需要保留的后缀部分,再和前缀拼接得到最终结果。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

