巧用VlookuP函数查信息

作 者:

作者简介:

原文出处:
中国会计报

内容提要:


期刊代号:V3
分类名称:审计文摘
复印期号:2009 年 04 期

关 键 词:

字号:

      在数据量比较大的工作表中,如果想要找到符合某些特征的记录,通常会采用筛选的方式实现。但如果查找的是某一条记录的话,用查找引用类函数VLookup就会更方便。

      Vlookup中的V是Vertical的缩写,从单词本身可知,这是一个垂直进行查找的函数,也可理解为在一列数据里找信息的函数。

      现在,我们先通过Excel函数帮助(摘自Excel2007)了解这个函数的说明及语法形式:

      Vlookup是在表格数组的首列查找指定的值,并由此返回表格数组当前行中其他列的值。其语法为VLOOKUP(100kup_value,table_array,col_index_num,range_lookup)。

      Vlookup(需要找的东西,用来查找的数据表,找到后想返回的数据所在列序号,查找的方式)要注意的是:其中需要找的东西一定是在数据表的最左列,查找结果要精确的话,第4个参数要写False。

      如图1为某公司的销售记录单,有1000多行数据,要找出某工单的详细记录。(见图1)

      图1

      

      (一)查找单号为10255的销售员

      我们将需要查找的单号记录在单元格H10中,然后在I10中写公式:

      由于销售员姓名对于销售记录数据表在第2列(以ID所在列为1,向右数),故第3个参数为2。因为要精确地找到10255的销售员,即第4个参数采用精确查找,所以要写为False。而在Excel中,False的逻辑值为0,因此可以简写为0。

      采用上述的公式,我们就很容易地查到10255这张工单是由李四完成的。如果我们需要了解该工单的详细记录的话,可以继续在其他单元格里书写公式,当然第3个参数会有变化;比如产品在第4列就应该写成4。

      如果你想更轻松地去书写公式,那需要找到一种能帮忙自动返回列序号的函数就可以了。下面的例子将详细说明。

      (二)查找单号为10255的全部资料

      从表中我们知晓了这张工单的时间、销售员、产品和金额等。为了方便,可写好一个公式后用复制而写完,我们就采用Match函数来数Vlookup的第3个参数——列序号。

      Match函数可在单元格区域中搜索指定项,然后返回该项在单元格区域中的相对位置。Match的语法形式为MATCH(lookup_value,lookup_array,[match_type])。

      通常我们会将第3个参数写为0,这样就不需要考虑数据表的升降序顺序了。同时,在使用Vlookup函数的时候,如果第4个参数是False,那也不用考虑数据表的升降序顺序。

      Match的第1个参数和Vlookup相同,也是要找的东西,而第2个参数就要注意。因为我们想要知道的是某个字段名在一行标题中的相对位置,所以是一行的数据区域。

      假定要知道金额所在的列序号,我们的Match函数写法为:

      先在k9单元格中写入“金额”,写公式:

      接下来就会看到返回结果为5,说明“金额”相对于数据表标题,是第5个,也就是列序号为5。

      最后,我们将Match与Vlookup拼合在一起,变成公式:

      

      在把公式复制到其他单元格,就可以很容易地查找到该工单的全部资料。(见图2)

      图2

      

      而且,你会发现,通过Vlookup函数,还可以很容易地将数据表的列顺序进行调换,因此,也不失为一种调整表格的好方法。

      细心的你可能已经发现,图1中的工单有重号现象。重号我们可以通过一些技术手段来限制或规避,但像重名这类问题恐怕难以避免。那遇到重号怎么办?由于Vlookuo函数的第一个参数要求必须是唯一的,不然返回的只能是第一次遇到的记录,因此解决这类问题的方法就变成寻找唯一值。本例中如果工号+姓名,就变成了唯一值,可以知道具体的销售人员等信息,下面我们将介绍具体的计算方法。

      (三)根据工号10259和姓名王伍查找记录

      我们已经知道唯一值就是工号+姓名,在Excel中可以采用“&”符号将文本合并,所以可以把Vlookup的第一个参数写成合并的文本字符串,对于Vlookup的第2个参数——用来找东西的数据表似乎就没那么容易,其实可借助辅助列的方式,将两列数据合并成一个新的辅助列放在原数据表的最左边,问题就迎刃而解了。(见图3)

相关文章: