excel里的vlookup函数特别容易出错,有没有好的解决办法?

Crystal9

vlookup函数是Excel的入门函数,也是Excel中最常用函数,没有之一。

但,Vlookup函数在几中场景下,使用起来略显麻烦。如,自右向左查询,横向查询等。

当然,Vlookup出错率也会高点。

这里,我就分享给大家另外一个替代Vlookup的方法,那就是Index+Match组合。

Vlookup

先来看看vlookup的用法

VLOOKUP(找什么,在哪找,位于区域的第几列,精确还是模糊找)

最牛查询Index+Match组合

为何我要给大家推荐这组组合?

因为Index+Match组合灵活,简单。你试试,相信你也会喜欢的。

INDEX(array, row_num, [column_num])

MATCH(lookup_value, lookup_array, [match_type])

别看这个公式这么长,其实很好理解。

用match找到满足条件的位置,然后用index定位,就这么简单。

这个组合,不管是自左向右,还是自右向左,动态区域查询等场景下,用起来就是顺手。

动手试试,相信你也会喜欢上Index+Match组合的。


Excel技巧精选

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


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

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

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

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

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

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

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

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

(点击文章标题即可查看)

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

— 01 —

参数使用错误

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(F2,B:D,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(F2,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错误种类几乎囊括了所有的查找情况,如果碰到了错误,而你刚好有解决方案,效率岂不大增!

·END·


精进Excel

大家平时在工作中经常用VLOOKUP查询数据,但是这个函数也有不听话的时候,小脾气上来了,就会返回错误值。咱们就来了解一下VLOOKUP函数返回错误值的原因和解决方法。

一. VLOOKUP函数基本语法:

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

这个太复杂了哦,看鹅理解的VLOOKUP函数中文语法吧:

=VLOOKUP(查找值,数据源,第几列,模糊查找1/精确查找0)

变成人话,是不是更容易理解啊,哈哈。

二. 实例说话:

接下来,先看一个VLOOKUP函数的应用实例吧。

通过菜名查询库存数量。

C11单元格公式如下:

=VLOOKUP(B11,$B$3:$D$6,2,0)

这样的用法大家都很熟悉了,可是VLOOKUP函数也有不听话的时候,有时会返回错误值#N/A。这是怎么回事呢?咱们来看看出现的原因和解决方法:

第一种:数据源没有绝对引用。

公式拖动时,查找区域发送变化,导致找不到查询值。所以锁定查询区域尤其重要,否则就会查询不到而返回#N/A。

第二种:指定第三参数错误,也会返回错误值。

例如以下公式

=VLOOKUP(E11,$C$3:$D$6,3,0)

这里的查询区域只有C、D两列,而指定返回的列是3,明显超出查询区域范围,Excel就晕了,因此就会显示#REF!

第三种:查找值与数据源中的数据不一致。

1.有空格。

解决方案:

1) 复制一个数据源,粘贴在公式的查找条件里。

2) 直接通过函数TRIM去掉空格

C11=VLOOKUP(TRIM(B11),$B$3:$D$6,2,0)。

3) 如果ERP系统导出来的数据包含不可见字符,通过CLEAN函数处理一下,一般即可正常查询。

如:

=VLOOKUP(CLEAN(B11),$B$3:$D$6,2,0)

2.查询值和查询区域中的数据类型不统一,既有文本又有数值。

可以通过TYPE函数判断。

TYPY返回信息如下:

数值=1;文字=2;逻辑值=4;错误值=16;数组=64

这种情况下,只要将文本格式的数字转换成真正数字就可以正常查询了。

转换成数字的方法有很多种:

E11*1

E11/1

E11+0

E11-0

--E11

VALUE(E11)

使用时任选其中一种即可。

第四种,查询区域中没有查询值,所以显示#N/A。

通过=IFERROR(公式,””)可以将错误值屏蔽掉。

以上是VLOOKUP函数返回错误值的几种常见原因和解决方法,怎么样,你还能补充一下吗?


秀财网

此外,VLOOKUP函数虽然容易上手使用起来确实不方便,我们可以用INDEX函数:

为了大家很好的理解index函数,先跟大家介绍一个场景军训队列点名,如下图:

