一、 vlookup基本用法
目标:根据品名找到对应的价格;
注意事项:品名必须位于价格的前面(左侧),品名与价格一一对应 ;
公式解读:
=VLOOKUP(D2,A2:B5,2,0) ——根据(查找品名)提取(数据区)的,第二列单价数据,采用精确匹配0;
=VLOOKUP(查找内容,查找区域,需要的数据在查找区域的列数,准确查找)
上面的例子含义为:根据d2单元格的内容(稿纸),在A2:B5这个区域里找对应的价格,需要满足两个条件,品名在这个区域的第一列,并且每个品名只有一个;要找的数据(价格)在这个区域的第二列,按照品名准确查找。
了解了vlookup四个参数的基本含义后,就可以使用这个函数来为我们解决一些数据引用的问题了,但是在遇到需要下拉公式的时候,还有一个地方需要注意,就是范围的绝对引用(引用的概念可以看这个帖子【excel基础:相对引用与绝对引用】)
为了解决这样的错误,我们需要加工一下公式,改成=VLOOKUP(H14,$C$14:$F$17,3,0),或者=VLOOKUP(H14,C:F,3,0),朋友们可以自己试试,理解一下固定范围的含义。
通过以上的叙述,对于同一个表格中的vlookup使用相信应该明白了其中的窍门,但是工作中往往会发生不在同一个表中引用的情况,比如明细表是全部的数据,而结果表里只需要引用一部分数据,这就是下面要说明的情况。
常见错误总结:
1、范围未锁定:常见于公式需要下拉或者横拉的情况,配合引用方式灵活处理即可;
2、查找内容和数据源格式不对,常见于数据源为其他程序导出的内容,数字类型为文本或者单元格内有空格等情况,需要仔细核查;
3、vlookup第四参数使用错误:vlookup的第四参数是可以省略的,但是逗号不能省略,例如将=VLOOKUP(H14,C14:F17,3,0)写成=VLOOKUP(H14,C14:F17,3,),是可以的,但是=VLOOKUP(H14,C14:F17,3),这样就不对了,省略最后一个逗号和第四参数写成1是一样的效果,就是模糊匹配。关于精确匹配和模糊匹配不在这里解释,可以自己试试效果。这个概念将在其他帖子专门说明。
二、vlookup跨表引用
三、vlookup连续使用(第三参数不固定)
掌握了跨表引用的方法后提高工作效率是一定的,但是有时候还是觉得不方便,比如下面的这个情况:
思路是这样的,对于年龄的引用,=VLOOKUP(I2,C1:F13,2,0),第三参数是2,这个容易明白,如果想通过一个公式横着拉过去可以引用三列的值,只要我们可以让这个2拉的时候可以变成3,4,就行了,因此,公式里套用一个函数就可以实现这个目的。
j2的公式修改为:=VLOOKUP($I2,$C$1:$F$13,COLUMN(B1),0),然后横拉下拉就可以了,为了确保第一参数的准确性,和第二参数范围的固定,我们分别做了混合引用和绝对引用,这个之前已经说过了。
这个方法使用有个前提就是引用的列和数据源的列顺序位置都是一样的,如果只是引用数据源的一部分列或者列的顺序不一样就不能这样做了,比如下面的这个情况:
四、vlookup合并条件引用
要求找到业务员在指定客户的销售额,找就是两个条件的引用实例,对于初学者而言,建议使用辅助列的方法来处理,具体如下:
=VLOOKUP(E2&F2,IF({1,0},A2:A7&B2:B7,C2:C7),2,0),输入或复制公式后按着ctrl、shift按回车,会自动出来大括号,原理就是用if把合并后的条件列,与销售额列看做两列的一个范围,所以vlookup的第三参数改为2。
五、vlookup反向引用
例如上面这个例子,根据工号来找姓名,就是反向,所谓反向的意思就是查找的条件列在要找的数据列右侧,这个直接用vlookup是不行的,解决这类问题就得用vlookup if或者vlookup choose来完成,不过不用三键结束哦,因为是单条件的,以下写出来四种公式,对照理解以下其中的异同,也可以帮助理解这种用法的原理。就上面这个问题,四个公式得到的效果完全一样:
=VLOOKUP(G2,IF({1,0},$B$2:$B$5,$A$2:$A$5),2,0)对照=VLOOKUP(G2,IF({0,1},$A$2:$A$5,$B$2:$B$5),2,0)理解,看看差别在哪,
=VLOOKUP(G2,CHOOSE({2,1},$A$2:$A$5,$B$2:$B$5),2,0)对照=VLOOKUP(G2,CHOOSE({1,2},$B$2:$B$5,$A$2:$A$5),2,0)理解。
六、vlookup排除错误引用
通过以上的叙述,相信对于vlookup应该有了比较全面的了解,可是美中不足的是当找不到所要查找的数据是,往往会得到,有没有办法让找不到数据的时候不要出现乱码(其实是错误代码),回答是肯定的,只要我们借助一个函数就可以了,这个函数就是iferror。可以套用这个格式来处理公式=iferror(vlookup(),'需要提示的文字'),例如,=IFERROR(VLOOKUP(E12,B12:C15,2,0),'')这个公式的意思就是当找不到对应数据的时候显示空白,两个'(英文状态的双引号)之间没有内容,或者可以这样写,=IFERROR(VLOOKUP(E12,B12:C15,2,0),'无此人'),当找不到对应姓名的时候显示无此人等等。
需要说明一点,iferror这个函数在Excel2003里没有,如果用2003要达到这个效果需要一个比较长一点的公式,格式如下:
=if(iserror(vlookup(),“”,vlookup()),例如:=IF(ISERROR(VLOOKUP(G2,B1:C5,2,0)),'',VLOOKUP(G2,B1:C5,2,0))。
七、vlookup多范围引用
当我们掌握了vlookup排除错误显示的方法后,可以来探讨一个多范围引用的例子,如下图所示:
两个班的数据是分开存放的,但是我们现在要找的名单可能在其中的任何一个里面,用=VLOOKUP(A2,'1班'!A:D,4,0)只能找到存在于1班的成绩,怎么样才能完全找到所有的成绩呢?换个思路来想想,也就是说当在1班找不到的时候,就去找2班,结合iferror函数可以实现:=IFERROR(VLOOKUP(A2,'1班'!A:D,4,0),VLOOKUP(A2,'2班'!A:D,4,0))用这个公式找到的结果如下:
联系客服