You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中匹配两列多字符串,第三列标记匹配结果(true/false)

Excel公式实现:判断A列是否包含B列任意单个字符串或完全匹配

我来帮你搞定这个需求!要实现当A列单元格包含B列单元格中的任意单个完整字符串,或者与B列单元格完全匹配时,C列返回TRUE,否则返回FALSE,可以用以下两种公式方案,适配不同版本的Excel:

方案1:适用于Excel 365/2021及以上版本(支持TEXTSPLIT)

在C1单元格输入以下公式,然后下拉填充即可:

=SUMPRODUCT(--ISNUMBER(SEARCH(" "&TEXTSPLIT(B1," ")&" "," "&A1&" ")))>0

公式拆解说明:

  • TEXTSPLIT(B1," "):把B列单元格的内容按空格拆分成独立单词的数组(比如B1是black dog,会拆成{"black","dog"})
  • " "&TEXTSPLIT(...)&" ":给每个拆分后的单词前后添加空格,避免匹配子字符串(比如防止把doggy误判为包含dog)
  • " "&A1&" ":给A列的内容前后也添加空格,保证匹配规则统一
  • SEARCH(...):在处理后的A列内容中查找每个处理后的单词,找到返回位置数字,找不到返回错误值
  • ISNUMBER(...):将SEARCH的结果转换为布尔值,找到就是TRUE,否则FALSE
  • --:把布尔值转换成1(对应TRUE)和0(对应FALSE)
  • SUMPRODUCT(...)>0:将所有结果求和,只要和大于0,说明至少有一个单词匹配,返回TRUE,否则返回FALSE

方案2:适用于旧版Excel(无TEXTSPLIT,用FILTERXML替代)

如果你的Excel版本不支持TEXTSPLIT,可以用这个公式:

=SUMPRODUCT(--ISNUMBER(SEARCH(" "&FILTERXML("<t><s>"&SUBSTITUTE(B1," ","</s><s>")&"</s></t>","//s")&" "," "&A1&" ")))>0

核心差异说明:

用FILTERXML("<t><s>"&SUBSTITUTE(B1," ","</s><s>")&"</s></t>","//s")替代TEXTSPLIT,原理是把B列内容转换成XML格式的字符串,再提取每个独立的单词,效果和TEXTSPLIT完全一致。

结合你的示例验证:

A列内容B列内容C列公式返回结果
white dogblack dogTRUE
big talltall buildingTRUE
woodgreen woodTRUE
big housegreen woodFALSE
long waystreetFALSE

完全符合你给出的预期效果哦!

内容的提问来源于stack exchange,提问作者DemGergo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:54:07