全班一共站了3排12列,教官说在队列里面不许讲话不许动,要动打报告!但是总是有人会不由自主的动一下,如上图穿红衣服那位,估计手酸了一直再甩手。这时候教官就要请他出列,因为不知道名字所以教官的指令为:第2排第6列的,出列!

这个指令就相当于index函数,excel表格也是一个一个单元格组成的“队列”,要想让哪个数据出来就用index发号指令:

INDEX(数据范围,第几行,第几列):

在具体匹配的过程中我们能清楚快速的知道要匹配的值在第几列,但是不知道在第几行,如下表:

这时候用INDEX函数可以确定范围,以及GMV在第3列,但是相关类目在第几行是没法确定的,这个时候我们需要一个MATCH函数:

MATCH(数据,数据范围,0),通过match函数可以判断数据在数据范围排在第几位,如MATCH("男装",A2:A8,0)返回的值是1:

在配上index函数就能匹配出相应的值,如上图匹配男装类目GMV:

=INDEX($A2$:$D8$,MATCH(F2,$A2$:$A8$,0),3)

关于excel不同的问题可以关注我,每天都会分享一些技巧。同时需要帮助小超也会及时帮到大家


午后电商

VLOOKUP函数参数搞不懂,总出错,希望以下傻瓜级的讲解,让你不再纠结!

首先,考你一个傻瓜问题:叮叮几岁?!!,你会说我怎么知道,又有没有参考数据。参考数据表看下图

现在再问你叮叮几岁?11岁! 你需要三步分析,首先知道“叮叮”;然后在数据表中找“叮叮”;找到“叮叮”后,看第二列的年龄,你知道叮叮是11岁!

VLOOKUP函数也是这个思路回答问题的,问VLOOKUP函数 叮叮几岁?

VLOOUP(叮叮,数据表,2) ,第一个参数就是要找的值“叮叮”,第二个参数就是有”叮叮“年龄的数据表,第三个参数”2“,就是找到”叮叮“后发现年龄在第2列。最后返回值为”11。 将VLOOUP(叮叮,数据表,2)翻译成Excel函数格式“=VLOOKUP(A2,A2:B4,2)”写入B7,下图黄色单元格,返回值“11”。

再正式一点的讲解:

叮叮,叫做查找目标

有叮叮及年龄的表格,叫做查找范围

年龄所在的列,叫做返回值的列数

以上这些就是VLOOKUP参数,根据参数格式,VLOOKUP(查找目标,查找范围,返回值的列数),我们可以写出函数“=VLOOKUP(A2,A2:B4,2)”

再官方一点讲解:

该函数的语法规则如下:

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

有细心的伙伴会发现,官方讲解中出现了第4个参数,而之前只讲了3个参数。第4个代表精确查找或模糊查找,听到这里是不是又有点晕,没关系!这个参数不实用,暂时不需要理解太深,这里告诉大家第4个函数的使用准则,只要遇到VLOOKUP函数必须写第4个参数,填0就可以。就这样记吧,保证你不犯错!

好了,讲到这里如果你还不懂,那我真的纠结应不应该做老师了!

再考你一个傻瓜问题:喵喵几岁?希望你能运用VLOOKUP函数给我一个官方的写法,4个参数哦!

答案:=VLOOKUP(A4,A2:B4,2,0),不要忘记第4个参数!

是不是太简单了,最后一个傻瓜问题,叮叮几岁、咚咚几岁、喵喵几岁,我们只要求出叮叮几岁,利用填充,咚咚几岁、喵喵几岁就全部显示出来了。

看明白了吧,但是为什么这次第二个参数多了几个“$”符号呢,记住:在使用填充单元格功能之前一定要把第二个参数加上“$”符号,保证准确无误!

VLOOKUP进阶高级问题:

VLOOKUP的反向查找技巧VLOOKUP的模糊查找应用VLOOKUP的区间查找应用VLOOKUP的多项查找技能

以上课程会陆续为大家讲解,敬请关注!

没有Excel2016最新版的伙伴,可以私聊回复“2016”获取最新版


陶泽昱

【本文示例文件获取方法见文末】

VLOOKUP函数非常容易出错,错误原因可能让人百思不得其解,技巧君总结了VLOOKUP函数的常见7大错误以及排除方法,详情请看视频详细了解吧!

