今天和大家一起调戏一下VLOOKUP函数,通过抽丝剥茧,层层解析,一步一步脱掉她的外衣,深刻了解她的内在,将她玩弄于股掌之上。
一、什么时候可以用到VLOOKUP函数?
通俗的说,VLOOKUP是一个按列纵向查找匹配的函数。
比如已经有一份学生成绩单,内容包括学号、姓名、性别、成绩等,名单里有几百个学生。现在有一份表,名单顺序与已知的名单不同,已知学号、姓名,要你填他们的成绩是多少。
怎么办?Ctrl+F,一个一个查找手动填?若只有少数几个还可以,多了的话肯定不行,有几百个的话怎么办?
这就是VLOOKUP函数大显神威的时候了。
二、?VLOOKUP函数的使用方法
=VLOOKUP(查找值,查找范围,查找值在查找范围里是第几列,精确查找还是模糊查找)
参数说明:下面以周伯通的成绩来进行参数讲解。
查找值:该值最好是具有唯一性。如果姓名没有重复的话没有关系,有重复查找可能会出错。本例的查找值为周伯通。
查找范围:要在哪个范围中进行查找,注意查找范围通常情况下是固定的,要绝对引用,查找值要在查找范围的最左边一列。查找范围为$B$2:$D$13。
列数:要求的值在查找范围内是第几列。查找范围的第一列是姓名,第二列是性别,第三列是成绩,所以要求的成绩在第三列,列数为3。
PS:该值可以使用column(A:A)或其他函数代替,可以在填充时作为动态参数,后面会讲。
精确查找还是模糊查找。精确查找:参数为false或0或省略。模糊查找:参数为true或1,如果找不到精确值,则返回小于查找值的最大数值。本例为精确查找。
三、?实例讲解
按照上述参数讲解,可以动手试试了。
周伯通的成绩为:=VLOOKUP(F2,$B$2:$D$13,3,FALSE),公式下拉填充得到其他人的成绩。
通俗地说,这个函数的意思就是在$B$2:$D$13范围内的最左边那列找到姓名为周伯通的,这就确定到了在哪一行,然后列号为3,就是查找范围内周伯通那行的第3列为79,这就确定到了单元格79,查找完毕。
四、VLOOKUP函数与其他函数结合使用
当然VLOOKUP函数可以与MATCH、COLUMN等函数结合使用,相当于INDEX函数与MATCH函数结合,会起到更强大的作用。
1.VLOOKUP与COLUMN函数结合使用
如上图,已知姓名,要求学号,性别,成绩。根据上面讲到的内容还是可以做出来的,每一列写一个函数,就是有点麻烦。其实vlookup函数结合column函数可以写一个函数一次性做出来。
仔细分析上图,要求的学号、性别、成绩顺序与数据表一致,在vlookup公式里面的第三个参数"列数"分别为2、3、4,是递增的。也就是说这三个公式只是列数不同,可以使用column(B:B)代替,当往右拖动时会变成column(C:C)、column(D:D),即2、3、4。
所以,周伯通的学号G2单元格公式为=VLOOKUP($F2,$A$2:$D$13,COLUMN(B:B),0)
诶,公式里查找值为什么是$F2,为什么要将列号固定行号不固定?
我们想一下,我们现是写出一个单元格(G2)的公式,然后进行上下左右填充,所以自然要顾及到填充对公式造成的影响。G2单元格的查找值为F2(周伯通),我们想要的是当向右填充时列号要保持不变,向下填充时行号要递增,所以进行列号固定$F2。
?
VLOOKUP与COLUMN函数结合
最终效果
2.VLOOKUP与MATCH函数结合使用
仔细看上图,要求的性别、学号、成绩列号顺序变换了一下,那这次总不能用VLOOKUP与COLUMN函数结合使用了吧?是不是还得手动输入公式3次?
哈哈,那得轮到VLOOKUP与MATCH函数大显身手了。
本例难的是如何求得性别、学号、成绩在查找范围中的列号,而match函数刚好有这种功能。
=match(查找值,查找区域,匹配类型),得到的是查找值在查找区域中的位置。
则G2单元格(周伯通的性别)公式为=VLOOKUP($F2,$A$2:$D$13,MATCH(G$1,$A$1:$D$1,0),0)
MATCH(G$1,$A$1:$D$1,0)得到的是性别G$1在查找范围$A$1:$D$1里是第3列。
具体过程见下图:
VLOOKUP与MATCH函数结合
最终结果
其实,除了VLOOKUP函数具有强大的查找匹配功能外,还有HLOOKUP、LOOKUP、INDEX+MATCH函数也具有相似的功能,我们将在下次进行一一解说。
好了,以上就是VLOOKUP函数的使用方法,大家还有什么不懂的可以在下面交流,欢迎大家留言。
……