目录
VLOOKUP介绍
VLOOKUP函数是Excel中的一个纵向查找函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。
VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])
VLOOKUP(被查询的值,查询的范围,要传回的列号,比对方式)
VLOOKUP快速上手
需求描述
如图1为歌曲信息表,图2位歌手信息表,现需要通过歌曲信息表查找歌手信息表中歌手对应的歌曲,将歌手信息表补充完整,怎样才能快速实现呢?
图1 歌曲信息表
图2 歌手信息表
需求实现
第一步:声明使用VLOOKUP函数
在歌手对应的歌曲单元格输入"=vlookup()",字母大小写兼可,请使用英文字符。
单元格输入内容:
=vlookup()
第二步:输入VLOOKUP()函数的第一个参数
VLOOKUP(被查询的值,查询的范围,要传回的列号,比对方式)
将鼠标光标移动到"=vlookup()"中的括号里(呈现这样的效果:"=vlookup(|)"),并单击周杰伦所在单元格(或是手动输入周杰伦所在表格中的坐标,第A列,第2行,即A2)。我们要通过周杰伦的名字到歌曲信息表中查找周杰伦对应的歌曲,所以周杰伦就是被查询的值。注意每个参数之间用逗号隔开!
单元格输入内容:
=vlookup(A2,)
第三步:输入VLOOKUP()函数的第二个参数
VLOOKUP(被查询的值,查询的范围,要传回的列号,比对方式)
鼠标光标移动到歌曲信息表字母A所在单元格,字母A所在单元格会立即变成绿色 ,鼠标单击不要放开字母A所在单元格,并随着图中箭头方向拖动到字母E所在单元格然后再放开鼠标。绿色虚线围起来的范围就是查询的范围。
单元格输入内容:
=vlookup(A2,[歌曲信息表.xlsx]Sheet1!$A:$E,)
完成以上步骤之后,返回歌手信息表,我们发现Excel自动帮我们填充了VLOOKUP()函数的第二个参数。
第四步:输入VLOOKUP()函数的第三个参数
VLOOKUP(被查询的值,查询的范围,要传回的列号,比对方式)
显然,我们要查找的内容是歌手对应的歌曲,其位于第三步中我们所确定的查询范围的第5列,所以这里我们输入"5"
单元格输入内容:
=vlookup(A2,[歌曲信息表.xlsx]Sheet1!$A:$E,5,)
第五步: 输入VLOOKUP()函数的第四个参数
VLOOKUP(被查询的值,查询的范围,要传回的列号,比对方式)
比对方式分为精确匹配和近似匹配,输入"FALSE"表示精确匹配,"TRUE"表示近似匹配,这里我们输入"FALSE",使用精确匹配。
单元格输入内容:
=vlookup(A2,[歌曲信息表.xlsx]Sheet1!$A:$E,5,false)
第六步:回车+拖动
按下回车键(键盘上的Enter键)得到第一个查询结果,将鼠标光标移动到单元格右下角,直到鼠标光标由白色十字变成黑色十字,点击不放开并向下拖动,直至填充完整列表格。
下图为最终结果,因为张三和李四不在歌曲信息表中,所以查询结果为#N/A
常见问题
问题一:
VLOOKUP的第一个参数即被查询的值只能位于第二个参数即查询的范围的第一列,例如下图,当被查询的值(歌手)位于查询范围的第二列时,VLOOKUP就无法发挥其作用了。
遇到这种情况不用担心,我们可以重新选定VLOOKUP的第二个参数即查询的范围, 鼠标光标移动到歌曲信息表字母B所在单元格,字母B所在单元格会立即变成绿色 ,鼠标单击不要放开字母B所在单元格,并随着图中箭头方向拖动到字母E所在单元格然后再放开鼠标。绿色虚线围起来的范围就是我们重新选定的查询范围。
重新选择了查询范围之后,VLOOKUP的第三个参数即要传回的列数也要跟着改变,歌曲位于新的查询范围的第4列,所以VLOOKUP的第三个参数我们需要更改为4,第四个参数即比对方式不变,仍然使用精确查询。
最终输入单元格的VLOOKUP函数为
=VLOOKUP(A2,[歌曲信息表.xlsx]Sheet1!$B:$E,4,FALSE)
结果依然和我们第一次得到的结果一致。
问题二:
如下图,如果我们对查询范围所在的表做了修改,例如我们将歌曲信息表中周杰伦对应的歌曲《不能说的秘密》修改为《夜曲》。
那么歌手信息表中对应的信息也会相应发生变化。
VLOOKUP的这一特点为我们对表的维护提供了极大的方便,但同时也存在着一定的隐患,例如有人修改了查询范围所在表的数据,或者我们不小心移动了查询范围所在表的位置,或者修改了表名,这些操作都可能会影响到我们的查询结果。
怎样可以避免以上问题呢?
选中并复制红框里的内容,再粘贴为值。
这样无论我们怎样对查询范围所在的表修改,都不会对我们已经查询得到的结果有任何影响。
问题三:
如下图,如果我们将歌曲整列移动到整个歌曲信息表的第一列,还是实现同样的需求,查找歌手对应的歌曲。
显然,根据VLOOKUP的第一个参数即被查询的值只能位于第二个参数即查询的范围的第一列原则,无论我们怎样选择查询的范围,都无法满足被查询的值位于查询范围的第一列。
上述情况怎么办呢?
有两种解决方法,第一种方法,如下图,我们可以将歌手整列移动到整个歌曲信息表的第一列,然后重新选定查询范围及要传回的列数。
输入单元格的VLOOKUP函数为
=VLOOKUP(A2,[歌曲信息表.xlsx]Sheet1!$A:$B,2,FALSE)
第一种方法相当于预先对表做了修改,修改了表列与列之间的排序,如果我们不想修改表又想快速查找数据,有没有更好的方法呢?答案是肯定有的。
第二种方法,使用Excel的MATCH函数和INDEX函数,可以不用预先对表做任何修改,而且还不用遵循VLOOKUP的被查询的值只能位于查询范围的第一列原则。
关于INDEX和MATCH函数的使用,我将在下一篇文章与大家分享!