一、Vlookup函数最难的6个查找公式 最近有很多同学在微信后台提问,vlookup函数如何实现模糊查询和批量查找。兰色今天把Vlookup函数最难的几种查找公式总结出来,没有收藏和分享的同学赶紧行动吧。 1、区间查找 【例4】如下图所示,要求根据左表的提成比率表,在右表中根据销售额在G列查找适用的比率。 =VLOOKUP(F3,$B$3:$C$11,2)
【例5】查找包含AAA名称的产品价格 =VLOOKUP('*'&A10&'*',A2:B6,2,0) 3. 多条件查找 【例8】如下图所示要求,同时根据姓名和工号查找职位。 {=VLOOKUP(B9&C9,IF({1,0},B2:B6&A2:A6,E2:E6),2,0)} 4、多工作表查找 【例10】从各部门中查找员工的基本工资,在哪一个表中不一定。 方法1 =IFERROR(VLOOKUP(A2,服务!A:G,7,0),IFERROR(VLOOKUP(A2,人事!A:G,7,0),IFERROR(VLOOKUP(A2,综合!A:G,7,0),IFERROR(VLOOKUP(A2,财务!A:G,7,0),IFERROR(VLOOKUP(A2,销售!A:G,7,0),'无此人信息'))))) 方法2: =VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({'销售';'服务';'人事';'综合';'财务'}&'!a:a'),A2),{'销售';'服务';'人事';'综合';'财务'})&'!a:g'),7,0) 5、一对多查找1 【例】根据产品查找相对应的所有供应商 A2 =B2&COUNTIF(B$1:B2,B2) B11=IFERROR(VLOOKUP($A11&COLUMN(A1),$A:$C,3,0),'') 6、一对多查找2 【例12】查找张三的所有消费记录 数组公式,大括号是按ctrl shift enter后自动产生的,非手工输入 {=VLOOKUP(B$9&ROW(A1),IF({1,0},$B$2:$B$6&COUNTIF(INDIRECT('b2:b'&ROW($2:$6)),B$9),$C$2:$C$6),2,)} 二、Vlookup函数12种最常见错误 如果评选Excel中最常用的函数,Vlookup函数肯定是第1名,但如果评出错率最高的函数,也会是Vlookup函数。经常会有同学提问,什么我的Vlookup又出现#N/A了,明明公式是正确的哦。 一、函数参数使用错误。 第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不支持反向查找。 解决方法: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公式中出现,会被认为特定用途,非真正的~。如在表格中查找3*6 ,356,376也被查找到。 如果精确查找3*6,需要使用~,如下图所示。 解决方法:用~~就可以表示查找~了。所以公式可以修改为 =VLOOKUP(SUBSTITUTE(A8,'~','~~'),A2:B4,2,0) 第12种:vlookup函数第1个参数不直接支持数组形式产生的错误 【例12】:如下图所示,同时查找A和C产品的和,然后用SUM求和。
解决方法:利用N/T IF结构转化一下数组,如果不了解N/T IF结构用法,可以参考http://www./thread-174362-1-1.html。公式修改为: =SUM(VLOOKUP(T(IF({1},A8:B8)),A2:B5,2,)) 兰色说:vlookup函数是最有用的函数,但同时也应了那句老话:做的越多,错的也越多。所以掌握提高避错的技术非常有必要。 |
|