使用 VLOOKUP、INDEX 或 MATCH 尋找值

Applies To
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

秘訣

請嘗試使用新的 XLOOKUPXMATCH 函數,這是本文所述函數的改良版本。 這些新函數可以朝任何方向工作,並預設會傳回完全符合的項目,這使得它們比前代函數更容易、更方便地使用。

假設您有一份辦公室位置號碼列表,並且您需要知道每個辦公室有哪些員工。 電子表格很大,因此您可能認為這是一項具有挑戰性的任務。 使用查找功能實際上很容易做到。

VLOOKUPHLOOKUP 函數以及 INDEXMATCH 是 Excel 中一些最實用的函數。

注意

Excel 已不再提供查閱精靈功能。

以下是如何使用 VLOOKUP 的範例。

=VLOOKUP(B2,C2:E7,3,TRUE)

在此範例中,B2 是第一個 引數,也是函數運作所需的資料元素。 若是 VLOOKUP,第一個引數是您要尋找的值。 此引數可以是儲存格參照,或像是 “smith” 或 21,000 等固定值。 第二個引數是用來搜尋您要尋找之值的儲存格範圍 C2-:E7。 第三個引數是該儲存格範圍中包含您要尋找之值的欄。

第四個引數為選用。 輸入 TRUE 或 FALSE。 如果您輸入 TRUE,或將引數留白,函數會傳回您在第一個引數中指定的大約符合值。 如果您輸入 FALSE,則函數會符合第一個引數提供的值。 換句話說,將第四個引數保留空白或輸入 TRUE,可提供您更大的彈性。

此範例顯示函數如何運作。 當您 (第一個引數) 在儲存格 B2 中輸入值時,VLOOKUP 會搜尋範圍 C2:E7 (第二個引數) 的儲存格,並傳回範圍中第三欄 E 欄 (第 3 個引數) 中最接近的近似相符項目。

VLOOKUP 函數的常見用法

第四個引數是空的,因此函數會傳回大約相符值。 如果未傳回,您必須輸入欄 C 或 D 的其中一個值以取得結果。

如果您已經熟悉 VLOOKUP 時,HLOOKUP 函數也同樣容易使用。 您輸入相同的引數,但搜尋的是列而不是欄。

使用 INDEX 和 MATCH 代替 VLOOKUP

使用 VLOOKUP 有特定限制:VLOOKUP 函數只能從左到右查詢值。 這表示包含您要查閱之值的欄應該一律位於包含傳回值欄的左側。 現在,如果您的試算表不是以這種方式建立,請勿使用 VLOOKUP。 請改用 INDEX 和 MATCH 函數組合。

此範例顯示一份小型清單,其中包含我們所要搜尋的值 (芝加哥),但這並非位於最左邊的欄。 因此,我們無法使用 VLOOKUP。 我們將改用 MATCH 函數在範圍 B1:B11 中尋找「芝加哥」。 我們在列 4 中找到該值。 接著,INDEX 函數會將該值作為查閱引數,然後在第 4 欄 (欄 D) 中尋找芝加哥的人口。 所使用的公式顯示於儲存格 A14 中。

使用 INDEX 和 MATCH 來查閱值

小試身手

如果您想要先試驗查閱函式,再使用自己的資料,以下是一些範例資料。

工作上的 VLOOKUP 範例

將下列資料複製到空白試算表。

秘訣

將資料貼到 Excel 之前,請將欄 A 到 C 的欄寬設定為 250 像素,然後按一下 [常用] 索引標籤、[對齊方式] 群組) ([自動換行]。

密度 黏度 溫度
0.457 3.55 500
0.525 3.25 400
0.606 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
公式 描述 結果
=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(0.7,A2:C10,3,FALSE) 在 A 欄中尋找完全符合 0.7 的值。因為 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 的值,在 A 欄中找到一個小於或等於 2 的最大值 (1.29),再傳回 B 欄中同一列的值。 1.71

HLOOKUP 範例

複製這個資料表中的所有儲存格,並貼到 Excel 空白工作表的 A1 儲存格中。

秘訣

將資料貼到 Excel 之前,請將欄 A 到 C 的欄寬設定為 250 像素,然後按一下 [常用] 索引標籤、[對齊方式] 群組) ([自動換行]。

輪軸 軸承 螺栓
4 4 9
5 7 10
6 8 11
公式 描述 結果
=HLOOKUP("輪軸", A1:C4, 2, TRUE) 在列 1 中查詢 "輪軸",從同一欄 (欄 A) 的列 2 傳回值。 4
=HLOOKUP("軸承", A1:C4, 3, FALSE) 在列 1 中查詢 "軸承",從同一欄 (欄 B) 的列 3 傳回值。 7
=HLOOKUP("B", A1:C4, 3, TRUE) 在列 1 中查詢 "B",從同一欄的列 3 傳回值。 由於找不到與 "B" 完全相符的項目,因此使用列 1 中小於 "B" 的最大值:欄 A 中的 "輪軸"。 5
=HLOOKUP("螺栓", A1:C4, 4) 在列 1 中查詢 "螺栓",從同一欄 (欄 C) 的列 4 傳回值。 11
=HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE) 在三列的常數陣列中查詢數字 3,並從同一欄 (在此案例中為第三欄) 的列 2 傳回值。 常數陣列中有三列的值,每一列均以分號 (;) 區隔。 由於在列 2 找到 "c",而在同一欄是 3,因此會傳回 "c"。 c

