单个编号通常可以唯一定位一行,但实际表格也常需要“区域和城市同时满足”才能找到结果。XLOOKUP 可以把多个条件判断相乘,在所有条件都成立的位置查找数字 1。
双条件 XLOOKUP 公式
A2 是区域,B2 是城市,需要从客户表返回 D 列客户名称:
当 A2 为“华东”、B2 为“杭州”时,结果应为“云帆文化”。
逻辑相乘为什么能匹配
客户表!$B$2:$B$11=A2 会得到一组 TRUE 和 FALSE,城市条件也会得到一组结果。Excel 在相乘时把 TRUE 当作 1、FALSE 当作 0。只有两个条件都为 TRUE 的行,乘积才是 1。
| 区域条件 | 城市条件 | 相乘结果 | 是否匹配 |
|---|---|---|---|
| TRUE | TRUE | 1 | 是 |
| TRUE | FALSE | 0 | 否 |
| FALSE | TRUE | 0 | 否 |
| FALSE | FALSE | 0 | 否 |
所有区域必须使用相同起止行
区域列、城市列和返回列都应从第 2 行到第 11 行。任何一个区域少一行、多一行或从不同位置开始,都会造成数组大小不一致或结果错位。
增加第三个条件
例如再增加客户等级条件 C2,只需继续乘上第三个判断:
条件数量增加后,公式更难维护。业务表长期使用时,建议把数据区域转换为 Excel 表格,并使用结构化引用。
存在重复组合时怎么办
XLOOKUP 默认只返回第一条匹配记录。如果“区域+城市”并不能唯一确定客户,就应增加客户编号等条件,或者使用 FILTER 返回全部匹配行。不要在没有确认唯一性的情况下直接把第一条结果用于结算或汇总。
不支持 XLOOKUP 的 Excel 可以建立辅助列,将区域和城市连接成唯一键,再使用 INDEX/MATCH 或 VLOOKUP 精确匹配。
验证公式的三个测试值
- 输入一个确实存在的组合,确认返回名称正确。
- 输入一个区域存在但城市不属于该区域的组合,应返回“未找到”。
- 复制公式后检查所有数据区域仍然锁定,输入单元格则随行变化。
参考资料
- Microsoft Excel 函数说明:XLOOKUP 的查找数组与返回数组。
- 配套工作簿:多条件匹配、客户表和使用说明工作表。