Hi,
的确,学EXCEL必学的函数Vlookup当仁不让。
如果有人问你会EXCEL,你说会。
然后,那人接着问:你会Vlookup函数吗?你说不会。尴尬的可能不是你,而是问你那人。
Vlookup是我们使用EXCEL的一个高频函数。我们用它来查找数据,从各种基础数据表中导入数据。在使用过程中,难免会遇到各种问题,那么你都遇到过哪些坑呢?
一、被查找值与查找范围的类型不匹配
这个问题,有点拗口,举个例子:
明明有数据,为什么查不出来。
表面上来看:查询区域的工号1-4和被查询区域工号1-6是对应起来的,应该可以查得出来,但查询的出现了查找不到的错误。
问题分析:出现这种错误主要是因为被查找值的类型和查找范围第一列值的类型不一样。本例中,被查找值是数值型,而查找范围的是文本型。可以注意到查找范围内单元格左上角有个三角形,表示数据类型就文本。即虽然是数字,但是本质上是文本。
如何解决:必须使得两边的类型一样。从数据类型分析,工号字段可以用数字编号,但数据类型更应该是文本,因为用工号进行加减乘除好像没有意义。因此,相应地我们要调整查询区域工号的数据类型,从数值型调整为文本型。
两种思路,可以在vlookup公式中,将被查找值用trim函数或者将工号列处理成文本。
第一种思路,I3单元格公式为=VLOOKUP(TRIM(H5),$B$3:$C$8,2,0),其中 trim本意是修剪,处理字符两端多余的空格字符,返回字符。这里用于数据类型转换。
第二种思路,也是用trim,新建一个辅助列,将工号列全部trim掉,再复制选择性粘贴过去,使之变成文本。
二、选择范围引用出问题
直接看效果:
分析:如果再一开始的时候查找范围引用不固定,会导致后面复制公司的时候,查找范围在变动。因此,这类问题的解决方案就是固定查找引用的范围,可以在引用行号列号上加上$符号,或者在光标在引用内部时,利用F4快捷键进行引用范围固定。
三、数据内容出现不可见字符
这类问题属于数据不规范的问题,即可能由于手工输入或者复制网页上的格式导致了数据多了些不可见的字符,从而影响查询结果。
本例中,被查找范围第一列工号为1的后面有个空格,因此导致了错误。原理很简单,带空格的字符和不带空格字符不匹配、不相等,自然返回是查找不到#N/A。
把空格处理掉后,就没问题了。
从这里可以看出,数据规范性是多重要。当然,我们也要练就火眼金睛,出现问题如找出来,并及时处理掉。信EXCEL,也不信EXCEL。数据结果需要验证。
四、特殊字符的坑
还是先上案例:
这个是Vlookup的一个bug。注意到特殊字符~对于vlookup的影响。即如果被查找值,或者查找范围有~这个字符,是无法匹配上。
解决方案,就是不要用这个特殊字符。可能其它字符也有这个问题。不管怎么说,我们在编码数据的时候尽量用常规的字符,如字母、数字、下划线、横线等,尽量少用或不用特殊字符,谨防错误。
五、模糊匹配出错
本例中,我们用名字去查找工资,并在匹配模式上不选择精确匹配,而是模糊匹配,vlookup最后一个参数为true或1。
惊呆了是吗,居然有些结果对,有些还找不到。因此,使用vlookup前一定要明确,我是要精确匹配还是模糊匹配,以及对于可能出现的结果的预估。不然就容易导致不易察觉的错误。
例如,假如数据成千上万需要查找,及时发现查找值为N/A,我们也很难判断就近是真的没有,还是假的没有。
好了,关于vlookup的坑今天就先到这里。
今天的收获就是:
数据一定要规范,避免出现不必要的错误
相对绝对引用的深入理解,这是EXCEL的基本功
函数每一个参数的具体含义深入理解,否则返回结果会出现意料不到的偏差
数据类型的重要性,尤其是我们在设计表格的时候,一定要问自己这些数据究竟是文本型还是数值型。
我是华哥。每日精进,不负光阴韶华。
赠人玫瑰,手留余香。欢迎评论、点赞、关注,转发。