虽然我们是以PPT为主的公众号,考虑到Excel的广泛需求,我们请罂粟姐姐每周给大家讲1期。据说,罂粟姐姐很漂亮的啦,为什么明明可以靠脸,非拼才华泥。
在Excel函数界,有400多位成员,只有VLOOKUP是公认的大众情人。
这么多年来,即使有更强大的函数组合能够实现它的功能,也从来没有谁能真正取代它的江湖地位。
罂粟姐姐将为大家揭开VLOOKUP的神秘面纱,初级、中级、高级一应俱全,必须收藏。
VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。
英文语法:VLOOK
P(lookup_value,table_array,col_index_num,range_lookup)
中文语法:VLOOKUP(找谁,在什么范围找,在范围里的第几列,精确查找或模糊查找)
案例:已知全班的期末考试成绩,现需要查找出指定的部分学生的成绩。
公式:=VLOOKUP(E2,$B$2:$C$18,2,0)
计算过程
语法解读(必须掌握)
注意:
(1)函数的第3个参数为查找区域的第几列,不能理解为数据表中实际的列号。
(2)函数的第4个参数决定了查找方式,如果为0或False,函数则为精确匹配查找,而且支持无序查找;如果为1或Ture,函数则使用模糊匹配方式查找,查找区域的第一列必须为升序,否则不能返回正确的结果。
(3)当存在多条满足条件的记录时,VLOOKUP函数只能返回第1个满足条件的记录。
VLOOKUP除了简单的查找外,还可以实现一些更复杂的查找匹配。
案例1:多列查找一次性输入公式
多列查找时,其他参数不变,公式=VLOOKUP($H7,$B$1:$F$18,?,0),最重要的是要修改第三个参数的值,因为列在变化,第3个参数也在发生变化。
大学语文在姓名后的第一列,那么第三个参数应该是1,=VLOOKUP($H7,$B$1:$F$18,1,0);
高等数学在姓名后的第二列,那么第三个参数应该是2,公式=VLOOKUP($H7,$B$1:$F$18,2,0)。
我们可以将第几列用其他函数的计算结果来实现,一般情况下最常用的有
两种方法:
(1)1=COLUMN(A1);2=COLUMN(B1)……
(2)1=MATCH(I6,$C$1:$F$1,0);2=MATCH(J6,$C$1:$F$1,0)……
最终公式有两种:
(1)=VLOOKUP($H7,$B$1:$F$18,COLUMN(B2),0)
(2)=VLOOKUP($H7,$B$1:$F$18,MATCH(I$6,$B$1:$F$1,0),0)
案例2:数值区间模糊查找
注意:引用的数字区域必须由小到大排列,输出结果是和查找值最接近但比它小的那个值。
公式=VLOOKUP(D4,$A$1:$B$10,2,1)
案例3:模糊条件模糊查找
VLOOKUP的第一参数可以自动进行模糊匹配,将以E3开头的单元格找到并匹配其对应的单元格内容。
公式=VLOOKUP(E3,$A:$B,2,1)
案例4、使用通配符精确查找
VLOOKUP的第一个参数还支持通配符“*”,使用通配符后相当于确定了查找条件,可以实现精确查找,查找结果也是返回首次满足条件的记录的相应值。
公式=VLOOKUP("*"&F5&"*",$A:$B,2,0)
案例1:从右往左查找
因为VLOOKUP第三个参数必须为正数,所以从函数本身来理解只能实现由左向右的查找,于是很多小伙伴在遇到反向查找问题时,总是习惯粘贴复制调换位置,这个当然是方法之一。
还有一种方法是借用INDEX函数+MATCH函数实现,非常简单方便。
但是既然说到VLOOKUP,那我们就看看到底能不能用VLOOKUP实现反向匹配。
首先需要利用IF函数将A列和B列互换。
公式=IF({1,0},B1:B18,A1:A18)
公式解读:数组公式,1相当于TURE,0相当于FALSE,当为1时,它会返回IF的第二个参数(B1:B18),为0时返回第二个参数(A1:A18)。
输入公式结束后同时按Ctrl+Shift+Enter三键出来结果。
B列和C列实现互换后,再直接用VLOOKUP就可以实现反向匹配。
公式=VLOOKUP(G5,IF({1,0},B1:B18,A1:A18),2,0)
然后有小伙伴会问,你这是两列在一起,如果隔列反向查找怎么办呢?当然是同样的办法啦。
公式=VLOOKUP(G5,IF({1,0},C1:C18,A1:A18),2,0)
只需要把对应的列进行修改即可。注意,第三个参数查找列依旧为2,因为IF函数构建的是一个两列的数据表。
案例2:多条件查找
在有多个条件的情况下,我们通常需要将多个条件先合并,再利用IF函数数组特性重构原始数据。
公式=VLOOKUP(E3&F3,IF({1,0},A1:A13&B1:B13,C1:C13),2,0)
E3&F3:将多条件合并
IF({1,0},A1:A13&B1:B13,C1:C13):利用if函数第一个参数的数组化特征,将多条件合并后的内容与查询的列结合起来,组成新的两列数据。
注意:案例1如果两列互换,所以是B在前A在后,这个案例不需要互换,所以AB在前,C在后
输入公式结束后同时按Ctrl+Shift+Enter三键出来结果。
案例3:在合并单元格内进行查找
虽然一再强调,尽量避免在Excel中进行单元格合并,但是为了美观,我们还是会遇到合并单元格的数据列表。
现需要根据左侧单价和各产品类型各分公司销售数量计算出总销售额。
因为第二个表中“产品类型”被设置成了合并单元格,除了每个合并区域的第一个单元格有数值外,其余均为空,因此无法直接在单价表中查找对应品种的单价,所以首先要使用公式填充合并单元格中的空单元格。
公式=LOOKUP("座",D$2:D2)
LOOKUP函数的特殊用法,在以D2单元格开始不断向下扩大范围的单元格区域中查找“座”字,当LOOKUP函数找不到“座”字时,则返回区域中最后一个非空单元格名称,即对应的产品类型。
使用LOOKUP函数的结果
解释:由于LOOKUP查找汉字是按照汉语拼音的顺序来查找的,座(拼音zuo)是拼音中的最后一个,所以用“座”可以查找区域中最后一个单元格内容,同理,换为其它字符代码较大的汉字也可以查找。
再用VLOOKUP函数查找出产品的单价,与销售量相乘,即得到总销售额。
最终的公式=VLOOKUP(LOOKUP("座",D$2:D2),$A$2:$B$6,2,0)*F2
好啦,今天的教程就到这里啦,相信有了这篇文章,大家都能搞定VLOOKUP这个迷人的小妖精了。
这年头,很多人觉得技能学习是最低级投资回报率是最低的,可是姐姐却觉得不管在哪一行,技能学习都是初入职场的必修课。