在Excel表格中,Vlookup一直被lookup、Xlookup等函数嫌弃,原因是Vlookup有太多软肋:
无法反向查找
无法多条件查找
无法从后向前查找
无法一对多查找
众所周之,有一个函数可以帮Vlookup函数完成逆袭,它就是IF函数。
一、Vlookup函数4个逆天公式
1、从右向从左查找
【例】根据姓名查部门
=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)
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中的用法了?
领取专属 10元无门槛券
私享最新 技术干货