分享

Excel最全逆向查询(VLOOKUP,INDEX,LOOKUP)

 陈旭升chenxs 2018-08-25

在日常的Excel函数应用中,最常用的就是查询类函数,比如说根据工号查询姓名、根据学生查询成绩、根据男猪脚查询女一号等等。

说到查询类函数,大家对VLOOKUP一定不会陌生,这可是人见人爱花见花开的函数。

如下图,查询明星的配偶:

E2单元格公式为
=VLOOKUP(D2,A:B,2,0)
意思就是以D2单元格的姓名作为查询值,以A:B为查找区域,在首列中找到与D2单元格相同的姓名,然后返回这个区域中与之对应的第二列(也就是配偶所在列)的配偶。

如果我们以配偶作为查找值,需要在这个区域中查找和配偶对应的姓名,该如何使用公式呢?

因为VLOOKUP函数要求查询值必须处于查询区域的首列,再使用普通方法就无法完成要求了,今天就和大家说说,关于逆向查询的几种方法。

方法一:使用IF函数重新构建数组。

在E4中输入
=VLOOKUP(D4,IF({1,0},$B$2:$B$17,$A$2:$A$17),2,0)

这个公式的用法就是用IF({1,0},$B$2:$B$17,$A$2:$A$17),返回一个配偶在前,姓名在后的多行两列的内存数组,使其符合VLOOKUP函数的查询值处于查询区域首列的条件,再用VLOOKUP查询即可。

该函数使用比较复杂,运算效率低。

装逼指数:★★★★★
推荐指数:★

方法二:使用CHOOSE函数重新构建数组。

E6使用公式为:
=VLOOKUP(D6,CHOOSE({1,2},B2:B17,A2:A17),2,0)

这个公式的原理也是重新构建一个内存数组,使其符合VLOOKUP函数的查询值处于查询区域首列的条件。

该函数与方法一的思路相同,同样是使用复杂,运算效率低。

装逼指数:★★★★★
推荐指数:★

方法三:INDEX+MATCH结合使用。

E8使用公式为:
=INDEX(A:A,MATCH(D8,B:B,))

公式首先使用MATCH函数返回D8单元格姓名在B列单元格中的相对位置,也就是这个区域中所处第几行。

再以此作为INDEX函数的索引值,从A列单元格区域中返回对应位置的内容。

这个公式是最常用的查询公式之一,看似繁琐,实际查询应用时,由于其组合灵活,可以完成从左至右、从右到左、从下到上、从上到下等多个方向的查询。

该函数是嵌套使用,操作灵活,运算方便。

装逼指数:★★★
推荐指数:★★★

方法四:所向披靡的LOOKUP函数。

E10使用公式为:
=LOOKUP(1,0/(D10=B2:B17),A2:A17)

这是非常经典的LOOKUP用法。

首先用D10=B2:B17得到一组逻辑值,再用0除以这些逻辑值,得到由0和错误值组成的内存数组。再用1作为查询值,在内存数组中进行查询。

如果 LOOKUP 函数找不到查询值,则它与查询区域中小于或等于查询值的最大值匹配,因此是以最后一个0进行匹配,并返回A2:A17中相同位置的值。

该函数使用简便,功能强大,公式书写也比较简洁。

装逼指数:★
推荐指数:★★★★★

如果有多条符合条件的结果,前三个公式都是返回首个满足条件的值,而第四个公式则是返回最后一个满足条件的值,这一点大家在使用时还需要特别注意。

关于多条件查询,可以《一对多查询,神器index+small》。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多