单个编号通常可以唯一定位一行,但实际表格也常需要“区域和城市同时满足”才能找到结果。XLOOKUP 可以把多个条件判断相乘,在所有条件都成立的位置查找数字 1。

Excel 查找匹配练习工作簿“多条件匹配”工作表已经准备好三个可修改的输入示例。
下载 .xlsx 文件

双条件 XLOOKUP 公式

A2 是区域,B2 是城市,需要从客户表返回 D 列客户名称:

=XLOOKUP(1,(客户表!$B$2:$B$11=A2)*(客户表!$C$2:$C$11=B2),客户表!$D$2:$D$11,"未找到")

当 A2 为“华东”、B2 为“杭州”时,结果应为“云帆文化”。

逻辑相乘为什么能匹配

客户表!$B$2:$B$11=A2 会得到一组 TRUE 和 FALSE,城市条件也会得到一组结果。Excel 在相乘时把 TRUE 当作 1、FALSE 当作 0。只有两个条件都为 TRUE 的行,乘积才是 1。

区域条件城市条件相乘结果是否匹配
TRUETRUE1
TRUEFALSE0
FALSETRUE0
FALSEFALSE0

所有区域必须使用相同起止行

区域列、城市列和返回列都应从第 2 行到第 11 行。任何一个区域少一行、多一行或从不同位置开始,都会造成数组大小不一致或结果错位。

增加第三个条件

例如再增加客户等级条件 C2,只需继续乘上第三个判断:

=XLOOKUP(1,(客户表!$B$2:$B$11=A2)*(客户表!$C$2:$C$11=B2)*(客户表!$E$2:$E$11=C2),客户表!$D$2:$D$11,"未找到")

条件数量增加后,公式更难维护。业务表长期使用时,建议把数据区域转换为 Excel 表格,并使用结构化引用。

存在重复组合时怎么办

XLOOKUP 默认只返回第一条匹配记录。如果“区域+城市”并不能唯一确定客户,就应增加客户编号等条件,或者使用 FILTER 返回全部匹配行。不要在没有确认唯一性的情况下直接把第一条结果用于结算或汇总。

旧版本替代方案

不支持 XLOOKUP 的 Excel 可以建立辅助列,将区域和城市连接成唯一键,再使用 INDEX/MATCH 或 VLOOKUP 精确匹配。

验证公式的三个测试值

  1. 输入一个确实存在的组合,确认返回名称正确。
  2. 输入一个区域存在但城市不属于该区域的组合,应返回“未找到”。
  3. 复制公式后检查所有数据区域仍然锁定,输入单元格则随行变化。

参考资料

  • Microsoft Excel 函数说明:XLOOKUP 的查找数组与返回数组。
  • 配套工作簿:多条件匹配、客户表和使用说明工作表。