病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« Outlook Express非正常备份自动弹出网游网页 »

vlookup函数在Excel中的应用

  同事要求我做一个Excel公式:在某位置输入一个值后能自动在指定的区域中搜索相同的内容,并得出对应(同一行中其它列)单元格的值,因此需要用到vlookup函数。先抄一段vlookup的语法说明:

在表格数组首列查找值,并由此返回表格数组当前行中其他列的值。VLOOKUP 中的 V 表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP,而不用 HLOOKUP(H是水平方向)

语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value  为需要在表格数组第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 将返回错误值 #N/A。

Table_array  为两列或多列数据。请使用对区域的引用或区域名称。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。

Col_index_num  为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,VLOOKUP 返回错误值 #VALUE!。如果 col_index_num 大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。

Range_lookup  为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:

如果为 TRUE(非零数字即为TRUE) 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。

如果为 FALSE(数字0则为FALSE),VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。(一般我们用FALSE,当然希望是精确匹配,而且排序也麻烦)

  比如我们要在工作表的A2:C4范围内的A列中搜索预先输入在E2单元格的内容,然后得出搜索结果同一行的C列上的值,就可以写出如下公式:

=vlookup(E2,A2:C4,3,FALSE)  或 =vlookup(E2,A2:C4,3,0)  

C列是搜索区域中的第3列,也正如上面语法中说的,搜索对象是引用,也可以是具体的内容:如字符、数字等。

  当然,有很多时候,我们要搜索的内容并不是在指定区域的第一列,而要取得的对应值反正是在第一列上,这时候我们就要用到vlookup的逆向用法。如我们要在工作表的A2:C4这一范围中的C列上查找相应值,然后得出同一行上A列的内容,则公式为:

=vlookup(E2,IF({1,0},C2:C4,A2:A4),2,FALSE) 

这里用一个IF函数要形成一个内存中的数组,这个内存中的数组为{C2:C4,A2:A4},实际是把工作表中的A与C列的顺序倒过来,然后再应用vlookup函数(这就是逆向,实际查找的还是第一列)。另外用CHOOSE函数也能有同样效果,如=vlookup(E2,CHOOSE({1,2},C2:C4,A2,A4),2,FALSE) 简单的说就中{1,2}=1时,CHOOSE的值就是C2:C4,{1,2}=2时,CHOOSE的值就是A2:A4,具体语法就不说了。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/204.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.

闽公网安备 35010202000133号