VLOOKUP中的这些坑儿,你踩过几个?
昨天,一个久经职场常用VLOOKUP处理数据的同事问我,为啥我的VLOOKUP无效?赶紧忙我看看。
一脸茫然加无辜,我赶紧走到他的旁边。
现有单位员工信息表一份,需要从中提取5个人的学历。
他演示了一遍:
他使用的公式=VLOOKUP(B18,$A$1:$I$15,4,0)
他反复地检查,怎么都没有检查出来问题,第一个参数姓名没问题,第二参数区域,也没问题,也绝对引用了,第三个参数,他数了好几遍,从姓名到学历,总共就4列,第四个参数0,精确匹配。
他确定没有问题,疑惑地看着我,非常不解。
我看着他的数据,内心是无比的惆怅啊,这不是典型的自己给自己挖坑,然后把自己埋了吗?
更重要的是,他还不知道自己给自己挖坑了。
问题出在第三个参数上,他把单元格中的很多列隐藏了,以至于他数的第四列,其实不是没有算隐藏列的第四列,而VLOOKUP识别的第四列,是全部的,不管你隐藏没隐藏。
于是我告诉他了,应该是这样的。
公式=VLOOKUP(B20,$A$1:$I$15,9,0)
他恍然大悟,原来是这么回事儿啊!
折腾了整整半个小时,原来竟然是自己给自己挖了个坑儿。
我又告诉他,第三个参数是第几列千万别自己数,因为系统已经告诉你啦。
在你选中第二个参数所包含的区域时,鼠标右下方会出现一个提示:多少行X多少列,行是R,列是C,用C前面的数字就对了。
你有没有踩过这样的坑儿呢?
除了这个坑儿,再给大家介绍几个常见的坑。
(1)第1个参数错误——数据类型不一致
如图所示,用学号查找成绩,使用公式=VLOOKUP(E2,$A:$C,3,0),结果显示错误值。
这是因为A列学号为文本型数字,E列学号为数值型数字,在Excel中这是两种不同的字符类型,所以无法成功查找。
我们可以将A列转换为数值型或者将E列转换为文本型,使查找内容完全一致,即可实现成功查找。
还有另外一种情况,是查找内容为文本型,但是被查找区域为数字型,也会导致查找不成功,同样需要将数字类型转换为同类型。
(2)第1个参数错误——多余不可见字符
如图所示,用学号查找成绩,使用公式=VLOOKUP(E2,$A$1:$C$18,3,0),部分结果显示错误值。
虽然看起来E4、E5、E6与A6、A5、A4是一样的,还都是文本型数据,但是用对等符号去运算的话,发现它们不对等,再仔细观察,E4、E5、E6有不可见的空格。
我们只需要把空格删除即可。
(3)第2个参数错误——引用类型错误
如图所示,用学号查找成绩,使用公式=VLOOKUP(E2,A1:C18,3,0),部分结果显示错误值。
这是因为第二个参数查找区域A1:C18为相对引用,公式在向下复制的过程中会发生变化,F6单元格的公式变为=VLOOKUP(E6,A5:C22,3,0),学号222016015不在该查找区域内,所以查找不成功。
我们需要将查找区域从相对引用变为绝对引用,这样公式在复制的时候查找区域就不会发生变化了。
(4)第2个参数错误——引用区域错误
如图所示,用姓名查找成绩,使用公式=VLOOKUP(F2,$A$1:$D$18,4,0),结果显示错误值。
VLOOKUP的第二参数查找区域,该区域的第一列必须是查找对象所在的列,在本例中查找值我“姓名”,那么查找区域的第一列就应该是姓名所在的B列。
我们需要修改查询区域以及从B列开始计算的第三个参数来完成查找。
还有另外一种情况,就是查询区域的最后一列一定要是查找结果所在的列。例如姓名查找成绩使用公式=VLOOKUP(F2,$B$1:$C$18,3,0)则查找错误,因为“成绩”不在$B$1:$C$18这个区域中,我们需要将公式中的第二个参数修改为$B$1:$D$18来完成查找。
(5)第三个参数错误
如图所示,用姓名查找成绩,使用公式=VLOOKUP(F2,$B$1:$D$18,4,0),结果显示错误值。
这是因为VLOOKUP函数的第三个参数必须是从起始列“姓名”所在B列到终止列“成绩”所在D列,共3列,而不是直接从第一列A列算到最后一列D列。
我们需要对第三个参数进行修改。
除此之外,还要谨防本文开篇案例中的那个坑儿。
(6)第四个参数错误——省略了第四个参数
如图所示,用学号查找成绩,使用公式=VLOOKUP(F2,$A$1:$D$18,4),部分结果错误,部分结果显示错误值。
这是因为第四个参数如果为FALSE或0 ,则返回精确匹配。如果为TRUE或1,函数 VLOOKUP 将查找近似匹配值。而如果省略,则默认为近似匹配。本案例中能够实现精确匹配,所以需要补充第四个参数。
如果想实现近似匹配功能的话,查找区域中第一列必须排序,还必须是升序。
现在公司销售提成比例,20000以上的提成30%,10000-20000是12%,以此类推,根据实际销售额来衡量提成比例,可以使用公式=VLOOKUP(L2,$I$1:$J$6,2,1)完成查找。
而当我们把查找第一列的顺序打乱时,则会发现查找不成功。
怎么样?VLOOKUP这个大众情人是不是坑儿可多?而你踩过哪些坑儿,也可以在留言中跟我们分享一下哦。
如果想系统学习VLOOKUP请移步(链接到前期的文章——一篇文章搞定VLOOKUP这个大众情人)。