INDEX 和 MATCH 範例

最後一個範例一起使用 INDEX 和 MATCH 函數,以傳回五個城市中每個城市的最早發票號碼及其對應日期。 因為日期會以數值的形式傳回,所以我們使用 TEXT 函數將其格式設定為日期。 實際上,INDEX 函數會使用 MATCH 函數的結果作為引數。 INDEX 和 MATCH 函數的組合在每個公式中會有兩次的運用——首先用於傳回發票編號,再用於傳回日期。

複製這個資料表中的所有儲存格,並貼到 Excel 空白工作表的 A1 儲存格中。

秘訣

將資料貼到 Excel 之前,請將欄 A 到 D 的欄寬設定為 250 像素,然後按一下 [常用] 索引標籤、[對齊方式] 群組) ([自動換行]。

發票 城市 發票日期 最早發票 (依城市) 與日期
3115 亞特蘭大 4/7/12 ="亞特蘭大 = "&INDEX($A$2:$C$33,MATCH("亞特蘭大",$B$2:$B$33,0),1)& ", 發票日期: " & TEXT(INDEX($A$2:$C$33,MATCH("亞特蘭大",$B$2:$B$33,0),3),"m/d/yy")
3137 亞特蘭大 4/9/12 ="奧斯丁 = "&INDEX($A$2:$C$33,MATCH("奧斯丁",$B$2:$B$33,0),1)& ", 發票日期: " & TEXT(INDEX($A$2:$C$33,MATCH("奧斯丁",$B$2:$B$33,0),3),"m/d/yy")
3154 亞特蘭大 4/11/12 ="達拉斯 = "&INDEX($A$2:$C$33,MATCH("達拉斯",$B$2:$B$33,0),1)& ", 發票日期: " & TEXT(INDEX($A$2:$C$33,MATCH("達拉斯",$B$2:$B$33,0),3),"m/d/yy")
3191 亞特蘭大 4/21/12 ="紐奧良 = "&INDEX($A$2:$C$33,MATCH("紐奧良",$B$2:$B$33,0),1)& ", 發票日期: " & TEXT(INDEX($A$2:$C$33,MATCH("紐奧良",$B$2:$B$33,0),3),"m/d/yy")
3293 亞特蘭大 4/25/12 ="坦帕 = "&INDEX($A$2:$C$33,MATCH("坦帕",$B$2:$B$33,0),1)& ", 發票日期: " & TEXT(INDEX($A$2:$C$33,MATCH("坦帕",$B$2:$B$33,0),3),"m/d/yy")
3331 亞特蘭大 4/27/12
3350 亞特蘭大 4/28/12
3390 亞特蘭大 5/1/12
3441 亞特蘭大 5/2/12
3517 亞特蘭大 5/8/12
3124 奧斯丁 4/9/12
3155 奧斯丁 4/11/12
3177 奧斯丁 4/19/12
3357 奧斯丁 4/28/12
3492 奧斯丁 5/6/12
3316 達拉斯 4/25/12
3346 達拉斯 4/28/12
3372 達拉斯 5/1/12
3414 達拉斯 5/1/12
3451 達拉斯 5/2/12
3467 達拉斯 5/2/12
3474 達拉斯 5/4/12
3490 達拉斯 5/5/12
3503 達拉斯 5/8/12
3151 紐奧良 4/9/12
3438 紐奧良 5/2/12
3471 紐奧良 5/4/12
3160 坦帕 4/18/12
3328 坦帕 4/26/12
3368 坦帕 4/29/12
3420 坦帕 5/1/12
3501 坦帕 5/6/12

另請參閱

快速參考卡:VLOOKUP 進修課程

查閱與參照函數 (參照)

在 VLOOKUP 函數中使用 table_array 引數

開始在網頁上免費使用 Excel