如何在Excel中从句子提取包含指定文本的完整单词?
提取包含指定文本的完整单词的Excel公式修正
方案1:Excel 365/2021+ 简洁实现
使用TEXTBEFORE和TEXTAFTER组合,处理边界情况并提取完整单词:
=IFERROR(TEXTAFTER(TEXTBEFORE(" "&B1&" ","*"&A1&"*",-1)," ",-1)&A1&TEXTBEFORE(TEXTAFTER(" "&B1&" ","*"&A1&"*")," "),"NA")
逻辑拆解:
- 在原字符串前后补空格,避免句首/句尾单词无法匹配边界
- 先定位包含指定文本的片段,再分别截取该文本左右两侧到最近空格的内容,拼接后得到完整单词
方案2:兼容所有Excel版本的传统函数写法
如果使用旧版Excel,用MID+SEARCH+FIND组合实现:
=IFERROR(MID( B1, MAX(1, SEARCH(A1,B1) - FIND(" ", REVERSE(LEFT(B1, SEARCH(A1,B1)-1)) & " ")), MIN(FIND(" ", B1&" ", SEARCH(A1,B1)+LEN(A1)), LEN(B1)+1) - MAX(1, SEARCH(A1,B1) - FIND(" ", REVERSE(LEFT(B1, SEARCH(A1,B1)-1)) & " ")) ),"NA")
逻辑拆解:
- 用
SEARCH找到指定文本在句子中的起始位置 - 反向查找该位置左侧最近的空格,确定单词的起始索引
- 正向查找指定文本结束位置后最近的空格,确定单词的结束索引
- 用
MID提取两个索引之间的内容
特殊情况说明
示例中包含连字符的单词(如loch-ness),上述公式会自动将其视为完整单词,因为我们以空格作为单词的唯一分隔符,连字符属于单词内部字符。
内容的提问来源于stack exchange,提问作者Jellyse
相关产品推荐
相关产品推荐

