我有三张纸。
- 表 1(型号)
- 第 2 页(产品编号)
- 表 3(参考)。
我希望能够将某个产品的型号放入工作表 1 上的某个单元格 (J17),并让其自动将相应的产品编号填充到工作表 2 上的单元格 (B2) 中。我已将参考工作表设置为将单元格 D3 用作产品编号,将单元格 E3 用作产品编号。
我使用了以下公式:
=VLOOKUP('Phase 1'!J17, Reference!D3:E42, 2)
这给了我一个商品,但商品编号不正确。有没有什么办法可以解释我做错了什么?
答案1
是的,有一种方法可以解释结果。
在执行查找之前,数据似乎不可能被排序。如果确实进行了排序,则数据似乎不可能按执行查找的列 (D3:D42) 进行排序。
VLOOKUP()
有第四个参数。您只使用了前三个参数。由于第四个参数处理的是已排序数据还是未排序数据,因此查找数据似乎更像未排序数据。
因此,先解释后解决问题:如果使用或未使用第四个参数TRUE
(如本例所示),查找将寻找查找值,直到找到查找值或它认为“大于”查找值的值。此时它会停止并为您提供所需的结果(如果找到完全匹配)或紧接在前的结果(如果找到“大于”查找值的值)。
您没有使用参数,所以这就是发生的情况。有时,您可能已经得到了正确的结果(或者,如果您进行了足够多的查找,就会得到正确的结果)。但偶然情况下,您可能会得到更多错误的结果。
解决方案:使用第四个参数。添加FALSE
到函数中,如下所示:
=VLOOKUP('Phase 1'!J17, Reference!D3:E42, 2, FALSE)
当第四个参数为 时FALSE
,VLOOKUP()
仅查找精确值。如果找到,则返回相应结果。如果找不到精确值,则返回错误。
这正是您的情况所需要的。
为什么会这样?这有什么用呢?
它对于需要从条目列表中获取数据并且知道几乎不可能完全匹配的查找非常有用。考虑佣金查找。也许一个销售员在一周内销售了 2,000 美元,他会得到 5% 的佣金。如果他卖出 5,000 美元,他会得到 10% 的佣金。更多?18% 的佣金。他不可能卖出正好 2,000 美元或 5,000 美元。假设他卖了 3,208.77 美元。查找经过 2,000 美元的条目并找到 5,000 美元的条目。它停止并返回 5,000 美元之前的条目,即 2,000 美元的条目,或 10%。会有第三个条目,比如 999,999 美元,这将比任何可能的销售水平高得多。它的第二列值将是销售额超过 5,000 美元的 18%。
这样,如果您没有为每一分钱的可能销售额提供一行,那么使用范围之间的值进行查找就会返回正确的结果,而不会失败。
因此FALSE
,当您希望处理名称或日期等一般值列表时,请将其用作第四个参数。TRUE
如果进行销售佣金查询(或税表或字母等级等),请使用此参数。