\n

{!-- PGC_VIDEO:{"thumb_fingerprint": 10681264466964847502, "vid": "0ec9f6ad5b8b4c7e8c728e960cdbf6b2\

Excel精选技巧

VLOOKUP函数是日常运用中最常用函数之一,之所以容易出错,一般是大量数据,多列查找,没有锁定数据引用范围;或者是查找数据的与输入值格式不一致造成。

VLOOKUP基本格式:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

基本格式是从左到右查找,即在数据源中,查找结果必须在输入值的右边。

上图是悟空问答标签,根据标签查找熵。见图,熵值在标签右侧,所以只要简单根据vlookup基本套路查找即可。


但是,如果我们按vlookup基本格式用标签来查找排序,就会出错了,这时可以引入一个排序函数{1,0},就可以达到效果。

vlookup函数如何查找右边内容?

上图,排序位于标签左侧,这时用排序函数先将二者顺序调换,再查找,即可查找出准确的结果:

=VLOOKUP(D3,IF({1,0},B:B,A:A),2,0)


学好vlookup等几个基本函数,了解其简单套路,那么就能解决日常大部分需求了。


众泰研发二部张主任

你好,我把vlookup常遇到的错误和解决的方法,在这里演示一下。希望能帮到大家!

1,VLOOKUP常见错误分析 - 绝少第四参数

C15=VLOOKUP(B15,C5:F11,3)

错误原因:缺少第四个参数。

解释:当缺少第四个参数或为1时表示模糊查找,为0时表示精确查找

正确公式:C15=VLOOKUP(B15,C5:F11,3,0)


2,VLOOKUP常见错误分析 - 查找范围中有重复值

错误原因:被查找区域(C6:C11)有重复值,有两个officegif。

说明:VLOOKUP只返回从上到下第一次出现的值。

解决办法:用唯一值进行查找,比如有编号。


3,VLOOKUP常见错误分析 - 相对引用查找范围时下拉错位

错误公式:C15=VLOOKUP(B15,C6:E11,3,0)

错误原因:相对引用范围“C6:E11”下拉到C17变成"C8:E13"

正确公式:D15=VLOOKUP(B15,$C$6:$E$11,3,0)

4,VLOOKUP常见错误分析 - 从右向左查询

错误公式:C15=VLOOKUP(B15,$B$6:$C$11,2,0)

错误原因:VLOOKUP不支持从右向左查询

正确公式:D15=VLOOKUP(B15,IF({1,0},$C$6:$C$11,$B$6:$B$11),2,0)

5,VLOOKUP常见错误分析 - 查找区域与被查找区域格式不一致

错误原因:查找、被查找区域数字格式不一致(有些事文本格式,有些事数字格式)

解决方案:用“数据/分列”功能将两边的格式转为一致。

6,VLOOKUP常见错误分析 - 被查找区域存在通配符

错误原因:查找单元格中存在通配符 ~

解决方案:使用SUBSTITUTE函数将~替换为~~

即D15=VLOOKUP(SUBSTITUTE(B15,"~\

Office高效率办公

引用分绝对引用和相对应用在Vlookup中经常会用到绝对引用,一定要注意它的使用方法哦

首先介绍一下公式:VLOOKUP(查找值,查找范围,查找列数,精确匹配或者近似匹配)

这里特别注意查找范围的绝对引用符号“$”

很多的初学者往往忽略绝对引用的重要性导致匹配不到数据

注意两个红色框的查找范围在没输入$绝对引用时候发生的问题,从第7行到10行的数据出现匹配问题,原因就是在Vlookup公式下拉之前没有添加绝对引用导致excel自动输入公式的时候出现匹配区域错误


电子流浪

一、函数参数使用错误。

第1种:第2个参数区域设置错误之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时可以省略,但必须保留“,”号。

兰色说:今天所介绍的1~3错误是最简单的查找错误,可能有些同学已能轻松处理,明天咱们继续介绍VLOOKUP函数的其他查找错误,可能你处理起来就没这么轻松了。

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

第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列进行分列操作(数据 - 分列),即可把不可见字符分离出去。


分享到:


相關文章: