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

如何检查某单元格所有单词是否存在于另一单元格(不考虑顺序)

检查单元格中所有单词是否都存在于另一个单元格(不考虑顺序)

如果你需要验证某单元格中的所有单词,是否全部存在于另一个单元格的文本中(无需考虑单词顺序),可以用以下几种Excel公式实现:

示例场景

搜索词待搜索内容匹配?
Apple BicycleBicycle Tree AppleMatch
Cat TrainTrain Boy BananaNo Match

方法1:Excel 365/2021 动态数组简洁写法

适用于支持动态数组的Excel版本(365、2021及以后),公式更简洁直观:

假设「搜索词」在A列,「待搜索内容」在B列,在C2单元格输入公式后直接回车,下拉填充即可:

=IF(AND(ISNUMBER(XMATCH(TEXTSPLIT(A2," "),TEXTSPLIT(B2," ")))),"Match","No Match")

逻辑说明:

  • TEXTSPLIT(A2," ") 将搜索词按空格拆分成独立单词数组
  • TEXTSPLIT(B2," ") 将待搜索内容拆分成单词数组
  • XMATCH 逐个检查搜索词数组中的每个单词是否存在于待搜索数组,存在返回位置值,不存在返回错误
  • ISNUMBER 把结果转为布尔值(存在=TRUE,不存在=FALSE)
  • AND 判断所有单词是否都存在,最终通过IF输出对应结果

方法2:兼容旧版Excel的数组公式

针对Excel 2019及更早版本,需要用数组公式实现:

在C2单元格输入公式后,按 Ctrl+Shift+Enter 完成输入(旧版数组公式必填操作),再下拉填充:

=IF(AND(ISNUMBER(SEARCH(" "&TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",99)),ROW(INDIRECT("1:"&LEN(A2)-LEN(SUBSTITUTE(A2," ",""))+1))*99-98,99))&" "," "&B2&" "))),"Match","No Match")

逻辑说明:

  • SUBSTITUTE(A2," ",REPT(" ",99)) 将单个空格替换为99个空格,方便拆分单词
  • MID+ROW(INDIRECT(...)) 逐个提取每个单词的片段
  • TRIM 清理单词前后的多余空格
  • 给单词和待搜索内容前后加空格(" "&单词&" "),避免部分匹配(比如防止把"Apple"误判为存在于"Apples"中)
  • SEARCH 检查每个单词是否存在,最终通过AND+IF输出结果

方法3:使用FILTERXML函数(部分版本支持)

如果你的Excel支持FILTERXML函数,可以用更易读的公式:

=IF(AND(COUNTIF(" "&B2&" ","* "&TRIM(FILTERXML("<t><s>"&SUBSTITUTE(A2," ","</s><s>")&"</s></t>","//s"))&" *")>0),"Match","No Match")

逻辑说明:

  • 将搜索词转换为XML节点字符串,通过FILTERXML提取所有独立单词
  • 用COUNTIF检查每个单词是否存在于待搜索内容中(同样通过前后加空格避免部分匹配)
  • AND 判断所有单词都存在后,输出对应结果

注意事项

  • 以上公式默认不区分大小写,如需区分,可将SEARCH替换为FIND,或给XMATCH添加参数0(即XMATCH(..., ..., 0))
  • 如果单词分隔符不是空格,需将公式中的" "替换为实际分隔符(比如逗号,)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:27:38