Excel中VLOOKUP函数的应用分析

时间:2022-07-16 08:33:24

Excel中VLOOKUP函数的应用分析

摘要:阐述了VLOOKUP函数的语法结构,分析了其参数的使用规则,对这些参数使用中出现的问题给出了解决办法,并用实例加以了实现。

关键词:VLOOKUP函数;精确/模糊查找;出错处理

中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)36-0195-03

Application Analysis of VLOOKUP Function in Excel

LIU Mo-qun

(School of Computer & Information Engineering, Changzhou Institute of Technology, Changzhou 213032, China)

Abstract: The grammatical structure of VLOOKUP function is elaborated in this article. The author analyzed the rule of how to use the parameter, proposed some methods to solve the problems aroused the process, and proved it by some examples.

Key words: VLOOKUP function; Exact/fuzzy search; error handling

1 背景

使用Excel不仅可以制作各类表格,而且可以计算、管理和分析表格数据。Excel强大的统计、分析功能来自于它的公式和函数。如果你是单位的财务人员,可能会被无穷的数据折磨得头昏脑涨。有一个单位会计负责材料、成本,每个月总有那么二天会坐在电脑桌前忙着查找复制数据,更新产品的最新单价。在钠渌部门拷贝过来的产品新单价表格里,输入产品编号点击查找,然后右键复制其最新的价格,再将其粘到自己的表格里,循环往复周而复始。后来采用VLOOKUP函数,这项工作就从二天减少到了半个小时。在实际工作中,很多人体会到了使用VLOOKUP函数的好处,但还是听到有人抱怨说VLOOKUP有的时候好用,有的时候不好用。其实是他没有完全搞清楚VLOOKUP的使用规则,才导致达不到他的查找目标。正是基于这个原因,有必要详细地分析一下VLOOKUP函数。

2 函数的语法结构

VLOOKUP是一个垂直查询函数。给定一个查找的目标,搜索指定单元格区域的第一列,然后返回该区域相同行上任何指定单元格的值。其函数格式为:

VLOOKUP(Lookup_value,Table_array,Col_index_num,[Range_lookup])

2.1 参数说明

Lookup_value查找目标是必选参数。指要在表格或区域的第1列搜索到的目标值,就是你指定的要查找的内容或单元格引用。

Table_array查找范围是必选参数。指定了从哪个范围中进行查找,一般是指要查找的数据所在的单元格区域,也可以从一个常量数组或内存数组中查找。

Col_index_num返回值的列号是必选参数。它是一个整数值,指出了最终返回数据所在的列号。需要注意的是,它是“返回值”在第二个参数给定的区域中的列号。

Range_lookup精确/模糊查找是可选参数。它是一个逻辑值,取值为True或者False,指定希望VLOOKUP查找精确匹配值还是近似匹配值,最后一个参数是决定函数精确和模糊查找的关键。如果该参数为True或被省略,则返回近似匹配值;如果为False,那么将只查找精确匹配值。

2.2 必选参数使用注意事项

下面以实例来解析一下这四个参数的使用。

例1:如图1所示,要求根据表二中的图书名称,查找图书名称所对应的定价。

第二个参数“查找范围”是很容易出错的地方,必须引起足够的重视。首先查找区域的第一列必须是查找目标要搜索的值,本例中查找表二的“图书名称”,那么在表一中选定的查找区域的第一列就必须是图书名称,而不能从图书编号列开始选取查找区域。即应该是$B$3:$C$10,而不能是$A3:$C$10,因为查找的“图书名称”不在$A3:$C$10区域的第一列。其次该查找区域一定要包含返回值所在的列,本例中要返回的值是定价,表一的C列定价一定要包括在这个查找范围内。

第三个参数是指查找区域范围内的第几列,不是所在工作表中的列号。本例中我们要返回的是“定价”,它是第二个参数查找范围$B$3:$C$10的第2列,如果写成工作表中的列号3就是错误的。如果本例中要查找的是图书名称所对应的出版社,则第2个参数应该设置为$B$3:$D$10,第3个参数的值应该设置为3,因为“出版社”在该区域的第3列中。

3 精确/模糊查找

Range_lookup可选参数如果指定值是0或FALSE就表示精确查找,如果查找区域的第1列中有两个或多个值与Lookup_value匹配,则使用第1个找到的值。而值为1或TRUE时则表示模糊查找,这种情况下如果找不到精确匹配值,则返回小于Lookup_value的最大值。该参数缺省值为模糊查找,精确即完全一样,模糊即近似匹配的意思。

3.1 对话框提示中的问题

在使用该函数的时候我发现一个问题,就是微软的Excel中该函数参数提示是有问题的。如图2所示是在Excel2010中,使用VLOOKUP函数自动弹出的对话框,对话框中明显指出该参数“如果为TRUE或忽略,精确匹配”。

为了验证究竟哪一个说法正确,只能实际上机操作去探究。从上机实践中就会发现,该参数为FALSE是精确匹配,所以我个人认为软件中的提示是有偏差的。很多人在使用该函数时总是抱怨时常出错,这与软件“提示不当”应当有很直接的关系。

