VLOOKUP
全部顯示
全部隱藏
在表格數(shù)組的首列查找值,并由此返回表格數(shù)組當(dāng)前行中其他列的值。
VLOOKUP 中的 V 表示垂直方向。當(dāng)比較值位于需要查找的數(shù)據(jù)左邊的一列時(shí),可以使用 VLOOKUP,而不用 HLOOKUP。
語法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value為需要在表格數(shù)組 (數(shù)組:用于建立可生成多個(gè)結(jié)果或可對(duì)在行和列中排列的一組參數(shù)進(jìn)行運(yùn)算的單個(gè)公式。數(shù)組區(qū)域共用一個(gè)公式;數(shù)組常量是用作參數(shù)的一組常量。)第一列中查找的數(shù)值。Lookup_value 可以為數(shù)值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 將返回錯(cuò)誤值 #N/A。
Table_array為兩列或多列數(shù)據(jù)。請(qǐng)使用對(duì)區(qū)域的引用或區(qū)域名稱。table_array 第一列中的值是由 lookup_value 搜索的值。這些值可以是文本、數(shù)字或邏輯值。不區(qū)分大小寫。
Col_index_num為 table_array 中待返回的匹配值的列序號(hào)。Col_index_num 為 1 時(shí),返回 table_array 第一列中的數(shù)值;col_index_num 為 2,返回 table_array 第二列中的數(shù)值,以此類推。如果 col_index_num :
小于 1,VLOOKUP 返回錯(cuò)誤值 #VALUE!。
大于 table_array 的列數(shù),VLOOKUP 返回錯(cuò)誤值 #REF!。
Range_lookup為邏輯值,指定希望 VLOOKUP 查找精確的匹配值還是近似匹配值:
如果為 TRUE 或省略,則返回精確匹配值或近似匹配值。也就是說,如果找不到精確匹配值,則返回小于 lookup_value 的最大數(shù)值。
table_array 第一列中的值必須以升序排序;否則 VLOOKUP 可能無法返回正確的值。可以選擇“數(shù)據(jù)”菜單上的“排序”命令,再選擇“遞增”,將這些值按升序排序。有關(guān)詳細(xì)信息,請(qǐng)參閱默認(rèn)排序次序。
如果為 FALSE,VLOOKUP 將只尋找精確匹配值。在此情況下,table_array 第一列的值不需要排序。如果 table_array 第一列中有兩個(gè)或多個(gè)值與 lookup_value 匹配,則使用第一個(gè)找到的值。如果找不到精確匹配值,則返回錯(cuò)誤值 #N/A。
說明
在 table_array 第一列中搜索文本值時(shí),請(qǐng)確保 table_array 第一列中的數(shù)據(jù)沒有前導(dǎo)空格、尾隨空格、不一致的直引號(hào)(' 或 ")、彎引號(hào)(‘或“)或非打印字符。在上述情況下,VLOOKUP 可能返回不正確或意外的值。有關(guān)用于清除文本數(shù)據(jù)的函數(shù)的詳細(xì)信息,請(qǐng)參閱文本和數(shù)據(jù)函數(shù)。
在搜索數(shù)字或日期值時(shí),請(qǐng)確保 table_array 第一列中的數(shù)據(jù)未保存為文本值。否則,VLOOKUP 可能返回不正確或意外的值。有關(guān)詳細(xì)信息,請(qǐng)參閱將保存為文本的數(shù)字轉(zhuǎn)換為數(shù)字值。
如果 range_lookup 為 FALSE 且 lookup_value 為文本,則可以在 lookup_value 中使用通配符、問號(hào) (?) 和星號(hào) (*)。問號(hào)匹配任意單個(gè)字符;星號(hào)匹配任意字符序列。如果您要查找實(shí)際的問號(hào)或星號(hào)本身,請(qǐng)?jiān)谠撟址版I入波形符 (~)。
示例 1
本示例搜索大氣特征表的“密度”列以查找“粘度”和“溫度”列中對(duì)應(yīng)的值。(該值是在海平面 0 攝氏度或 1 個(gè)大氣壓下對(duì)空氣進(jìn)行測(cè)定的結(jié)果。)
1
2
3
4
5
6
7
8
9
10
A B C
密度 粘度 溫度
0.457 3.55 500
0.525 3.25 400
0.616 2.93 300
0.675 2.75 250
0.746 2.57 200
0.835 2.38 150
0.946 2.17 100
1.09 1.95 50
1.29 1.71 0
公式 說明(結(jié)果)
=VLOOKUP(1,A2:C10,2) 使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 B 列的值。(2.17)
=VLOOKUP(1,A2:C10,3,TRUE) 使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 C 列的值。(100)
=VLOOKUP(.7,A2:C10,3,FALSE) 使用精確匹配在 A 列中搜索值 0.7。因?yàn)?A 列中沒有精確匹配的值,所以返回一個(gè)錯(cuò)誤值。(#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE) 使用近似匹配在 A 列中搜索值 0.1。因?yàn)?0.1 小于 A 列中最小的值,所以返回一個(gè)錯(cuò)誤值。(#N/A)
=VLOOKUP(2,A2:C10,2,TRUE) 使用近似匹配搜索 A 列中的值 2,在 A 列中找到小于等于 2 的最大值 1.29,然后返回同一行中 B 列的值。(1.71)
示例 2
本示例搜索嬰幼兒用品表中的“貨品 ID”列,并在“成本”和“漲幅”列中查找與之匹配的值,以計(jì)算價(jià)格和測(cè)試條件。
1
2
3
4
5
6
A B C D
貨品 ID貨品成本漲幅
ST-340 童車 ¥145.6730%
BI-567 圍嘴 ¥3.5640%
DI-328 尿布¥21.4535%
WI-989 柔濕紙巾¥5.1240%
AS-469 吸出器 ¥2.5645%
公式 說明(結(jié)果)
= VLOOKUP("DI-328", A2

6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2

6, 4, FALSE))漲幅加上成本,計(jì)算尿布的零售價(jià)。(¥28.96)
= (VLOOKUP("WI-989", A2

6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%) 零售價(jià)減去指定折扣,計(jì)算柔濕紙巾的銷售價(jià)格。(¥5.73)
= IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "漲幅為 " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "成本低于 ¥20.00") 如果某一貨品的成本大于或等于 ¥20.00,則顯示字符串“漲幅為 nn%”;否則,顯示字符串“成本低于 ¥20.00”。(漲幅為 30%)
= IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "漲幅為: " & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "成本為 ¥" & VLOOKUP(A3, A2:D6, 3, FALSE))如果某一貨品的成本大于或等于 ¥20.00,則顯示字符串“漲幅為 nn%”;否則,顯示字符串“成本為 ¥n.nn”。(成本為 ¥3.56)
示例 3
本示例搜索員工表的 ID 列并查找其他列中的匹配值,以計(jì)算年齡并測(cè)試錯(cuò)誤條件。
1
2
3
4
5
6
7
A B C D E
ID姓氏名字職務(wù) 出生日期
1 李 小明 銷售代表12/8/1968
2 林 彩瑜 銷售部副總 2/19/1952
3 王 志東 銷售代表 8/30/1963
4 潘 金 銷售代表 9/19/1958
5 林 丹 銷售經(jīng)理 3/4/1955
6 蘇 術(shù)平 銷售代表7/2/1963
公式 說明(結(jié)果)
=INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1)) 針對(duì) 2004 財(cái)政年度,查找 ID 為 5 的員工的年齡。使用 YEARFRAC 函數(shù),以此財(cái)政年度的結(jié)束日期減去出生日期,然后使用 INT 函數(shù)將結(jié)果以整數(shù)形式顯示。(49)
=IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "未找到員工", VLOOKUP(5,A2:E7,2,FALSE)) 如果有 ID 為 5 的員工,則顯示該員工的姓氏;否則,顯示消息“未找到員工”。(林)
當(dāng) VLOOKUP 函數(shù)返回錯(cuò)誤值 #NA 時(shí),ISNA 函數(shù)返回值 TRUE。
=IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "未找到員工", VLOOKUP(15,A3:E8,2,FALSE)) 如果有 ID 為 15 的員工,則顯示該員工的姓氏;否則,顯示消息“未找到員工”。(未找到員工)
當(dāng) VLOOKUP 函數(shù)返回錯(cuò)誤值 #NA 時(shí),ISNA 函數(shù)返回值 TRUE。
=VLOOKUP(4,A2:E7,3,FALSE) & " " & VLOOKUP(4,A2:E7,2,FALSE) & "是" & VLOOKUP(4,A2:E7,4,FALSE) & "。" 對(duì)于 ID 為 4 的員工,將三個(gè)單元格的值連接為一個(gè)完整的句子。(潘金是銷售代表。)
注釋上例中的第一個(gè)公式使用的是 YEARFRAC 函數(shù)。如果該函數(shù)不可用并返回錯(cuò)誤 #NAME?,請(qǐng)安裝和加載“分析工具庫”加載宏。