VLOOKUP返回数据错误 未匹配项显示上一单元格值解决方法
故障根因
你的公式存在核心参数缺失问题,和是否嵌套判空逻辑无直接关系:
VLOOKUP函数共4个入参,你当前仅传入前3个,省略了第4个匹配模式参数。省略该参数时Excel默认取值为TRUE,即开启近似匹配- 近似匹配模式要求查找区域首列必须按升序排序,当找不到完全匹配的查找值时,会自动返回小于查找值的最大匹配项,这就是未收录物料返回上一行数值的直接原因
- 物料编码/名称匹配属于精确匹配场景,必须显式传入第4个参数值为
FALSE(或等价的0)
正确公式
基础精确匹配版本
修正后未匹配到物料时会返回标准#N/A错误,不会再出现错误继承上一个单元格值的问题:
=VLOOKUP(A5,'Sheet 2'!$A$1:$C$48,3,FALSE)
友好返回版本
如果需要未匹配到物料时不显示错误码,直接返回空值或0,用IFERROR函数包裹即可(Excel无对应ISNULL类函数可直接实现该需求,IFERROR是该场景的标准写法,兼容Excel 2007及以上所有版本):
// 未匹配时返回空单元格 =IFERROR(VLOOKUP(A5,'Sheet 2'!$A$1:$C$48,3,FALSE),"") // 未匹配时返回0 =IFERROR(VLOOKUP(A5,'Sheet 2'!$A$1:$C$48,3,FALSE),0)
使用注意事项
- 除非明确需要做数值区间类的近似匹配(比如绩效分段、税率分档),否则所有精确查找场景都不要省略VLOOKUP的第4个参数
- 提前检查Sheet2的A列(Item列)是否存在重复值,存在重复时VLOOKUP仅会返回第一个匹配项对应的Units数值
- 如果使用的是Excel 365/2021及以上版本,也可以用
XLOOKUP替代VLOOKUP,写法更简洁,默认即为精确匹配:=XLOOKUP(A5,'Sheet 2'!$A:$A,'Sheet 2'!$C:$C,"")
内容的提问来源于stack exchange,提问作者Digitalbruno
相关产品推荐
相关产品推荐

