原来,VLOOKUP也可以反向查找

反向查找的意思就是需要查找的条件列不在查找区域的第一列。按照Vlookup函数的标准用法,这种场景不能使用VLOOKUP函数。但是我们 可以结合if或choose函数,来实现这个要求。

01

场景介绍

在一般的VLOOKUP应用场景中,总是要求查找值在查找区域的第一列,但是我们拿到的数据有可能不满足这个条件,此时,应该怎么做?

当然,我在差不多的所有的课上都会推荐你在前面再插入一个ID列。必须要强调,

过去,现在,以及将来,在这个场景下,最佳做法都是在前面再插入一个ID列。

原因是这么做最简单,直接。学习负担小。

但是,我们今天要介绍另外两个做法,通过这两个方法,你可以更好地理解VLOOKUP的工作方式,顺便学习两个函数的用法,同时,在某些场景下,这两种方法具有独特的优势。

02

结合使用IF

直接看图

这里,我们将查找区域变成了一个函数:

IF({1,0},$D$11:$D$13,$C$11:$C$13)

这个函数的第一个参数是个数组{1,0},在实际中,会返回两个值,一个1,一个0,这样,这个if函数等于两个if函数“

IF(1,$D$11:$D$13,$C$11:$C$13)

IF({0,$D$11:$D$13,$C$11:$C$13)

而不难理解,这两个if函数的返回结果是:

IF(1,$D$11:$D$13,$C$11:$C$13)=$D$11:$D$13

IF({0,$D$11:$D$13,$C$11:$C$13)=$C$11:$C$13

这样,这个IF函数最后等于返回了一个两列的区域,在这个返回区域中,C,D两列被调换了顺序。

通过这个方法,我们相当于在函数中动态了将ID列放到了查找区域的第一列,所以Vlookup可以正常使用了。

03

结合使用Choose

这个函数跟上一个方法类似,也是使用一个函数代替了查找区域:

CHOOSE({1,2},$D$11:$D$13,$C$11:$C$13)

看起来跟上一个IF函数也很像。但是工作原理不同。

choos是根据第一个参数,在后面所有参数中去查找对应位置的值去返回。既然第一个参数是个数组{1,2},那么,这个Choose公式 就跟下面两个公式等价:

CHOOSE(1,$D$11:$D$13,$C$11:$C$13)

CHOOSE(2,$D$11:$D$13,$C$11:$C$13)

结果仍然是将C,D列调换了顺序,所以Vlookup函数可以正常执行了。

04

总结

尽管这里介绍的两种方法稍微复杂了一些,也不是我们平常所推荐的做法。但是这两个公式并不是一无是处。
你可能也注意到了,在这两种方法中,实际上我们只用到了两列,与传统的VLOOKUP公式中引用范围是整个区域相比,无疑减少了很多列,这就意味着公式减少了很多引用单元格,在你的表格中公式较多时,这两种写法比较有性能方面的优势。

好啦,今天就分享到这里。

点个赞

再走吧

(0)

相关推荐