Excel秘籍大全,前言
数据查询是Excel最重要的知识点之一,每个学习Excel的人都绕不开它。从数据查询的方向上来看,主要有顺向查询和逆向查询,今天,Excel秘籍大全来给大家重点讲解Excel逆向查询(反向查询)的9种方法。
Excel秘籍大全,正文开始
1.VLOOKUP逆向查询
VLOOKUP函数是我们在查询数据时使用频率最高的一种函数,它本身是不支持逆向查询的,需要配合IF函数达到逆向查询的目的。如图1所示,根据薪资查询对应的员工姓名,其公式为:=VLOOKUP(H2,IF({1,0},F1:F8,A1:A8),2,0)。
图1
IF函数搭配数组{1,0},当{1,0}为1时,IF函数返回第二参数F1:F8,当{1,0}为0时,IF函数返回第三参数A1:A8,这样就从空间上构建了F1:F8和A1:A8组成的顺向数据区域,IF函数的作用就是将原本逆向排布的数据区域进行顺向排布。
2.IF函数逆向查询
条件判断IF函数也可以进行逆向查询,不过需要配合数组元素连接函数CONCAT达到逆向查询的效果。如图2所示,根据薪资查询对应的员工姓名,其公式为:=CONCAT(IF(H2=F2:F8,A2:A8,"")),最后按下数组三键Ctrl+Shift+Enter。
图2
IF函数的第一参数H2=F2:F8,会形成FALSE和TRUE组成的数组{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE},其中TRUE为条件满足返回的值,IF函数第二参数A2:A8会形成数组{"张三";"李四";"王五";"赵六";"周七";"孙八";"诸葛亮"},当第一参数返回TRUE时(第五位),IF函数返回第二参数数组中对应的值即"周七"(也是第五位)。为FALSE时,就返回IF函数第三参数即空值。
这样,IF函数最终会形成{"";"";"";"";"周七";"";""},再用CONCAT函数对数组元素进行连接,空值不显示,结果即为"周七"。
3.INDEX+MATCH逆向查询
INDEX+MATCH也是使用频率很高的一种函数组合,如图3所示,根据薪资查询对应的员工姓名,其公式为:=INDEX(A2:A8,MATCH(H2,F2:F8,0))。
图3
INDEX函数能够根据行序数和列序数查询到数据区域中的对应值,数据区域为一行或一列时,列序数通常可省略,MATCH函数是返回一个值在一行或一列数据区域中的位置,两个函数结合,就能根据返回值数据区域和查找值所在的位置,查询到最终值。
MATCH(H2,F2:F8,0)的结果是5550在工资列中的位置即5(不包含标题),那么A2:A8中的第五位即“周七”。
4.LOOKUP函数逆向查询
LOOKUP函数是查询界的鼻祖函数,VLOOKUP和XLOOKUP都由它衍生而来。相比VLOOKUP不能支持逆向查询的不足,LOOKUP会更加灵活。如图4所示,根据薪资查询对应的员工姓名,其公式为:=LOOKUP(0,0/(F2:F8=H2),A2:A8)。
图4
5.XLOOKUP逆向查询
Microsoft 365和网页版Excel支持XLOOKUP函数,新版的WPS也是支持的,它是Excel近几年新出的函数,相比风靡职场的VLOOKUP,它更加强大和灵活。如图5所示,根据薪资查询对应的员工姓名,其公式为:=XLOOKUP(H2,F2:F8,A2:A8)。
图5
6.SUM函数逆向查询
SUM函数虽然是求和函数,但是也能达到数据查询的目的,但是有限定条件,SUM函数查询的结果必须为数值才可以,如图6所示,根据薪资查询对应的员工年龄,其公式为:=SUM((F2:F8=H2)*(B2:B8)),最后按下数组三键Ctrl+Shift+Enter。
图6
F2:F8=H2会形成逻辑值组成的数组{FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE},B2:B8会形成{29;22;30;26;31;24;49},两个数组一一对应相乘,逻辑值FALSE可以看作0,TRUE可以看作1,结果为{0;0;0;0;31;0;0},然后再用SUM函数对这个数组进行求和。
7.SUMPRODUCT逆向查询
SUMPRODUCT函数是返回数组的乘积之和,灵活运用它,也可以起到数据查询的作用,如图7所示,根据薪资查询对应的员工年龄,其公式为:=SUMPRODUCT((F2:F8=H2)*(B2:B8))。原理与SUM函数一致,这里就不赘述了,区别在于SUMPRODUCT本身就是数组函数,无需按下数组三键。
图7
8.INDIRECT逆向查询
INDIRECT是Excel中十分强大的引用函数,直接引用目标值所在的行列,即可查询到对应值,如图8所示,根据薪资查询对应姓名,其公式为:=INDIRECT("A"&MATCH(H2,F1:F8,0)),"A"为A列,MATCH(H2,F1:F8,0)根据薪资所在的行数,能够对应到此薪资的员工所在的行数,行和列都能确定的情况下,我们就能锁定目标值。
图8
9.DGET逆向查询
我们也可以根据数据库函数进行逆向查询,以DGET函数为例,如图9所示,根据薪资查询对应姓名,其公式为:=DGET(A1:F8,1,H1:H2)。
本文暂时没有评论,来添加一个吧(●'◡'●)