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

多条件查找求助:含文本匹配的INDEX MATCH/XLOOKUP实现

三条件匹配(含文本包含)的INDEX MATCH实现方案

核心逻辑

将ISNUMBER(SEARCH())作为文本包含匹配的判断条件,与前两个精确匹配的条件通过数组乘法(*)组合,筛选出同时满足三个条件的行,再用INDEX返回对应结果。

公式示例(假设数据区域为A:D)

假设:

  • A列=区域(精确匹配)
  • B列=岗位(需包含指定文本)
  • C列=姓名(精确匹配)
  • D列=需要返回的薪资数据
    需求:查找区域为「华东」、姓名为「张三」、岗位含「manager」的薪资

1. 旧版Excel(需按Ctrl+Shift+Enter数组输入)

=INDEX(D:D, MATCH(1, (A:A="华东")*(C:C="张三")*ISNUMBER(SEARCH("manager", B:B)), 0))
  • 原理:三个条件分别返回布尔值数组,相乘后只有全部满足的行值为1,MATCH定位第一个1的行号,INDEX返回对应薪资。

2. 新版Excel(动态数组,直接回车即可)

可以用两种写法:
写法一(XMATCH替代MATCH):

=INDEX(D:D, XMATCH(1, (A:A="华东")*(C:C="张三")*ISNUMBER(SEARCH("manager", B:B))))

写法二(FILTER+INDEX):

=INDEX(FILTER(D:D, (A:A="华东")*(C:C="张三")*ISNUMBER(SEARCH("manager", B:B))), 1)
  • 优势:无需数组输入,FILTER会返回所有符合条件的结果,INDEX取第一个匹配值;若要返回全部结果,直接用FILTER(D:D, ...)即可。

注意事项

  • 区分大小写:如果需要区分岗位文本的大小写,将SEARCH替换为FIND
  • 性能优化:尽量使用具体数据范围(如A2:A1000)代替整列引用(A:A),减少计算量
  • 多匹配处理:若存在多个符合条件的结果,普通MATCH/XMATCH仅返回第一个,使用FILTER可输出全部匹配项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:37:26