XLOOKUP实战:按产品代码查名称,正确处理未找到与重复值
本文在AI辅助下由原文翻译而成。请结合原文核对专业术语和公式。
做一张小表:输入产品代码后自动返回名称。XLOOKUP分别指定查找值、搜索范围和返回范围。先用存在、缺失和重复三种情况测试,比一开始写复杂嵌套公式更容易理解结果。
用三行数据练习精确匹配
A1输入Code,B1输入Item,在A2:B4填入下表,并在E2输入A102。商品名保留英文虚构值,便于与图示和公式核对。
| 行 | A: Code | B: Item |
|---|---|---|
| 2 | A101 | Pencil |
| 3 | A102 | Notebook |
| 4 | A103 | Eraser |
=XLOOKUP(E2,$A$2:$A$4,$B$2:$B$4,"Not found",0)结果为Notebook。最后的0明确指定精确匹配,默认也为精确匹配。美元符号锁定参考表,向下复制时不会移动;E2则可变成下一行的E3。
未找到与重复是两类问题
把E2改成A999,结果是Not found。这处理正常的无匹配情况,不是隐藏所有公式错误。若缺失时返回0,可能与真正的零值混淆,所以应根据返回数据含义选择提示。
A102出现两次时,默认搜索返回第一个匹配项,并不会把两行相加或判断哪个最新。产品代码应唯一时,先检查原数据重复。反向搜索属于另一设置,只有行顺序确实代表时间时才可解释为最新。
查不到时也要检查数据
- 查找范围与返回范围的对应行、大小是否一致。
- 代码是否一边为数字、另一边为文本。
- 是否有前后空格及来源附带字符。
- 规范化之前先确认编号规则。
随意把文本00123转成数字123,可能合并不同产品。查找失败意味着需要检查,不意味着可以改变编号含义。普通XLOOKUP也不适合作为区分大小写的标识符验证;若需要这种条件,应另设检查方法。
旧版和合计任务使用不同选择
Excel 2016、2019不支持XLOOKUP。分享前确认Microsoft 365、Excel 2021、2024等支持版本。这个例子可用INDEX和精确匹配MATCH替代:
=INDEX($B$2:$B$4,MATCH(E2,$A$2:$A$4,0))替代式未找到时返回#N/A,需要单独决定处理方式。同代码所有数量求和则是另一类任务,应使用SUMIF或SUMIFS。先在测试表中验证A102、A999及重复A102,再应用到重要数据。
官方资料:XLOOKUP、MATCH、INDEX。某些区域设置使用分号而不是逗号分隔参数。
相关实用文章
为帮助理解本文而制作的原创插画。