Sam经常使用VLOOKUP函数。这非常方便,但是有一个严重的限制-查找只能引用右边的列。这意味着Sam不能使用负值作为VLOOKUP的第三个参数来引用左侧的列。他想知道是否有办法解决这个限制。

解决此限制的方法实际上有三种:重组,使用INDEX和使用CHOOSE。我将依次介绍这些方法。

重组您的内容

这可能是最不理想的方法,但我会先解决它。如果发现您需要经常将值返回到查询的左侧,则可以考虑重组工作表,以使这些值位于公式的右侧。

重组的另一种方法是使用公式右侧的帮助器列。该帮助器列仅需要引用实际的返回值。例如,如果您的返回值在A列中,而公式在E列中,则可以在助手列A中添加J。 J1中的公式将简单地为= A1。复制下来,然后将J列用作E列公式中的返回值。

使用INDEX和MATCH

Sam遇到的最常见的方法也许是结合使用INDEX和MATCH函数而不是VLOOKUP。例如,假设您具有以下VLOOKUP公式:

这将在C1:C100范围内查找G1中的值(作为近似匹配),并在E1:E100中获得相应的值。该公式等效于以下公式:

=VLOOKUP(G1,$C$1:$E$100,3,TRUE)

因此,如果您想在查询列的左侧添加一列(例如A1:A100),则可以使用以下命令:

=INDEX($E$1:$E$100,MATCH(G1,$C$1:$C$100,1))

如果您希望查找返回精确匹配,则只需将MATCH函数中的最后1更改为0,如下所示:

=INDEX($A$1:$A$100,MATCH(G1,$C$1:$C$100,1))

使用VLOOKUP和CHOOSE

=INDEX($A$1:$A$100,MATCH(G1,$C$1:$C$100,0))

如果您实际上想继续在公式中使用VLOOKUP函数,则可以通过将CHOOSE函数也包括在内,将其“愚弄”为左侧的值。

为了说明这一点,我们假设您的查找值在D列中,而返回值在A列中。在单元格G1中是您的查找值。下面的公式将返回正确的值:

CHOOSE函数返回一个由指示的单元格组成的数组。

=VLOOKUP(G1,CHOOSE({1,2},$D$1:$D$100,$A$1:$A$100),2,FALSE)

然后,VLOOKUP函数从该数组的第二列(恰好是A列)返回一个值到D列的左侧。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(13608)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。