设为首页收藏本站

嘻皮客娱乐学习网

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

[Excel函数公式] 查找引用类excel函数——VLOOKUP函数的使用方法

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

                        在一个数据量比较大的工作表中,如果想要找到符合某些特征的记录,通常都会想到采用筛选的方式实现。但如果需要查找的是某一条记录的话,用查找引用类excel函数就会更为方便。
        这次,就为各位介绍常用的查找引用类excel函数——VLOOKUP函数的使用方法。
        VLOOKUP中的V是Vertical的缩写,从单词本身可知,这是一个垂直进行查找的函数,也可以理解为在一列数据里面找东西的函数。
        在介绍VLOOKUP函数的具体使用方法之前,我们先通过Excel函数帮助了解这个函数的说明及语法形式:
        VLOOKUP 是在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。其语法为
        VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)。
        看了这一串有些复杂的参数,是不是有些糊涂了?
        我们可以采用这样一种简单的方法先记住VLOOKUP函数的参数:
        VLOOKUP(需要找的内容,用来查找的数据表,返回数据表中第几列的内容,查找的方式)
        要注意的是:其中需要找的内容一定是在数据表的最左列,查找结果要精确的话,第四个参数要写False或是0。
        说到这里,不得不吐槽一下微软了。
        看图:
       

        关于第4参数,说明和事实严重不相符。
        打开帮助.....又是另一番说法:
       

        想必这会给初学者带来很大的困惑吧?
        所以关键时候一定不要迷恋哥,哥只是个传说。
        接下来我们用示例来进一步说明VLOOKUP函数的用法。
        下图为某公司的员工信息表,有N多行数据,我们需要找出某员工的详细记录。
       

        (一)查找姓名为天竺僧的所在部门信息
        我们将需要查找的姓名记录在单元格F5中,然后在G5中写公式:
        =VLOOKUP($F$5,$B$1:$D$10,2,0)
        由于员工部门对于员工信息表在第2列(以姓名所在列为1,向右数),故第三个参数为2,因为我们想要精确的找到天竺僧的部门,即第四个参数采用精确查找的查找方式,所以需要写为False,而在Excel中,False的逻辑值为0,因此可以简写为0。
        采用上述的公式,我们就很容易的查到天竺僧是的部门是生产部。
        如果需要了解该员工的详细记录的话,可以继续在其他单元格里书写公式,当然第三个参数会有变化,比如职务在第3列就应该写成3。
        那如果想更轻松的去书写公式,有没有更好的方法呢?
        回答是肯定的,只要找到一种能帮我们自动返回列序号的函数就可以了。下面的例子将详细说明。
        (二)查找姓名为天竺僧的全部资料
       

        从表中知道,我们需要了解姓名为天竺僧的部门和职务两种信息。
        为了简化公式,就是说写好一个公式后用复制的方法快速把其他公式写完,我们就采用COLUMN函数帮我们来数Vlookup的第三个参数——列序号。
        COLUMN函数可以返回指定单元格的列号。公式中使用了COLUMN(B1),计算结果就是B1单元格的列号2。COLUMN函数的参数使用了相对引用,向右复制的时候,就会变成COLUMN(C1),计算结果就是C1单元格的列号3,这样就给了VLOOKUP函数一个动态的第三参数。
        最后,将COLUMN函数与Vlookup拼合在一起,变成公式:
        =VLOOKUP($F$5,$B$1:$D$10,COLUMN(B1),)
        再把公式复制到其他单元格,就可以很容易的查找到该员工的全部资料了。
        另外,在使用Vlookup函数的时候,如果第四个参数是TRUE,要求数据表必须按升序排列,否则就会出现计算错误,如果第四个参数是FALSE,则不用考虑数据表的升降序顺序。
        在工作中常常会出现重复记录的情况,可以通过一些技术手段来限制或规避,但像重名这类问题恐怕难以避免。那遇到重名怎么办?
        由于Vlookup函数的第一个参数要求必须是唯一的,不然返回的只能是第一次遇到的记录,因此解决这类问题的方法就变成寻找唯一值。
        可以借助辅助列的方式,加上行号或是工号等信息,将两列数据合并成一个新的辅助列,放在原数据表的最左边,接下来问题就迎刃而解了。
        VLOOKUP函数的第一参数可以使用通配符,如下图中,F5单元格给出了姓氏,G5就可以根据姓氏查找到数据表中第一条符合这个姓氏的信息。
        =VLOOKUP($F$5&"*",$B$1:$D$10,2,)
       

        这样咋一看,咱们可能觉得VLOOKUP函数的第一参数还是挺随和的。
        那是不是真的像咱们想的那样呢?
        一起看下图:
       

        F5单元格是员工的工号,G5单元格使用以下公式用于返回该工号的部门信息:
        =VLOOKUP($F$5,$A$1:$D$10,3,)
        咱们看公式本身是没有问题的,但是却返回了一个错误值,这是什么原因呢?
       

        看出问题来了吧?
        需要查找的值和数据表中的格式一个是文本一个常规,VLOOKUP函数较真儿了——不一样,就是不一样。
        最后咱们来做一下总结:
        1、VLOOKUP函数查找值支持使用通配符("?"号和"*"号)进行查询,但查找值不能使用数组作为参数来生成内存数组。
        2、第4个参数决定了查找方式。如果为0(或FASLE),用精确匹配方式进行查找,而且支持无序查找;如果为1(或TRUE),则使用模糊匹配方式进行查找,要求第2个参数的首列或首行按升序排列。
        3、第3个参数中的列号,不能理解为工作表中实际的列号,而是指定返回值在查找范围中的第几列。
        4、如果查找值与数据区域关键字的数据类型不一致,会返回错误值#N/A。
        5、如果有多条满足条件的记录时,只能返回第一个满足条件的记录。
               
                               
回复

使用道具 举报

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

GMT+8, 2024-4-27 16:06 , Processed in 0.243907 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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