Vlookup的4种逆天用法,背后的这个函数太厉害

在Excel表格中,Vlookup一直被lookup、Xlookup等函数嫌弃,原因是Vlookup有太多软肋:

  • 无法反向查找
  • 无法多条件查找
  • 无法从后向前查找
  • 无法一对多查找


众所周知,有一个函数可以帮Vlookup函数完成逆袭,它就是IF函数。


一、Vlookup函数4个逆天公式


1、从右向从左查找


【例】根据姓名查部门

=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)

注:本公式为数组公式,非office365版本需要按ctrl shift enter三键输入。以下公式同理。



2、多条件查找

【例】根据部门和姓名查工资

=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)


3、查找最后一个


【例】查找A产品最后一次进货价格

=VLOOKUP(1,IF({100,0},0/(B2:B10="A"),C2:C10),2)


4、一对多查找

【例】查找出人事部所有员工

数组公式输入完成后按Ctrl+shift+enter结束后自动添加大括号

{=VLOOKUP(E$2&ROW(A1),IF({1,0},A$2:A$8&COUNTIF(INDIRECT("a2:a"&ROW($2:$8)),E$2),B$2:B$8),2,0)}



二、IF函数为什么这么牛


IF函数的用法很简单,但为什么它竟然可以让Vlookup实现这么多逆天的功能,其实这才是兰色写本篇教程的主要目的。


IF函数基本语法为:

=IF(判断条件,条件成立时返回的值不成立返回的值


最常见的IF公式是这样的 : 第一个参数是一个很明显的判断表达式

=IF(A1>60,"及格","不及格")


我们选中公式中的A1>60,可以选中按【F9】键查看它的结果,如果成立是true,否则是False



也就是说,第一个结果是TRUE返回第2个参数

=IF(TRUE,"及格","不及格")

第一个结果是False返回第3个参数

=IF(FALSE,"及格","不及格")


而在Excel公式中,判断时

  • 非0数字等同于True(条件成立),一般是用 1
  • 0等同于False(条件不成立)


所以:

=IF(1,"及格","不及格")

=IF(0,"及格","不及格")



如果IF第1个参数是一组数,返回结果也是一组数(多个数放在大括号{}内

如:

=IF({1,0},"及格","不及格")

结果是:

{"及格","不及格"}


你以为if的第2、3个参数只能是数值?No! 它们还可以是引用区域。可以用来:


1、颠倒两列位置,构成新的两列数组,帮助Vlookup实现从左向右的查找

【例】根据姓名查部门

=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)



2、多列连接成一列,再和另一列组合成新的两列数据,帮助Vlookup实现多条件查找等。

【例】根据部门和姓名查工资

=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)


现在,你是不是有点明白IF({1,0}在Vlookup中的用法了?


兰色说:在excel中有很多会用但不知道原理的Excel公式,如果同学们喜欢这种解析的方法,就点赞转发支持一下。兰色将继续讲解其他难理解的公式。