设为首页收藏本站

嘻皮客娱乐学习网

 找回密码
 中文注册
搜索
打印 上一主题 下一主题
开启左侧

[Excel函数公式] Vlookup函数的使用技巧及应用实例

[复制链接]
跳转到指定楼层
楼主
发表于 2018-1-8 17:16:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
                               

                        平时工作中经常需要对Excel表格中数据进行查询调用,VLOOKUP函数是工作中使用频率超高的查询函数之一。本文完整详尽的介绍了VLOOKUP函数的使用方法,并结合实例深入的讲解了Vlookup函数的应用技巧。
        1、VLOOKUP函数语法解析
        VLOOKUP 基础用法是搜索某个单元格区域的第一列,然后返回该区域相同行上任何单元格中的值。
        VLOOKUP 中的 V 表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用VLOOKUP
        语法结构:
        VLOOKUP(lookup_value,table_array, col_index_num, [range_lookup])
        解读:
        VLOOKUP(找什么,在哪找,找到后返回其右侧对应的第几列数据,精确还是模糊查找)
        这样一看是不是清晰多了?
        具体的语法说明大家按F1看帮助文档吧,本文就不再详细解读了。
        需要说明的一点是,Excel中的帮助信息也有错误,比如在插入函数功能中VLOOKUP第四参数的说明就是错的,大家注意不要被误导哦!如下图:
       

        红框部分帮助错误,应改为:如果为FALSE或0,精确匹配,如果为TRUE或忽略,大致匹配。
        详细解读:
        VLOOKUP函数语法解析
        http://www.officezhushou.com/vlookup/5523.html
        2、VLOOKUP函数单条件查找
        根据单条件进行数据查找是最基础也是最常见的需求了。
        看如下案例,工作中的数据源为A:B两列,分别放置业务员姓名和对应的销售额,当需要按照业务员查找其对应的销售额时,就要用到VLOOKUP函数了。
       

        表中黄色区域为公式所在位置,以E2单元格公式为例
        =VLOOKUP(D2,$A$2:$B$12,2,0)
        这个公式是标准的VLOOKUP函数的基础应用方法,每个参数都没有变形,所以很方便初学者获悉这个函数最原始的含义和作用。
        第一参数:找什么(或者说按什么查找),按业务员查找,所以输入D2
        第二参数:在哪找,数据源区域在A:B列,所以输入$A$2:$B$12
        第三参数:找到后返回第几列,我们要查找的是销售额,销售额位于B列,即第二参数中的第二列,所以输入2
        第四参数:这里要精确查找,所以输入0
        翻译过来就是
        =VLOOKUP(要查找的业务员,包含业务员和其销售额的数据源区域,找到后返回第2列,精确查找)
        详细解读:
        VLOOKUP函数多条件查找
        http://www.officezhushou.com/vlookup/5525.html
        3、 VLOOKUP函数多条件查找
        如果有多个条件要同时满足怎么办?
        其实很简单,可以在数据源左侧创建一个辅助列,将多个条件用&符号连接起来作为条件查找列。
        如果数据源左侧不允许插入列,或者想直接用一个公式搞定多条件查找,自然也有办法啦,下面结合一个案例来介绍这种方法。
        看如下案例,工作中的数据源为A:C两列,分别放置水果、产地和对应的销售额,当需要同时按照水果和产地查找其对应的销售额时,就要用到VLOOKUP函数的多条件查找技巧了。
       

        表中黄色区域为公式所在位置,以G2单元格公式为例
        输入以下数组公式,按<Ctrl+Shfit+Enter>组合键结束输入。
        =VLOOKUP(E2&F2,IF({1,0},$A$2:$A$12&$B$2:$B$12,$C$2:$C$12),2,0)
        注意:这个公式是数组公式,如果直接按Enter键输入会返回#N/A错误值。
        新人一定搞不懂啥叫数组公式呢?这里科普一下吧。
        Excel中的公式分普通公式和数组公式。
        普通公式不多说啦就是大家最常用的,输入公式后直接按Enter结束输入。
        数组公式是为了应对一些比较复杂的计算,需要对一组或者多组数据执行多项计算,返回一个值或者一组值的公式,这样的公式输入完成后需要按<Ctrl+Shfit+Enter>组合键结束输入,公式两侧会自动出现一对大括号{},标识这个公式是要按照数组运算模式来计算的。
        当鼠标定位在公式所在单元格进入编辑状态时,大括号就消失了,当我们按ESC键退出编辑状态时大括号就又重新出现了。
        详细解读:
        VLOOKUP函数多条件查找
        http://www.officezhushou.com/vlookup/5525.html
        4、VLOOKUP函数查找返回多列数据
        单条件查找会了,多条件查找也学了,都是输入一个公式然后向下复制填充一列的形式,如果有多列数据需要根据查找值调取对应数据,那么如何输入一个公式就能搞定一个区域的数据调用呢?
        这个案例告诉你答案。
        下图中左侧表格是数据源区域,需要在右侧区域根据业务员姓名调取对应的科目成绩,黄色区域是需要填写公式的区域。
       

        这个案例中,观察到右侧的科目顺序和数据源一致,都是从数学到体育,如果用最笨的方法一列一列写公式固然可以实现目的,但当需要查找的列很多时无疑是一项大工程。
        这里给出一个简单实用的公式,选中H2:K5单元格区域,输入以下公式后按<Ctrl+Enter>组合键。
        注意是组合键同时按下,而不要只按Enter键哦!
        =VLOOKUP($G2,$A$2:$E$12,COLUMN(B1),0)
        详细解读:
        VLOOKUP函数查找返回多列数据
        http://www.officezhushou.com/vlookup/5526.html
        5、VLOOKUP函数从右向左查找
        工作中免不了遇到数据源中要调取的数据在查找值所在列的左侧,知道VLOOKUP函数的常规用法是从左往右找,那么遇到这种需要从右往左查找的问题如何解决呢?
        下面的表格中,需要按照给出的编号查找对应的业务员姓名,黄色区域输入公式。
       

        看到这个场景,有的小伙伴或许说,虽然VLOOKUP函数只能从左往右找,那干脆把数据源里面的编号列改到左边不就行了吗?
        想的没错,这样是可以实现的,但以下几种情况下还是学会一个公式一步到位的比较好:
        1、当数据源格式不允许改动时
        2、当这项工作出现的频率较高,你懒得每次都要重新改数据源,想一劳永逸时
        3、当你想除了基础用法之外,多学点高逼格用法时,哈哈
        所以说技多不压身,多学一手,何乐而不为呢?
        F2单元格输入以下公式后向下复制填充。
        =VLOOKUP(E2,IF({1,0},$B$2:$B$12,$A$2:$A$12),2,0)
        详细解读:
        VLOOKUP函数从右向左查找
        http://www.officezhushou.com/vlookup/5528.html
        6、VLOOKUP函数按数据所处区间划分等级
        工作中除了精确查找外,模糊匹配也经常遇到。结合下面这个案例来学习模糊匹配技巧。
        下面表格中左侧是数据源区域,需要按照等级划分规则,将成绩划分到其对应的等级中。
       

        等级划分规则如下:
        [0,60): D
        [60,80): C
        [80,90): B
        [90,100]: A
        看到这里,很多小伙伴一定想到用IF多条件嵌套来解决,没错,使用IF是可以实现的,比如这两个公式都能实现我们的需求。
        =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=60,"C","D")))
        =IF(B2<60,"D",IF(B2<80,"C",IF(B2<90,"B","A")))
        但是当划分规则更多时,编辑公式的时候需要一层一层的嵌套,用IF书写公式简直变成了体力活。
        有没有更简便的办法呢?当然,只要学会VLOOKUP模糊匹配技巧就可以了。
        用以下公式就可以实现IF多层条件嵌套同样的结果了。
        =VLOOKUP(B2,{0,"D";60,"C";80,"B";90,"A"},2)
        详细解读:
        VLOOKUP函数按数据所处区间划分等级
        http://www.officezhushou.com/vlookup/5529.html
        7、VLOOKUP函数使用通配符模糊查找
        当在工作中遇到需要只根据查找值的一部分进行查找时,记得可以利用通配符的特性来实现。
        下面结合一个案例来介绍。
        表格中左侧是数据源,需要查找业务员名字中带“强”的人的销售额。
       

        通配符星号*通配任意个字符,问号?通配单一字符,这个案例中模糊查找的规则是只要名字中带“强”就可以,所以我们需要使用“*强*”这种形式,支持“强”字出现在任意位置。
        E2公式为:
        =VLOOKUP("*强*",$A$2:$B$12,2,0)
        详细解读:
        VLOOKUP函数使用通配符模糊查找
        http://www.officezhushou.com/vlookup/5530.html
        8、VLOOKUP函数多层级条件嵌套查找
        遇到多层级条件嵌套查找,很多人第一时间想到的是IF多条件嵌套,还有些高手想到的是LOOKUP函数查找,其实VLOOKUP函数也可以搞定。
        比如下面这个案例,要根据会员的消费金额查找其所处的会员等级。
       

        当消费金额处在两级会员等级之间时,按较低一级的等级算,比如消费金额3333,处于会员等级三级和四级之间,那么该会员属于三级会员,只有达到5000消费金额后才算四级会员。
        E2输入以下公式,向下填充。
        =VLOOKUP(D2,$A$2:$B$8,2)
        详细解读:
        VLOOKUP函数多层级条件嵌套查找
        http://www.officezhushou.com/vlookup/5531.html
        9、VLOOKUP函数按指定次数重复数据
        工作中一些复杂场景会遇到按指定次数重复数据的需求,如下图所示。
       

        D列黄色区域是由公式自动生成的重复数据,当左侧的数据源变动时,D列会按照指定的重复次数自动更新。
        这里使用的是一个数组公式,以D2为例,输入以下数组公式后按<Ctrl+Shfit+Enter>结束输入。
        =IFERROR(VLOOKUP(ROW(A1),IF({1,0},SUBTOTAL(9,OFFSET(A$2,,,ROW($1:$3))),B$2:B$4),2,),D3)&""
        这个思路和方法都很赞,转给朋友们分享一下吧~
        详细解读:
        VLOOKUP函数按指定次数重复数据
        http://www.officezhushou.com/vlookup/5532.html
        10、VLOOKUP函数返回查找到的多个值
        都知道VLOOKUP的常规用法下,当有多个查找值满足条件时,只会返回从上往下找到的第一个值,那么如果需要VLOOKUP函数一对多查找时,返回查找到的多个值,有办法实现吗?答案是肯定的。
        结合案例来看。
        下面表格中左侧是数据源,当右侧D2单元格选择不同的著作时,需要黄色区域返回根据D2查找到的多个值。
       

        在这里,先给出遇到这种情况最常用的一个数组公式
        E2单元格输入以下数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
        =INDEX(B:B,SMALL(IF(A$2:A$11=D$2,ROW($2:$11),4^8),ROW(A1)))&""
        这是经典的一对多查找时使用的INDEX+SMALL+IF组合。
        用VLOOKUP函数的公式,我也给出,E2输入数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
        =IF(COUNTIF(A$2:A$11,D$2)<ROW(A1),"",VLOOKUP(D$2&ROW(A1),IF({1,0},A$2:A$11&COUNTIF(INDIRECT("A2:A"&ROW($2:$11)),A$2:A$11),B$2:B$11),2,))
        详细解读:
        VLOOKUP函数返回查找到的多个值
        http://www.officezhushou.com/vlookup/5533.html
        11、VLOOKUP函数在合并单元格中查找
        合并单元格,这个东东大家在工作中太常见了吧。
        在工作中尽量避免合并单元格,尤其是在数据处理过程中。但这并不能避免跟合并单元格打交道,因为数据源来自的渠道太多了,遇到了合并单元格也不能影响到数据处理和分析过程。
        下面结合一个案例,介绍合并单元格中如何使用VLOOKUP函数查找。
       

        注意到左侧的班级列包含多个合并单元格且都是3行一合并,右侧的查找是根据班级和名次进行双条件查找。注意是从合并单元格中查找哦。
        最简便的办法是在数据源左侧做个辅助列,将合并单元格拆分并填充,这就回归到前面介绍过的多条件查找的用法了。这个案例不创建辅助列,也不改动数据源结构,直接使用公式进行数据提取。
        G2输入以下公式
        =VLOOKUP(F2,OFFSET(B1:C1,MATCH(E2,A2:A10,),,3),2,)
        详细解读:
        VLOOKUP函数在合并单元格中查找
        http://www.officezhushou.com/vlookup/5534.html
        12、VLOOKUP函数提取字符串中的数值
        工作中有时会遇到从一串文本和数值混杂的字符串中提取数值的需求,如果字符串比较多而且经常变动,与其每次都手动提取数值,就不如写好一个公式实现自动提取。当数据源更新时,公式结果还能自动刷新。
        下面的案例中,可以看到字符串中包含的数值各式各样,有整数也有一位小数、两位和多位小数,还有百分比数值,使用公式都可以一次性批量提取(百分号提取出来默认按照小数形式显示,可以设置格式改变显示方式)。
       

        首先给出数组公式,在B2输入以下数组,按<Ctrl+Shift+Enter>组合键结束输入。
        =VLOOKUP(9E+307,MID(A2,MIN(IF(ISNUMBER(--MID(A2,ROW($1:$99),1)),ROW($1:$99))),ROW($1:$99))*{1,1},2)
        详细解读:
        VLOOKUP函数提取字符串中的数值
        http://www.officezhushou.com/vlookup/5535.html
        13、VLOOKUP函数转换数据行列结构
        VLOOKUP函数不光能查找调用数据,还可以用来转换数据源的布局,比如将行数据转换为多行多列的区域数据,如下面案例。
        数据源位于第二行,要将这个1行20列的行数据转换为黄色区域所示的4行5列的布局。
       

        选中P5:T8单元格区域,输入以下区域数组公式,按<Ctrl+Shift+Enter>组合键结束输入。
        =VLOOKUP("*",$A$2:$T$2,((ROW(1:4)-1)*5+COLUMN(A:E)),0)
        详细解读:
        VLOOKUP函数转换数据行列结构
        http://www.officezhushou.com/vlookup/5536.html
        14、VLOOKUP函数疑难解答提示
        在使用VLOOKUP函数的过程中,很容易遭遇公式返回错误值的困境,下面这些错误值总结了最常见的问题,介绍产生错误原因的同时还给出了排除错误值的方法。
       

        详细解读:
        VLOOKUP函数疑难解答提示
        http://www.officezhushou.com/vlookup/5537.html
               
                               
回复

使用道具 举报

小黑屋|手机版|嘻皮客网 ( 京ICP备10218169号|京公网安备11010802013797  

GMT+8, 2024-4-25 10:18 , Processed in 0.190695 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表