主讲老师:无言老师
讲座主题:VLOOKUP函数运用(下)
在第3期的技术讲座中,已经学习了VLOOKUP函数的用法,也分析了一些基础例子。无言老师在本期讲座通过几个实例来帮助大家更深入的了解VLOOKUP函数的使用。
VLOOKUP函数运用一:
VLOOKUP函数第三个参数返回的列数可以通过match函数定位查找的返回所需的列数,vlookup和match嵌合使用。下图所示的A11:H20单元格区域是excel源数据。
=match(需要查找的数据表列标题,元数据表列标题范围,0),这是精确查找定位第一次出现的列位置。
请使用vlookup函数解出下图所示的C24单元格中编号所对应的其余单元格的值。单击C24单元格右下角的向下三角形,可以更换选择其余的编号。
在E24单元格输入公式:=VLOOKUP($C$24,$A$11:$H$20,MATCH(D24,$A$11:$H$11,0),0)即可得到答案。同样的方法可以求出其余单元格的值,只是把定位的单元格地址更改一下就好了。
VLOOKUP函数运用二:原工作表存在通配符的查找。
如下图所示,原工作表A列中存在“*”通配符。
通过上图的源数据,要对下图的C、D、E列对应的数据进行查找,该如何设计公式呢?
单击C231单元格,输入以下公式:
=VLOOKUP(LEFT($B231,2)&"*",$A$219:$G$222,MATCH(C$230,$A$219:$G$219,0),0),然后向右和向下拉即可查找相应出相应的数据。
无言老师提到,还可以使用下面这样的公式,也能实现。
=VLOOKUP(MID($B239,1,2)&"??",$A$219:$G$222,MATCH(C$238,$A$219:$G$219,0),0)
通过这个案例,可以看到*和?的替换作用,*号替换的可以为某个文本之前或之后的所有字符,?号代替的只是一个字符。通常来说,通配符用的比较多的还是*号。
VLOOKUP函数运用三:反向查找。
VLOOKUP函数通常只能从左往右的垂直方向有序查找。如果需要用到逆序,反向查找就需要使用IF或CHOOSE其中一个函数嵌套使用。这两个函数在VLOOKUP函数的使用通常是这样的形式:IF({1,0},查找内容的列,返回内容的列) 和 CHOOSE({1,2,3},查找内容的列, 返回内容的列-1, 返回内容的列-2返回内容的列-3),【返回内容的列需要几列就写入几列】。
下图所示的是A258:F288单元格区域为源数据,为了演示需要,将其中的部分行区域隐藏了。
如下图所示,已知姓名列数据,使用VLOOKUP函数查找年龄和工资列的数据。
要完成此题,有两种方法可以实现:
第一,使用IF({1,0}嵌套VLOOKUP实现。
单击年龄下方的I270单元格,输入公式:
=VLOOKUP($H270,IF({1,0},$B$258:$B$288,$D$258:$D$288),2,0),然后下拉。
单击工资下方的J270单元格,输入公式:
=VLOOKUP($H270,IF({1,0},$B$258:$B$288,$F$258:$F$288),2,0),然后下拉。
提示:IF{1,0}函数在这里只能用到2个条件,因此使用有一定局限性。
下面我们就使用另外一种方法来实现,即借助CHOOSE函数。其实IF函数可以做到的CHOOSE同样能做到,而且CHOOSE比IF更灵活。
第二,CHOOSE函数和VLOOKUP的嵌套使用的公式:
同样在年龄下方的I270单元格,输入公式:=VLOOKUP($H288,CHOOSE({1,2,3},$B$259:$B$288,$D$259:$D$288,$F$259:$F$288),2,0),然后下拉。
单击工资下方的J270单元格,输入公式:=VLOOKUP($H288,CHOOSE({1,2,3},$B$259:$B$288,$D$259:$D$288,$F$259:$F$288),3,0)。
如果大家对以上公式不是很理解,可以在公式栏中选中不明白的部分,按下F9键,俗称“抹黑”,查看公式对应的执行结果。F9键在学习函数与公式中,对我们来说,有很大的帮助作用,帮助我们理解公式。
VLOOKUP函数运用总结:
第一,在引用数据区域最好使用绝对引用的方式进行。如果对引用方式不是很清楚的朋友,可以参看混合引用方式的经典实例:《99乘法表的制作方法》。
第二,对于引用查找的单元格,格式一定要和查找原表格的数据格式一致。
第三,如果是要从右往左查找,必须通过IF和CHOOSE等函数的配合使用才能实现。