通过Excel VLOOKUP函数基础教程,我们学会了VLOOKUP函数的基础用法。其实vlookup函数还有更高级的用法,掌握这些用法对我们日常的工作会有事半功倍的效果。今天我们来学习vllokup函数更高级的两个用法:
(1) 如果多列一起查找?
(2) 如何间隔列一起查找?
在基础教程中的例子中,我们演示了通过"姓名"查找"部门"的例子。但是如果我们想通过"姓名"同时查找"部门"和"入职时间"该如何做呢?如下图所示:
笨办法就是查找性别列的时候,写一次公式,查找部门列的时候再写一次公式。这当然可以做到,有没有更省力省时间的做法呢?
我们平时使用vlookup函数都是向下拖动,如果向右拖动会有什么结果呢?如下图所示:
我们看到,性别这一列没啥问题,但是部门这一列都没查找出来。公式拖动出现错误,我们就来分析相邻的两个公式之间相同和不同的点在哪。
根据姓名查找性别时,此时公式是: =VLOOKUP(C14,$B$2:$D$9,2,0)
当我们向右拖动查找部门时,就产生了错误,此时公式是: =VLOOKUP(D14,$B$2:$E$9,2,0)
我们发现第一参数随着我们向右拖动也相对向右移动了一个单元格,由C14变成了D14,也就是从姓名变成了性别;第二参数由于我们做了绝对引用,没有变化;第三参数是手写的数字2,也没有变化,第四参数精确引用不变化。
除了第四个参数不变为,其他3个参数我们逐一分析下:
第一个参数:我们希望向下拉时由C14变成C15, 向右拉时,不要发生变化。所以我们要将第一个参数的列改成绝对引用。因此,第一个参数应该是'$C14'
第二个参数:我们匹配的区域还是原来的区域,不希望它发生变化,因此第二个参数不变,还是保持绝对引用。
第三个参数:重点来了,当我们查找性别时,我们希望第三个参数是2,当我们查找部门时,我们希望是3. 由于上面演示时,我们是写死的2,如果我们能做到随着向右拖动,第三个参数自动变成3,4..., 那我们就能同时查找多列。
有两个函数能够帮助我们做到这件事:
(1) COLUMN函数
column函数的作用是返回当前列在整个excel中的第几列,注意是整个excel(这和下面要讲的MATCH函数是有区别的)。如下图所示:
COLUMN(A1)表示是A1在整个excel中的第几列,我们看到结果是1.
所以借助column函数,随着我们向右拖动,我们可以动态改变第三个参数。
最终我们得到的公式为VLOOKUP($C14,$B$2:$D$9,COLUMN(B1),0)
。此时向右下拉的结果如下图:
(2)MATCH函数
我们也可以通过MATCH函数来实现上面的效果. match函数是返回指定数值在指定数组区域中的位置。比如我要在一列"张三","李四","王五","赵六"中确定"李四"在第几个位置,就可以用match函数来实现,如下图所示:
回到我们的例子中,查找性别公式的第三个参数就可以用MATCH(D13,B1:D1,0)
代替。如下图所示:
当然我们希望随着向右拖动,判定值也变为"部门",判定区域还是B1:D1,所以需要改为绝对引用。最终第三个参数可以替换为MATCH(D$13,$B$1:$D$1,0)
。
最终整个公式就改为: =VLOOKUP($C14,$B$2:$D$9,MATCH(D$13,$B$1:$D$1,0),0)
. 也能得到同样的结果,这里不在演示了。
小结: 借助column函数或者match函数,我们就能够通过vlookup函数同时匹配多列了,而不用每一列都写一遍公式,只需要向右下方拉动下就轻松搞定了。
上面我们演示的例子中,要查找的性别和部门列是挨着的,那如果我们要查找的多列是间隔开的怎么弄呢?例如要查找性别和入职时间,如下图所示:
上面介绍了match函数后,大家应该都知道如何做了吧。
查找性别和入职时间的第三个参数,只需要替换为match函数,通过match函数动态匹配性别和入职时间在表头"姓名、性别、部门、入职时间"的位置即可。 最终公式为: =VLOOKUP($C14,$B$1:$E$9,MATCH(D$13,$B$1:$E$1,0),0)
结果如下:
好了,今天vlookup函数的高级用法就到这,感谢你的阅读,请关注下一期内容,学习更多用法,每天共同进步一点点.....