分享

EXCEL中使用INDEX、VLOOKUP等函数进行逆向查询的4种方法

 pansysguo 2018-03-25

EXCEL中进行数据处理时经常要进行数据查询,比如根据工号查询个人信息、根据学生姓名查询成绩、根据项目定义查询项目概况等,常用的查询函数如VLOOKUP,但VLOOKUP的常规用法是从左向右查询,如何从右向左进行查询呢?本文今天介绍4种逆向查询方法。

1. INDEX和MATCH的组合

=INDEX(B3:B10,MATCH(H3,C3:C10,0))

EXCEL中使用INDEX、VLOOKUP等函数进行逆向查询的4种方法

这个组合公式先用 MATCH(H3,C3:C10,0)返回H3在C3:C10中的相对位置,再以此位置为索引值,利用INDEX函数返回索引值所对应的部门。

2. VLOOKUP和IF函数的组合

如下图所示,要求根据员工姓名查询所在部门,使用公式为:

=VLOOKUP(H3,IF({1,0},C3:C10,B3:B10),2,FALSE)

EXCEL中使用INDEX、VLOOKUP等函数进行逆向查询的4种方法

这个组合函数的核心是用IF({1,0},C3:C10,B3:B10),返回一个姓名在前、部门在后的多行两列的内存数组,使其符合VLOOKUP函数的查询值处于查询区域首列的条件,再用VLOOKUP查询即可。

3. VLOOKUP和CHOOSE函数的组合

=VLOOKUP(H3,CHOOSE({1,2},C3:C10,B3:B10),2,FALSE)

EXCEL中使用INDEX、VLOOKUP等函数进行逆向查询的4种方法

这个组合函数的核心是CHOOSE({1,2},C3:C10,B3:B10),也是重新构建一个内存数组,使之符合VLOOKUP的查询要求。

4. LOOKUP函数的逆向查询

最后一个介绍的压轴函数是无往不利的LOOKUP,它堪称EXCEL界的查询利器。

=LOOKUP(1,0/(C3:C10=H3),B3:B10)

EXCEL中使用INDEX、VLOOKUP等函数进行逆向查询的4种方法

这个函数写法是典型的LOOKUP万金油式写法。首先用C3:C10=H3得到一组逻辑值,再用0除以这些逻辑值,得到由0和错误值组成的内存数组。再用1作为查询值,在内存数组中进行查询。

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

欢迎多留言,多交流!

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多