专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
Excel之家ExcelHome  ·  DATEDIF,一个神奇的隐藏函数 ·  昨天  
完美Excel  ·  从安全总监离职看企业安全管理痛点 ·  3 天前  
Excel之家ExcelHome  ·  筛选状态下算乘积,还不会的打屁屁 ·  3 天前  
Excel之家ExcelHome  ·  我的IT励志故事 ·  3 天前  
Excel之家ExcelHome  ·  给Word文档设置页面背景,你会了吗 ·  2 天前  
51好读  ›  专栏  ›  Excel之家ExcelHome

函数急诊室:最全的VLOOKUP查找错误详解

Excel之家ExcelHome  · 公众号  · Excel  · 2017-05-12 08:25

正文

专业从事查找功能的函数:Vlookup,参数众多,“脾气”暴躁,规则复杂,一不留心就会出错。


出错误并不可怕,怕的是不知道怎么解决。


本文就教你破解VLOOKUP函数病症的良药。


在总结Vlookup函数错误之前,我们先来回顾下Vlookup函数的语法:

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])


VLOOKUP(查找对象,查找范围,返回列数,精确匹配或者近似匹配)


更详细的情况,可以点击这里查看星爷写过的两篇经典教程:

入门|快速掌握VLOOKUP函数之精解精析

进阶|熟练使用VLOOKUP函数之精解精析【深度长文】


小白雷哥了解了Vlookup函数的基本语法,可还是经常会遇到一些错误。于是满怀期待了走进了星爷诊室,希望能够药到病除。 


— 0

参数使用错误

NO.1:参数1使用错误


通常对于批量查找,参数1会使用引用单元格,这就涉及到引用方式的问题,稍微不注意,就可能造成查找错误。


比如,在F2输入公式=VLOOKUP($E$2,B:C,2,0),向下复制填充,结果三个单元格中返回的值都是89,显然高书记和李书记的成绩是错误的。



错误原因:第一个参数采用了绝对引用,这样在复制填充时,单元格引用不会变化,所以一直查找的是“陆亦可”对应的成绩。


解决方法:对于VLOOKUP的第一个参数,如果公式需要详细复制填充,则需要使用行的相对引用,所以公式改为=VLOOKUP($E2,B:C,2,0)或=VLOOKUP(E2,B:C,2,0)均可。


NO.2:参数2首行错误


VLOOKUP函数中,参数2的限制很多,是最容易出错的地方。如图查找三位同事的成绩,结果均返回错误值。


错误原因:VLOOKUP函数的第二个参数是查找区域,这个区域不是随便选取的,它必须满足的条件之一就是:参数1(查找对象)必须位于该区域的第1列。

本例选取的参数2为A:C,其中姓名列位于此区域的第二列,所以无法正确查找。


解决方法:将公式修改为=VLOOKUP(E2,B:C,2,0),即函数的第二个参数设置为B:C。


NO.3:参数2区域范围错误


如图所示,参数2设置为B:C,可是查找还是出错了。


错误原因:参数2必须满足的条件之二就是:这个区域一定要包含需要返回的我们需要返回成绩,但是第2个参数B:C根本就没有包括D列的成绩。


解决方法:将公式修改为=VLOOKUP(F3,B:C,3,0),是第二参数包含需要返回的值。


NO.4:参数2区域中列的顺序错误


如图,使用姓名查找组别,结果返回错误值。


错误原因:本例中VLOOKUP函数的第二参数为A:B,其实这两有两个错误。一是参数1并不在参数2选定区域的第一列;第二是返回值“组别”在查找值的左侧,这是不允许的。


解决方法:①最简单的方法,将A、B列数据互换,然后再使用VLOOKUP查找;②使用用index+match组合查找,详细见这篇文章中关于INDEX和MATCH函数的讲解:

从0到1:混职场,必须掌握的十二个Excel函数


NO.5:参数3使用错误


参数3“返回的列数”指的是在参数2这个区域中的列数,它不一定等于在Excel表格中的列数,如果将参数3设置为“4”,结果返回错误值。


