求助:跨工作表匹配数据的VLOOKUP公式显示“Not Found”故障排查
问题解决:VLOOKUP匹配存在项却显示“Not Found”
问题根源
你的公式错误在于VLOOKUP的查找范围首列必须是查找值所在的列:
- 你要匹配的是Sheet1(Woo)的AA列内容,但公式里的查找范围是
Woo!$D$2:$AA$1000,首列是D列,VLOOKUP只会在这个范围的第一列(D列)搜索A2的值,自然找不到AA列里的匹配项。
解决方法
方法1:改用INDEX+MATCH组合(更灵活,推荐)
INDEX+MATCH不受查找列位置限制,直接指定匹配列和返回列:
=IF(A2="", "", IFERROR(INDEX(Woo!$D$2:$D$1000, MATCH(A2, Woo!$AA$2:$AA$1000, 0)), "Not Found"))
MATCH(A2, Woo!$AA$2:$AA$1000, 0):在Sheet1的AA列精确匹配A2的编号,返回对应的行号INDEX(Woo!$D$2:$D$1000, ...):根据行号提取对应D列的内容
方法2:调整VLOOKUP的查找范围
把AA列设为查找范围的首列,同时计算返回列的偏移量:
=IF(A2="", "", IFERROR(VLOOKUP(A2, Woo!$AA$2:$D$1000, COLUMN(Woo!$D:$D)-COLUMN(Woo!$AA:$AA)+1, FALSE), "Not Found"))
Woo!$AA$2:$D$1000:将AA列作为查找范围的首列(注意范围是AA到D,反向选取)COLUMN(Woo!$D:$D)-COLUMN(Woo!$AA:$AA)+1:自动计算D列相对于AA列的列数(避免手动数错)
额外排查点
如果用了上面的公式还是匹配失败,检查以下内容:
- 编号是否有隐形空格:用
TRIM()函数清除,比如把A2换成TRIM(A2),AA列的单元格也可以用TRIM()处理 - 数据格式是否一致:比如A2是文本格式,Sheet1的AA列是数字格式,需要统一格式(比如用
TEXT()或VALUE()转换)
内容的提问来源于stack exchange,提问作者CYL
相关产品推荐
相关产品推荐

