Board logo

标题: VLOOKUP函数番外篇:如何正确使用VLOOKUP函数 [打印本页]

作者: zhendeaini    时间: 2014-11-6 12:42     标题: VLOOKUP函数番外篇:如何正确使用VLOOKUP函数

VLOOKUP函数:
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value    为需要在[url=mk:@MSITStore:C:\Program%20Files\Microsoft%20Office\OFFICE11\2052\xlmain11.chm::/html/xlfctVLOOKUP1.htm#]数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)[/url]第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。
Table_array    为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。
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 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
示例:
ABC
密度粘度温度
.4573.55500
.5253.25400
.6162.93300
.6752.75250
.7462.57200
.8352.38150
.9462.17100
1.091.9550
1.291.710
公式说明(结果)
=VLOOKUP(1,A2:C10,2)在 A 列中查找 1,并从相同行的 B 列中返回值 (2.17)
=VLOOKUP(1,A2:C10,3,TRUE)在 A 列中查找 1,并从相同行的 C 列中返回值 (100)
=VLOOKUP(.7,A2:C10,3,FALSE)在 A 列中查找 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE)在 A 列中查找 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值 (#N/A)
=VLOOKUP(2,A2:C10,2,TRUE)在 A 列中查找 2,并从相同行的 B 列中返回值 (1.71)

作者: zhendeaini    时间: 2014-11-6 13:40     标题: 如何正确使用VLOOKUP函数



图片附件: 如何正确使用VLOOKUP函数.gif (2014-11-6 13:40, 549.47 KB) / 该附件被下载次数 29
http://hahabbs.w1.luyouxia.net/bbs/attachment.php?aid=117735


作者: 匿名    时间: 2014-11-6 14:01

[39] 这个函数用来匹配两个表的数据挺好用点。。
作者: seaxin    时间: 2014-11-6 15:00

哦,原来如此,很好啊,比excel那些教材讲得详细多了。

那如果不是第一列的数据,是不是就不能用VLOOKUP了?用HLOOKUP?
作者: zhendeaini    时间: 2014-11-6 15:18

引用:
原帖由 seaxin 于 2014-11-6 15:00 发表
哦,原来如此,很好啊,比excel那些教材讲得详细多了。

那如果不是第一列的数据,是不是就不能用VLOOKUP了?用HLOOKUP?
方法类似,取值不同。

HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
Lookup_value    为需要在数据表第一行中进行查找的数值。Lookup_value 可以为数值、引用或文本字符串。
Table_array    为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用。
Row_index_num    为 table_array 中待返回的匹配值的行序号。Row_index_num 为 1 时,返回 table_array 第一行的数值,row_index_num 为 2 时,返回 table_array 第二行的数值,以此类推。如果 row_index_num 小于 1,函数 HLOOKUP 返回错误值 #VALUE!;如果 row_index_num 大于 table-array 的行数,函数 HLOOKUP 返回错误值 #REF!。
Range_lookup    为一逻辑值,指明函数 HLOOKUP 查找时是精确匹配,还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。如果 range_value 为 FALSE,函数 HLOOKUP 将查找精确匹配值,如果找不到,则返回错误值 #N/A!。
说明
示例:
AxlesBearingsBolts
449
5710
6811
公式说明(结果)
=HLOOKUP("Axles",A1:C4,2,TRUE)在首行查找 Axles,并返回同列中第 2 行的值。(4)
=HLOOKUP("Bearings",A1:C4,3,FALSE)在首行查找 Bearings,并返回同列中第 3 行的值。(7)
=HLOOKUP("B",A1:C4,3,TRUE)在首行查找 B,并返回同列中第 3 行的值。由于 B 不是精确匹配,因此将使用小于 B 的最大值 Axles。(5)
=HLOOKUP("Bolts",A1:C4,4)在首行查找 Bolts,并返回同列中第 4 行的值。(11)
=HLOOKUP(3,{1,2,3;"a","b","c";"d","e","f"},2,TRUE)在数组常量的第一行中查找 3,并返回同列中第 2 行的值。(c)

作者: seaxin    时间: 2014-11-6 15:24

如果函数 HLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于 lookup_value 的最大值。


如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。


就这两段不同~[32] ?

那如果是随意两列找相同呢……,我平时用的是countif,我就想问问还有没有别的。
作者: zhendeaini    时间: 2014-11-6 18:45

引用:
原帖由 seaxin 于 2014-11-6 15:24 发表
如果函数 HLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于 lookup_value 的最大值。


如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大 ...
试试这个(VLOOKUP函数找相同):


图片附件: VLOOKUP函数找相同.gif (2014-11-6 18:45, 122.62 KB) / 该附件被下载次数 27
http://hahabbs.w1.luyouxia.net/bbs/attachment.php?aid=117757






欢迎光临 BBS (http://hahabbs.w1.luyouxia.net/bbs/) Powered by Discuz! 6.0.0