如何使用VBA提取单元格中from之后、字符数字之前的目标文本?
Excel 指定规则文本提取方案
兼容全版本的函数组合解法
如果你的Excel版本不支持新增函数,可通过 MID、FIND、LEN 组合精准提取目标内容,彻底排除"from"及末尾的字符/数字:
公式示例
=MID(A1, FIND("from ", A1)+5, LEN(A1)-FIND("from ", A1)-5-LEN(RIGHT(A1, LEN(A1)-MAX(FIND({0,1,2,3,4,5,6,7,8,9}, A1&"0123456789")))))
公式拆解
FIND("from ", A1)+5:定位"from "(含空格)之后的首个字符位置,+5是跳过"from "的5个字符长度LEN(A1)-FIND("from ", A1)-5:计算"from "到单元格末尾的总字符数MAX(FIND({0,1,2,3,4,5,6,7,8,9}, A1&"0123456789")):找到单元格中最后一个数字的位置,以此确定需要剔除的末尾内容长度- 最终用
MID提取中间的目标文本
Excel 365/2021简洁解法
新版Excel支持TEXTAFTER和TEXTBEFORE函数,写法更直观:
公式1(通用适配)
=TEXTBEFORE(TEXTAFTER(A1, "from "), RIGHT(A1, LEN(A1)-MAX(FIND({0,1,2,3,4,5,6,7,8,9}, A1&"0123456789"))))
公式2(适配末尾为空格+字符/数字的场景)
如果所有目标文本后都是空格加末尾标识,可直接用通配符简化:
=TEXTBEFORE(TEXTAFTER(A1, "from "), " *")
测试验证
针对你的示例数据,以上公式均可得到如下结果:
- 原内容:
Zelle Payment from TopTipToe Salon WFCT0RJT7→ 提取结果:TopTipToe Salon - 原内容:
Zelle Payment from Pekoe LLC 183488888→ 提取结果:Pekoe LLC - 原内容:
Zelle Payment from Nickola LLC 456806→ 提取结果:Nickola LLC
内容的提问来源于stack exchange,提问作者Testing Testing
相关产品推荐
相关产品推荐

