【转载】EXCEL函数vlookup易出错的情况和解决-----------觉得不错,转下保存

总结下

  • vlookup 和 lookup  hlookup 都很重要
  • 但好像lookup有个局限性?忘了
  • vlookup(1,a1;c5,2,false) 精确查找,false  , 很重要
  • 文本转为为数字小技巧       a1*1
  • 数字转化为文本的小技巧    a1&""
  • 去除数据源的空格格式技巧 vlookup(1,trim(a1:c6),2,)
  • 分列,将文本格式的数字转化为数字的技巧
  • 分列,把一些不可见的符号去掉的技巧
  • 神奇技巧
  • 用if函数重组区域,让两列颠倒位置。

  • =VLOOKUP(D8,IF({0,1},D2:D4,E2:E4),2,0)

  • 用index+match组合实现。

  • =INDEX(D2:D4,MATCH(D8,E2:E4,0))

 

 

转自原文

http://www.360doc.com/content/15/0627/06/15150098_480948237.shtml

 

看了这个,vlookup函数再也不会查找出错了

2015-06-27  碧荷晨露   阅 32233  转 73

转藏到我的图书馆

vlookup查找出错(明明有,却查找不到)应该是提问量最大的excel问题之一。为此兰色总结了12种造成vlookup查找错误的原因,并给出解决方法。学会后以后再也不会因为vlookup查找不到而烦恼了。

 

一、函数参数使用错误。

 

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

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

错误原因:

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

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

----------------------------------

 

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

 

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

 

错误原因:

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

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

----------------------------------

 

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

 

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

 

 

 

错误原因:

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

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

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

:当参数为0时可以省略,但必须保留“,”号。

 

二、数字格式不同,造成查找错误。

 

第4种 查找为数字,被查找区域为文本型数字。

 

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

 

错误原因:

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

解决方案:

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

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

-----------------------------------------------

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

 

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

 

 

错误原因:同4

解决方法

把文本型数字转换成数值型。即:

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

 

注:如果你手工把文本转换成数值类型,就不必在公式中转换格式了。

-------------------------------------------

三、引用方式使公式复制后产生错误。

 

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

 

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

 

错误原因:

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

解决方案:

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

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

 

四、多余的空格或不可见字符

 

第7种 数据表中含有多余的空格。

 

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

错误原因:

多一个空格,用不带空格的字符查找当然会出错了。

解决方案:

1 手工替换掉空格。建议用这个方法

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

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

按ctrl+shift+enter输入后数组形式为

{=VLOOKUP(A9,TRIM(A1:D6),2,0)}

--------------------------------------

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

 

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

-----------------------------------

 

第9种:不可见字符的影响

 

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

出错原因:

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

解决方案:

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

兰色说:在日常vlookup函数查找错误示例中,第7种是最常见的一种错误之一。同学遇到vlookup查找错误时,如果参数设置没有问题,就看一下数据表中有没有多余的空格。

 

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

 

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

 

错误原因:

vlookup不支持反向查找。

解决方法:

  • 用if函数重组区域,让两列颠倒位置。

=VLOOKUP(D8,IF({0,1},D2:D4,E2:E4),2,0)

  • 用index+match组合实现。

=INDEX(D2:D4,MATCH(D8,E2:E4,0))

 

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

 

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

错误原因:

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

如果精确查找3*6,需要使用~,如下图所示。

解决方法:

用~~就可以表示查找~了。所以公式可以修改为

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

 

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

 

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

 

 

错误原因:

VLOOKUP第一个参数不能直接用于数组。

解决方法:

利用N/T+IF结构转化一下数组,如果不了解N/T+IF结构用法,可以参考http://www.excelpx.com/thread-174362-1-1.html。公式修改为:

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值