最近几期连续推送VBA相关的知识,有小伙伴建议,可以多发一些关于工作常用的函数,今天我们介绍关于逆向查找的四种方法。 如下图,A列为学员,B列为学号。根据学员查找对应的学号,我们可以用VLOOKUP轻松得出相应的结果。但是根据学号怎么查找出对应的学号,也就是怎么逆向查找。 ↓↓↓ 1、VLOOKUP+IF逆向查找 E5单元格输入:=VLOOKUP(D6,IF({1,0},B3:B11,A3:A11),2,0) 函数简释: 此用法重点在于IF({1,0},B3:B11,A3:A11)的应用。 IF(条件,满足条件返回的结果,不满足条件返回的结果),在C列输入公式=IF(TRUE,$B$3:$B$11,$A$3:$A$11),返回结果如图: 在D列输入公式=IF(FALSE,$B$3:$B$11,$A$3:$A$11)返回结果如图: IF函数中的TRUE可以用1代替,也可以用2代替,为了方便,通常选择1。FALSE用0代替。 在C、D列输入数组公式所以返回结果,如图: IF({1,0})和VLOOKUP结合就可以得到逆向查询的目的。 也可以参考以前的文章(公众号:data--tech)数据技术: 我给你打五毛钱的赌,90%的表妹没用过这样的VLOOKUP 2、VLOOKUP+CHOOSE组合函数 E8单元格输入:=VLOOKUP(D8,CHOOSE({1,2},B3:B11,A3:A11),2,0) 这个函数的逻辑和第一种方法是类似的,只不过用CHOOSE代替了IF({1,0})的作用。 3、LOOKUP逆向查找 E6单元格输入:=LOOKUP(1,0/(B3:B11=D5),A3:A11) 主要用到LOOKUP函数的数组用法。 函数简释: 0/(B3:B11=D5),用F9抹黑,得出的结果是{#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!},LOOKUP就是查找0/(B3:B11=D5)小于等于1的结果对应的A3:A11区域的值。0/(B3:B11=D5)第四个结果为0,小于等于1,所以返回A3:A11区域对应的第四个单元格,即史桥茹。 关于LOOKUP函数更多的用法,可以参考以下链接: 还在用IF?你不嫌累吗,试试LOOKUP吧 众里寻他千百度(LOOKUP+FIND) 4、INDEX+MATCH数组 E7单元格输入:=INDEX(A3:A11,MATCH(D7,B3:B11,)) 函数简释: MATCH函数查找出D7单元格在B3:B11中的位置,为第4个单元格,INDEX返回A3:A11区域第四个单元格的内容,即史桥茹。 |
|