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

如何将Excel MATCH公式改为通配符匹配,检测短语是否含目标词条?

解决Excel通配符匹配问题的正确公式

核心需求

检查第一个工作表A列的词条是否存在于第二个工作表(Lookup wildcard phrase)A列的任意短语中,将原精确匹配公式改为通配符匹配。

错误尝试分析

  • 修改MATCH函数的MatchType参数为1:该参数用于排序后的近似匹配,和通配符匹配逻辑完全无关,因此无法得到预期结果。
  • 原VLOOKUP公式:逻辑上可行,但可能因单元格空格、大小写差异或引用区域错误导致失效,且稳定性不如COUNTIF/SUMPRODUCT类方案。

正确公式方案

方案1:COUNTIF函数(兼容所有Excel版本)

=IF(COUNTIF('Lookup wildcard phrase'!A$2:A$4,"*"&A2&"*")>0,"TRUE","FALSE")
  • 原理:COUNTIF原生支持通配符,统计目标区域中包含当前词条(A2)的单元格数量,数量大于0则返回"TRUE",否则返回"FALSE"。

方案2:SUMPRODUCT+SEARCH(支持大小写控制)

=IF(SUMPRODUCT(--ISNUMBER(SEARCH(A2,'Lookup wildcard phrase'!A$2:A$4)))>0,"TRUE","FALSE")
  • 原理:
    1. SEARCH(A2, 区域)返回每个单元格中A2的起始位置,找不到则返回错误值;
    2. ISNUMBER将有效位置转为TRUE,错误值转为FALSE;
    3. --将布尔值转为1/0,SUMPRODUCT求和后判断是否大于0;
    4. 若需区分大小写,将SEARCH替换为FIND即可。

方案3:Excel 365/2021专属简洁公式

=IF(NOT(ISERROR(XLOOKUP("*"&A2&"*",'Lookup wildcard phrase'!A$2:A$4,TRUE))),"TRUE","FALSE")

或用BYROW+LAMBDA实现更直观的遍历判断:

=IF(BYROW('Lookup wildcard phrase'!A$2:A$4,LAMBDA(x,ISNUMBER(SEARCH(A2,x)))),"TRUE","FALSE")
  • 原理:利用365版本的动态数组函数,直接遍历目标区域判断是否存在匹配项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 16:35:15