VLOOKUP 函数(三 使用时的常见错误)
前言
Vlookup 函数作为 Excel 中最常用的函数之一,在我们的工作中发挥着非常大的作用。但是,在使用这个函数时,经常遇到各种错误。本文对这些错误进行了总结。(这是 Vlookup 使用的第三部分,前两部分分别为 vlookup 函数的使用入门,和 VLOOKUP 函数使用方法(二进阶))
常见的错误原因
一般来说,使用 Vlookup 函数时遇到的错误,主要是下面四大点原因 一、函数参数使用错误 二、数字格式不同,造成查找错误 三、引用方式使公式复制后产生错误 四、多余的空格或不可见字符 下面,我们分别举例介绍
一 函数参数使用错误
● 查找区域设置错误 例:如下图所示,根据姓名查找龄时产生错误。
在这个例子中,vlookup 函数第二个参数是查找区域,该区域的第 1 列有一个必备条件,就是查找的对象(A9),必须对应于区域的第 1 列。本例中是根据姓名查找的,那么,第二个参数姓名必须是在区域的第 1 列位置,而上述公式中姓名列是在区域 A1:E6 的第 2 列。所以公式应改为:
=VLOOKUP(A9,B1:E6,3,0)
● 第 4 个参数少了或设置错误。 如下图所示根据工号查找姓名
vlookup 第四个参数为 0 时表示精确查找,为 1 或省略时表示模糊查找。如果忘了设置第 4 个参数则会被公式误以为是故意省略,按模糊查找进行。当区域也不符合模糊查找规则时,公式就会返回错误值。所以公式应改为
=VLOOKUP(A9,A1:D6,2,0)
或 =VLOOKUP(A9,A1:D6,2,) 注:当参数为 0 时可以省略,但必须保留“,”号。
二 数据格式造成的错误
● 查找为数字,被查找区域为文本型数字。 如下图所示根据工号查找姓名,查找出现错误
在 vlookup 函数查找过程中,文本型数字和数值型数字会被认为不同的字符。所以造成无法成功查找。 解决方案:把查找的数字在公式中转换成文本型,然后再查找。即:
=VLOOKUP(A9&"",A1:D6,2,0)
● 查找格式为文本型数字,被查找区域为数值型数字。 如下图所示根据工号查找姓名,查找出现错误
同上 解决方法:把文本型数字转换成数值型。即:
=VLOOKUP(A9*1,A1:D6,2,0)
三 引用方式造成的错误
●没有正确的使用引用方式,造成在复制公式后区域发生变动引起错误。 如下图所示,当 C9 的公式复制到 C10 和 C11 后,C10 公式返回错误值。
由于第二个参数 A2:D6 是相对引用,所以向下复制公式后会自动更改为 A3:D7,而 A10 中的工号 A01 所在的行,不在 A3:D7 区域中,从而造成查找失败。 解决方案:把第二个参数的引用方式由相对引用改为绝对引用即可。
B9 公式改为:=VLOOKUP(A9,$A$2:$D$6,2,0)
四 多余的空格或者不可见的字符
●表中含有多余的空格。
如下图所示,由于 A 列工号含有多余的空格,造成查找错误。
多一个空格,用不带空格的字符查找当然会出错了。 解决方案: 手工替换掉空格。建议用这个方法;
● 不可见字符。 在表格存在大量的“空格”,但又用空格无法替换掉时,这些就是类空格的不可见字符,这时可以“以其人之道还之其人之身”,直接在单元格中复制不可见字符粘贴到替换窗口,替换掉即可。
● 不可见字符的影响 如下图所示的 A 列中,A 列看不去不存在空格和类空格字符,但查找结果还是出错。
这是从网页或数据库中导入数据时带来的不可见字符,造成了查找的错误。 解决方案:在 A 列后插入几列空列,然后对 A 列进行分列操作(数据 - 分列),即可把不可见字符分离出去。
● 反向查找 vlookup 不支持产生的错误。 如下图所示的表中,根据姓名查找工号,结果返回了错误。
vlookup 不支持反向查找。 解决方法:1、用 if 函数重组区域,让两列颠倒位置。
=VLOOKUP(D8,IF({0,1},D2:D4,E2:E4),2,0)
2、用 index+match 组合实现。
=INDEX(D2:D4,MATCH(D8,E2:E4,0))
vlookup 函数的使用中还会遇到其他的错误,上面是最常见的一些,参照上面的例子,你就可以很快排查出数据中的错误。