在Excel中,VLOOKUP函數的功能為在表格或數值數組的首列查找指定的數值,并由此返回表格或數組當前行中指定列處的數值。當比較值位于數據表首列時,可以使用函數 VLOOKUP 代替函數 HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 為需要在數組第一列中查找的數值。Lookup_value 可以為數值、引用或文本字符串。
Table_array 為需要在其中查找數據的數據表。可以使用對區(qū)域或區(qū)域名稱的引用,例如數據庫或列表。
如果 range_lookup 為 TRUE,則 table_array 的第一列中的數值必須按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否則,函數 VLOOKUP 不能返回正確的數值。如果 range_lookup 為 FALSE,table_array 不必進行排序。
通過在“數據”菜單中的“排序”中選擇“升序”,可將數值按升序排列。
Table_array 的第一列中的數值可以為文本、數字或邏輯值。
文本不區(qū)分大小寫。
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。
該示例使用 1 個大氣壓的空氣值。
|
A |
B |
C |
1 |
密度 |
粘度 |
溫度 |
2 |
0.457 |
3.55 |
500 |
3 |
0.525 |
3.25 |
400 |
4 |
0.616 |
2.93 |
300 |
5 |
0.675 |
2.75 |
250 |
6 |
0.746 |
2.57 |
200 |
7 |
0.835 |
2.38 |
150 |
8 |
0.946 |
2.17 |
100 |
9 |
1.09 |
1.95 |
50 |
10 |
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(0.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) |