错误原因:成绩位于参数2选定的区域“B:D”中的第三列,而不是第四列,因此参数3需要设置为3.

修改:将公式修改为=VLOOKUP(F3,B:D,3,0)即可。


NO.6:参数4设置错误。


如图所示,最后一个参数设置为1,结果返回的数值与姓名对不上号。


错误原因:VLOOKUP函数的参数4为0或省略时表示精确查找,非0值时表示模糊查找。这里设置为1,所以进行的是模糊查找。模糊查找,会找到和它最接近,但比它小的那个数。因此返回的数值不正确。


修改方法:将公式改为=VLOOKUP(F2,B:D,3,)或者=VLOOKUP(F2,B:D,3,0)


— 02 

查找匹配的错误

除了参数设置错误之外,如果要查找的数据源不符合规范,也会出现错误。

NO.1:数据表中含有多余的空格。


如图查找成员的成绩,陆亦可的成绩能够正确查找,陈海的却出错。


错误原因:源数据中,为了使姓名对齐,在陈海姓名中间添加了空格。这样使用不带空格的“陈海”去匹配,当然查找不到了。


解决方法:使用TRIM或者手工删除空格。如果希望两个字的姓名与三个字的对齐,可以采用分散对齐的方式,如图所示。


NO.2:查找对象与源数据格式不一致


小白雷哥需要通过员工工号查询到电脑号码。使用=VLOOKUP(G3,A2:D12,4,1) 查询时,返回错误值#N/A 。



诊断分析:星爷通过他的火眼金睛,立马就发现了问题。这是因为查找值(11208)与查找范围第一列(工号)数据格式不一致导致的。在vlookup函数查找过程中,文本型数字和数值型数字会被认为不同的字符。所以造成无法成功查找。


解决方案:将源数据中工号一列更改为文本类型,然后再查找。

— 03 

单元格引用导致的错误


函数中的单元格引用,“混合引用”的方式是最复杂的,也是最容易出错的。不管是参数1,还是参数2都会有这样的问题。


如图使用COLUMN函数与VLOOKUP函数嵌套,一次返回多列查找值,在G2中输入公式=VLOOKUP(F2,B2:D9,COLUMN(B1),0),然后向下拖动复制,并向右拖动复制,但是返回的值有一部分是错误的。



错误原因:①由于第二个参数B2:D9是相对引用,所以向下复制公式后会自动更改为B3:D10,B4:D11……而F4中的陈海所在的行,不在B4:D11区域中,从而造成查找失败。


②而向右复制时,参数1会变为G3,因此查找对象变为了性别,从而造成查找失败。


解决方法:把参数2由相对引用改为绝对引用;参数1改为混合引用。即公式为=VLOOKUP($F2,$B$2:$D$9,COLUMN(B1),0)


这样既能确保向下复制时可以查找不同的姓名,又能确保向右复制时查找对象不会篡位。


这些VLOOKUP错误种类几乎囊括了所有的查找情况,如果碰到了错误,而你刚好有解决方案,效率岂不大增!


本文由公众号 精进Excel 友情推荐


投稿邮箱:[email protected]

Word高效应用一日通 - 第4期
公开课时间:2017-5-12(晚20:00~21:00)
正式课时间:2017-5-20 —— 5-27
讲师:郑志泽
课程详情:
http://t.excelhome.net/thread-44994-1-1.html
免费报名公开课:http://t.excelhome.net/thread-44995-1-1.html

推荐文章
Excel之家ExcelHome  ·  DATEDIF,一个神奇的隐藏函数
昨天
Excel之家ExcelHome  ·  筛选状态下算乘积,还不会的打屁屁
3 天前
Excel之家ExcelHome  ·  我的IT励志故事
3 天前
Excel之家ExcelHome  ·  给Word文档设置页面背景,你会了吗
2 天前
环球时报  ·  金正男案,你来凑什么热闹?
7 年前
亿邦动力  ·  找电商工作,看他就行
7 年前