我无法让 Vlookup 返回正确的值。
下面我将发布一个例子来说明我所谈论的内容。
我需要在第一张表中找到某件商品的正确 UIN,并将其传输到第二张表。我使用 UPC 在第一个表中定位该商品。
Vlookup 在 中J13
,公式为=VLOOKUP($I13,$G$2:$J$9,4)
,因此它应该查找 UPC,7142100247
在 中找到它G2
,然后返回 中的值J2
。但它没有;它返回 中的值J9
,这让我抓耳挠腮,心想“这到底是什么?”
有人能解释为什么它返回错误的值并告诉我如何让它返回正确的值吗?
答案1
我认为您的问题与 UPC 号码的单元格格式有关。请注意,顶部查找表中的 UPC 有前导零,而红色 UPC 列没有。我能够让您的公式完全按照您发布的方式工作,方法是将自定义数字格式 Type: 00000000000(即十一个零)应用于查找表和红色列。
希望有帮助!
答案2
Vlookup 缺少第四个参数,这意味着它将默认为TRUE
。这将始终返回一个值,但不一定是您想要的值。以TRUE
第四个参数为 Vlookup 要求按查找列升序对查找表进行排序,然后返回第一个等于或小于查找值的值。
用作False
最后一个参数,Vlookup 将仅返回完全匹配。
当您添加False
为最后一个参数时,您可能会看到 #N/A 错误,这意味着找不到完全匹配。
在这种情况下,您需要检查查找值是否确实存在于数据中。常见问题包括
- 查找列或查找值中的前导或尾随空格字符。在这种情况下,从查找列和查找值中修剪空白。
- 数据类型不匹配(例如,查找值是数字,但查找列包含文本,反之亦然)。在这种情况下,请确保查找值与查找列的类型相同(或更改查找列数据)。
只有当第一列包含数字时,才能找到数字查找值。这些数字的格式(例如是否带有前导零)根本没有任何区别。在大多数情况下,带有前导零的数字实际上是以文本形式存储的数字。屏幕截图中的绿色警告三角形就是一个明显的迹象。