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

为何XLOOKUP公式无法配合隐式通配符使用?附COUNTIF对比示例

两种XLOOKUP写法的差异解析

可正常工作的公式逻辑

公式:=XLOOKUP(1,1/COUNTIF(D2:Dn,"*"&A1&"*"),B1:Bn)(假设D2:Dn与B1:Bn为对应数据范围)

  • COUNTIF默认支持通配符:当条件包含*时,会自动识别为模糊匹配(*代表任意长度字符)。COUNTIF(D2:Dn,"*"&A1&"*")会生成一个数组,其中D列单元格包含A1值的位置返回1,不包含的返回0。
  • 1/COUNTIF(...)将数组中的1保留为1,0转换为#DIV/0!错误值。
  • XLOOKUP的作用是在这个由1和错误值组成的数组中查找1的位置,最终返回B列对应位置的值,实现"包含指定内容"的模糊匹配。

无法正常工作的公式问题所在

公式:=XLOOKUP(D1,"*"&A1&"*",B1,,2)
核心错误是参数逻辑颠倒:

  • XLOOKUP的参数顺序为XLOOKUP(查找值, 查找范围, 返回范围, [未找到返回值], [匹配模式], [搜索模式])。
  • 此处的查找范围被设置为单一文本字符串"*"&A1&"*"(例如A1为"测试"时,字符串为"测试"),而非需要搜索的单元格范围。
  • 即便匹配模式设为2(通配符匹配),XLOOKUP也只会检查查找值D1是否等于这个单一的通配符字符串,而非在某个范围中查找包含D1的内容,完全偏离了模糊匹配的需求。

正确的XLOOKUP模糊匹配写法

若想用XLOOKUP直接实现"包含指定内容"的模糊匹配,需将通配符放在查找值中,查找范围设为目标列:
=XLOOKUP("*"&A1&"*", D2:Dn, B1:Bn,,2)

  • 查找值为带通配符的"*"&A1&"*",查找范围为D2:Dn,匹配模式设为2启用通配符匹配,即可在D列中找到包含A1值的单元格并返回对应B列内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:03:20