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 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。
- 如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。
- 通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。
- 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。
说明
- 如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
- 如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
- 如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
示例:
| A | B | C |
| 密度 | 粘度 | 温度 |
| .457 | 3.55 | 500 |
| .525 | 3.25 | 400 |
| .616 | 2.93 | 300 |
| .675 | 2.75 | 250 |
| .746 | 2.57 | 200 |
| .835 | 2.38 | 150 |
| .946 | 2.17 | 100 |
| 1.09 | 1.95 | 50 |
| 1.29 | 1.71 | 0 |
| 公式 | 说明(结果) |
| =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) |