如何利用Vlookup函数获取学号中的班级信息。换言之,我们源数据中放着姓名性别学号班级等信息,而在另外一张表格中必定有学号信息,但其余信息就未必有,这须要咱们将缺失的信息自动同步过去。使用vlookup函数的确很是简单,今天我就再次来剖析一下这个函数吧。数组
1、利用Vlookup函数返回班级名称函数
以下图所示,A表为源数据表,B表则是须要填入缺失班级信息的表格。咱们如何快速完成这个同步呢?spa
上图的情形是很是简单的,利用基本的vlookup函数就能够搞定了。vlookup函数共计4个参数:orm
=vlookup(lookup_value,Table_array,col_num,type)blog
A表和B表首列都是学号信息,所以咱们能够经过利用B表中的学号(lookup_value)到A表(table_array)中进行查询,而后返回A表中从左右往右数第4列的信息(col_num),z只有B表中的学号在A表中存在时,才返回正确的结果(为0,即精确匹配)。所以正确的公式写法为:同步
=VLOOKUP(H4,$A$4:$D$15,4,0)table
由于公式须要向下复制,而查询的范围永远都是A表,所以咱们在列号和行号加美圆($)将其固定住(绝对引用)。class
按照这个思路分析,其实本公式还有其余写法,你看出来了吗?引用
参考答案:=VLOOKUP(I4,$B$4:$D$15,3,0)im
2、利用vlookup返回多列数据
以下图所示,A表为数据源表,C表则为须要填入信息的表格,咱们如何将A表中的内容快速同步到C表中呢?
经过前面的例子的讲解,我相信彻底能够经过vlookup函数作到了,只是作法可能会比较笨,演示以下:
须要同步三列信息,所以写了3条公式,确实够慢的:
=VLOOKUP(A22,$A$4:$D$15,2,0)=VLOOKUP(A22,$A$4:$D$15,3,0)=VLOOKUP(A22,$A$4:$D$15,4,0)
那么咱们能够一条就能够完成全部信息的同步吗?答案固然是能够的。经过观察上述三条公式咱们能够发现,三条公式惟一的不一样就在于第3参数的不一样,若是能利用其它函数获得2,3,4这3个数字,这个公式不就简化了。由于公式是要向右复制的,所以,咱们能够利用column函数来办到,因为数字是从2开始的,所以咱们获得:
=vlookup(A22,$A$4:$D$15,column(b1),0)
然而当咱们向右拖动的公式,会发现除了姓名列获得正确的结果,其余列的内容均出现了#NA,这是为何呢?
点击C2单元格,咱们发现公式居然变成了,
=vlookup(B22,$A$4:$D$15,column(C1),0)
第1参数变成了B22,咱们但愿的是公式复制到C2单元格,第1参数依然是A22,所以咱们须要在列号前加一个美圆符号($),这样当公式向右复制时就再也不出错了。最终的公式以下:
=VLOOKUP($A22,$A$4:$D$15,COLUMN(B1),0)
坦白说,前面这种状况算是简单的,由于A表和C表的列的顺序是彻底一致的,但假如顺序不一致的,使用上述公式显然就会出错了,那么遇到这种状况下,咱们该怎么办呢?
咱们须要找一个函数来代替column函数。那么这个函数就是match函数(这个函数限于篇幅,我暂不作介绍),演示以下:
=VLOOKUP($A22,$A$4:$D$15,MATCH(B$21,$A$3:$D$3,0),0)
你们能够仔细琢磨一下这个公式。
3、利用vlookup函数灵活返回多列数据
以下图所示,如何将A表的数据同步到D表中,也许不少同窗会说很是简单。不就是利用vlookup函数来作吗?
公式没有问题啊,为何会出错呢?这是由于vlookup函数要求lookup_value在源数据表中只能位于最左侧,并且咱们返回的列序号是以lookup_value为起点从左往右数的。那么遇到D表这种状况咱们该如何办呢?咱们须要利用函数将table_array中的lookup_value列调整至最左侧。最终公式以下:
{=VLOOKUP(I22,IF({1,0},$B$4:$B$15,$A$4:$A$15),2,0)}
咱们利用if函数将第2参数中的lookup_value列即学号列调整至了最左侧,而后也就达到了目的。但要注意的是,此公式为数组公式,所以输入完公式后,咱们须要按住Ctrl+Shift+Enter组合键完成数组公式的录入,外层的{}可不是直接输入的哦。