Excel中如何从第二个子串位置反向计数提取指定目标字符串
Excel 提取指定格式字符串的解决方案
完全可以实现,根据你使用的Excel版本可以选择不同的公式方案:
方案1:适用于Excel 365/2021及以上版本
使用新增的文本处理函数公式最简洁:
=TEXTBEFORE(TEXTAFTER(A1," ",-1),"()")&"()"
逻辑说明:
TEXTAFTER(A1," ",-1)中参数-1表示从右往左找第一个空格,提取空格之后的所有内容- 再用
TEXTBEFORE截取到()之前的内容,最后拼接()即可得到完整目标字符串
方案2:适用于所有Excel版本的兼容公式
如果是旧版Excel没有上述新函数,可以用组合公式实现:
=MID(A1,FIND("@",SUBSTITUTE(LEFT(A1,FIND("()",A1)-1)," ","@",LEN(LEFT(A1,FIND("()",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND("()",A1)-1)," ",""))))+1,FIND("()",A1)-FIND("@",SUBSTITUTE(LEFT(A1,FIND("()",A1)-1)," ","@",LEN(LEFT(A1,FIND("()",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,FIND("()",A1)-1)," ",""))))+2
逻辑说明:
- 先用
LEFT(A1,FIND("()",A1)-1)提取出()左侧的所有内容 - 统计这段内容中的空格总数,用
SUBSTITUTE把最后一个空格替换为不会在原文出现的特殊字符(比如@) - 定位
@的位置,从@的下一位开始截取,截取长度到()的结束位置即可
你给出的两个测试用例都可以用上述公式正确提取出目标结果:
- 第一个测试串提取结果为
EXTRACTTHIS() - 第二个测试串提取结果为
WHAT_IF_THE_STRING_LENGTH_IS_DIFFERENT()
内容的提问来源于stack exchange,提问作者Xyd
相关产品推荐
相关产品推荐