3.2 模糊查找

Range_lookup参数为FALSE时,因为是精确查找,所以不需要对Table_array查找范围的第1列中的值进行排序。但是如果该参数设置为模糊查找,那么就必须按升序排列Table_array查找区域第1列中的值,否则VLOOKUP函数可能无法返回正确的值。

如图3所示,它是大气特征表“密度”、“粘度”和“温度”的对应关系,这些值是在1个大气压下或海平面0摄氏度对空气的测定。

例2:要求根据表二中的大气密度,查找表一中大致“密度”所对应的“粘度”。

公式中搜索A列中的值1,在A列中由于找不到等于1的精确值,所以使用近似匹配找到小于1的最大值0.946,然后返回同一行中B列的值2.17。单元格F4中的公式也是使用近似匹配搜索A列中的值2,在A列中找到小于等于2的最大值,即最后一行的1.29,然后返回同一行中B列的值1.71。

4 多列查找与函数的出错处理

4.1 多列查找时公式的复制

VLOOKUP函数的第3个参数是查找返回数据所在的列号,如果我们需要查找返回多列数据值时,这个列数值需要一个一个的更改,例如返回Table_array查找区域第2列中的值,Col_index_num参数设置为2,如果需要返回Table_array第3列中的值,就需要把Col_index_num参数修改为3,以此类推……,如果需要返回若干列的值就会非常麻烦。那么是否可以让第3个参数自动改变呢?向右复制公式时2自动变为3、4、5等,这就需要用到COLUMN函数。

在EXCEL中有一个函数COLUMN,它可以返回一引用的列号,比如:

=COLUMN(B1) 返回值为2

=COLUMN(C1) 返回值为3

当然,COLUMN(B1)也可以用COLUMN(B2)、COLUMN(B3)等替代。

例3:要求根据如图4所示的大气密度,查找图3中表一大致“密度”所对应的“粘度”和“温度”。

复制公式时单元格引用会自动发生变化,即COLUMN(B1)随公式向右复制时会变成COLUMN(C1)、COLUMN(D1) ……,这样列号2就可以自动转换成数字3、4……,通过使用COLUMN(B1)转化成可以自动递增的数字。由于向右复制公式时第1个参数E3会根据相对位置变成F3,所以“列”要设置成绝对地址$E3。

4.2 函数的出错处理

在进行查找时,如果第三个参数Col_index_num值小于1,tVLOOKUP返回错误值#VALUE!;如果该参数值大于Table_array的列数,则VLOOKUP函数返回错误值#REF!。当第四个参数Range_lookup为FALSE时,进行精确查找,如果找不到精确匹配值,则返回错误值#N/A。

有时我们并不希望在文件中出现这些错误信息,那如何避免出现这些错误值呢?在Excel2003中有一个ISERROR(value)函数,它用来检查一个值是否为错误(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或#NULL!),返回TRUE或FALSE。可以利用该错误处理函数把错误值转换成空值或0,即:

=IF(ISERROR(VLOOKUP(参数略…)), "", VLOOKUP(参数略…) )

EXCEL2010中提供了一个新函数IFERROR(value, value_if_error),该函数的功能是:如果表达式是一个错误,则返回value_if_error,否则返回表达式自身的值。该函数处理起来比ISERROR简单多了,语句如下:

=IFERROR(VLOOKUP(参数略…), "")

VLOOKUP函数查找时出现错误值,除了上面提到的“实在是没有所要查找到的值”这个原因外,还有以下几方面的原因:首先,查找的字符串或被查找的字符中含有空格或看不见的空字符。可以用=号对比验证一下,如果结果是FALSE,就表示两个单元格看上去相同,其实内容不同。其次,参数设置错误。如第二个参数数据源区域,查找的值不是区域的第一列,或者需要返回的字段不在区域里。最后还有可能是数据格式不同,如果查找值是文本,而被查找的是数字类型,就会查找不到。解决方法是将其进行类型转换,文本转换成数值可以将其*1或/1,数值转换成文本可以将其&""。

3 结束语

以上只是对VLOOKUP函数的应用进行了分析,其实Excel提供了大量的、类型丰富的实用函数,可以通过各种运算符及函数构造出各种公式以满足各类应用的需要。使用者也不仅仅局限于财务人员,人事档案人员以及各个行业各部门的人员也都广泛地使用着这些函数,它给我们的工作提供了相当的便利,帮我们做好管理分析,极大地提高了工作的效率和效果。

参考文献:

[1] 于双元. 全国计算机等级考试二级教程――MS Office高级应用[M].北京:高等教育出版社,2016.

[2] 冯梅, 吴静. Vlookup 函数的应用[J].成都航空职业技术学院学报,2013(4): 57-59.

[3] 赵春兰. Excel2010应用教程[M].北京:人民邮电出版社,2015.

上一篇:浅议发展中的高职图书馆服务 下一篇:UFT自动化功能测试对象库设计、研究和实现