Excel逆向查询,记住这些才是真的懂

论坛 期权论坛 期权     
Excel之家ExcelHom   2019-6-16 19:12   1968   0
[h1]在日常的Excel函数应用中,最常用的就是查询类函数,比如说根据工号查询姓名、根据学生查询成绩、根据男猪脚查询女一号等等。[/h1]说到查询类函数,大家对VLOOKUP一定不会陌生,这可是人见人爱花见花开的函数。
下面这个图中,就是根据工号查询姓名的典型应用:


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


如果我们以姓名作为查找值,需要在这个区域中查找和姓名对应的工号,该如何使用公式呢?
因为VLOOKUP函数要求查询值必须处于查询区域的首列,再使用普通方法就无法完成要求了,今天就和大家说说,关于逆向查询的几种方法。

[h1]方法一
[/h1]使用IF函数重新构建数组。

G2使用公式为:
=VLOOKUP(F2,IF({1,0},B2:B10,A2:A10),2,0)


这个公式的用法在之前的内容中咱们曾经讲过,就是用IF({1,0},B2:B10,A2:A10),返回一个姓名在前,工号在后的多行两列的内存数组,使其符合VLOOKUP函数的查询值处于查询区域首列的条件,再用VLOOKUP查询即可。
该函数使用比较复杂,运算效率低。

[h1]方法二
[/h1]使用CHOOSE函数重新构建数组。

G2使用公式为:
=VLOOKUP(F2,CHOOSE({1,2},B2:B10,A2:A10),2,0)


这个公式的原理也是重新构建一个内存数组,使其符合VLOOKUP函数的查询值处于查询区域首列的条件。
该函数与方法一的思路相同,同样是使用复杂,运算效率低。

[h1]方法三
[/h1]INDEX+MATCH结合使用。

G2使用公式为:
=INDEX(A2:A10,MATCH(F2,B2:B10,))


公式首先使用MATCH函数返回F2单元格姓名在B2:B10单元格中的相对位置6,也就是这个区域中所处第几行。
再以此作为INDEX函数的索引值,从A2:A10单元格区域中返回对应位置的内容。
这个公式是最常用的查询公式之一,看似繁琐,实际查询应用时,由于其组合灵活,可以完成从左至右、从右到左、从下到上、从上到下等多个方向的查询。
该函数是嵌套使用,操作灵活,运算方便。

[h1]方法四
[/h1]所向披靡的LOOKUP函数。

G2使用公式为:
=LOOKUP(1,0/(F2=B2:B10),A2:A10)


这是非常经典的LOOKUP用法。
首先用F2=B2:B10得到一组逻辑值,再用0除以这些逻辑值,得到由0和错误值组成的内存数组。再用1作为查询值,在内存数组中进行查询。
如果 LOOKUP 函数找不到查询值,则它与查询区域中小于或等于查询值的最大值匹配,因此是以最后一个0进行匹配,并返回A2:A10中相同位置的值。
该函数使用简便,功能强大,公式书写也比较简洁。
如果有多条符合条件的结果,前三个公式都是返回首个满足条件的值,而第四个公式则是返回最后一个满足条件的值,这一点大家在使用时还需要特别注意。
好了,今天的分享就到这里,祝大家一天好心情。
图文:祝洪忠

点击图标进入ExcelHome云课堂,发现更多精彩课程
[url=][/url]
专业的职场技能充电站

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:800
帖子:160
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP