分页: 1 / 1

vlookup函数的12种常见错误、原因及解决方法

发表于 : 周四 5月 21, 2020 1:16 pm
peng
vlookup函数的12种常见错误、原因及解决方法
http://www.officezhushou.com/vlookup/3887.html

vlookup函数是一个非常好用的查找函数,但由于种种原因,在实际使用时会遇到种种让人搞不明白的错误。于是本文就把常遇到的vlookup错误问题来一次大整理,希望能对同学们有用。

一、函数参数使用错误
第1种:第2个参数区域设置错误之一。

例:如下图所示,根据姓名查找龄时产生错误。

vlookup函数常见错误
错误原因: vlookup函数第二个参数是查找区域,该区域的第1列有一个必备条件,就是查找的对象(A9),必须对应于区域的第1列。本例中是根据姓名查找的,那么,第二个参数姓名必须是在区域的第1列位置,而上述公式中姓名列是在区域A1:E6的第2列。所以公式应改为:

=VLOOKUP(A9,B1:E6,3,0)

第2种:第2个参数区域设置错误之二。

例2 如下图所示根据姓名查找职务时产生查找错误。

vlookup函数常见错误
错误原因:本例是根据姓名查找职务,可大家注意一下,第2个参数B1:D6根本就没有包括E列的职务,当然会产生错误了。所以公式应改为:

=VLOOKUP(A9,B1:E6,4,0)

第3种:第4个参数少了或设置错误。

例3,如下图所示根据工号查找姓名

vlookup函数常见错误
错误原因:vlookup第四个参数为0时表示精确查找,为1或省略时表示模糊查找。如果忘了设置第4个参数则会被公式误以为是故意省略,按模糊查找进行。当区域也不符合模糊查找规则时,公式就会返回错误值。所以公式应改为。

=VLOOKUP(A9,A1:D6,2,0)

或 =VLOOKUP(A9,A1:D6,2,) 注:当参数为0时可以省略,但必须保留“,”号。

二、数字格式不同,造成查找错误
第4种:查找为数字,被查找区域为文本型数字。

例4:如下图所示根据工号查找姓名,查找出现错误。

vlookup函数常见错误
错误原因:在vlookup函数查找过程中,文本型数字和数值型数字会被认为不同的字符。所以造成无法成功查找。

解决方案:把查找的数字在公式中转换成文本型,然后再查找。即:

=VLOOKUP(A9&"",A1:D6,2,0)

第5种:查找格式为文本型数字,被查找区域为数值型数字。

例5:如下图所示根据工号查找姓名,查找出现错误

vlookup函数常见错误
错误原因:同4

解决方法:把文本型数字转换成数值型。即:

=VLOOKUP(A9*1,A1:D6,2,0)

三、引用方式使公式复制后产生错误
第6种:没有正确的使用引用方式,造成在复制公式后区域发生变动引起错误。

例6,如下图所示,当C9的公式复制到C10和C11后,C10公式返回错误值。

vlookup函数常见错误
错误原因:由于第二个参数A2:D6是相对引用,所以向下复制公式后会自动更改为A3:D7,而A10中的工号A01所在的行,不在A3:D7区域中,从而造成查找失败。

解决方案:把第二个参数的引用方式由相对引用改为绝对引用即可。

B9公式改为:=VLOOKUP(A9,$A$2:$D$6,2,0)

四、多余的空格或不可见字符
第7种:数据表中含有多余的空格。

例7 如下图所示,由于A列工号含有多余的空格,造成查找错误。

vlookup函数常见错误
错误原因:多一个空格,用不带空格的字符查找当然会出错了。

解决方案: 1、手工替换掉空格。建议用这个方法;

2、在公式中用trim函数替换空格而必须要用数据公式形式输入。

即:=VLOOKUP(A9,TRIM(A1:D6),2,0) 按ctrl+shift+enter输入后数组形式为 {=VLOOKUP(A9,TRIM(A1:D6),2,0)}

第8种:类空格但非空格的字符。

在表格存在大量的“空格”,但又用空格无法替换掉时,这些就是类空格的不可见字符,这时可以“以其人之道还之其人之身”,直接在单元格中复制不可见字符粘贴到替换窗口,替换掉即可。

vlookup函数常见错误
第9种:不可见字符的影响

例:如下图所示的A列中,A列看不去不存在空格和类空格字符,但查找结果还是出错。

vlookup函数常见错误
出错原因:这是从网页或数据库中导入数据时带来的不可见字符,造成了查找的错误。

解决方案:在A列后插入几列空列,然后对A列进行分列操作(数据 - 分列),即可把不可见字符分离出去。

vlookup函数常见错误
第10种:反向查找vlookup不支持产生的错误。

例10 如下图所示的表中,根据姓名查找工号,结果返回了错误。

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))

第11种:通配符引起的查找错误

例11 如下图所示,根据区间查找提成返回错误值。

vlookup函数常见错误
错误原因:~用于查找通配符,如果在vlookup公式中出现,会被认为特定用途,非真正的~。如在表格中查找3*6 ,356,376也被查找到。

vlookup函数常见错误
如果精确查找3*6,需要使用~,如下图所示。

vlookup函数常见错误
解决方法:用~~就可以表示查找~了。所以公式可以修改为

=VLOOKUP(SUBSTITUTE(A8,"~","~~"),A2:B4,2,0)

第12种:vlookup函数第1个参数不直接支持数组形式产生的错误

例12 如下图所示,同时查找A和C产品的和,然后用SUM求和。

vlookup函数常见错误
错误原因:VLOOKUP第一个参数不能直接用于数组。

解决方法:利用N/T+IF结构转化一下数组,如果不了解N/T+IF结构用法。

公式修改为:

=SUM(VLOOKUP(T(IF({1},A8:B8)),A2:B5,2,))

更多相关阅读

实例详解Hlookup函数和Vlookup函数之间的区别

Excel查找引用函数:VLOOKUP函数语法解析

Excel2010中VLOOKUP函数公式语法和用法详解

使用VLOOKUP函数返回查找到的多个值的方法

VLOOKUP函数的模糊查找

Re: vlookup函数的12种常见错误、原因及解决方法

发表于 : 周二 5月 26, 2020 10:05 am
peng
Excel中IF({1,0}…)的妙用

在学习和使用Excel过程中,有时会被IF({1,0}…)这样的格式所迷惑,其实这里是使用了Excel的数组。
常用的IF函数语法是这样的:if(条件,条件为真的返回值,条件为假的返回值)。

对于IF({1,0}…),其运行机理如下:
{1,0}表示一个数组中有两个元素,一个是1,另一个是0。
1在条件判断中表示TRUE,0表示FALSE。
在“IF({1,0}”中,根据两个条件,分别返回IF的两个值,同时把两个结果组成一个数组。

例如:=IF({1,0},A1:A2,B1:B2),有两个条件{1,0},当条件为1时,先返回A1:A2;第2个条件为0时,返回B1:B2,整体返回的是A1:B2。
这种设置可以和VLOOKUP结合进来进行反向查询。正常情况下,VLOOKUP查询的列是由左向右排列的,只能从左向右检查,不能从右向左反向查询,如果和列排列合要求还需要重新排列才能查询。我们可以用IF({1,0}…),将检查范围在内存中直接重组成数组进行查询。

在下面的例子中,根据“销售品种”反向查询“地区”
我们可以使用公式:= VLOOKUP(E2,IF({1,0},B2:B8,A2:A8),2,FALSE),用E2作为查找条件,对A列进行查找。IF({1,0},B2:B8,A2:A8)返回内存数组,对E2进行精确查找。