使用 VLOOKUP、INDEX 或 MATCH 尋找值

Microsoft 365 可協助您充分利用時間

立即訂閱

提示: 請嘗試使用新的XLOOKUPXMATCH函數,改良了本文所述的函數版本。 這些新函數在任何方向上都能正常運作,而且預設會傳回完全符合的功能,讓它們比前置任務更容易且更方便使用。

假設您有一個 office 位置編號清單,而您需要知道哪些員工是在每個辦公室中。 試算表很龐大,所以您可能會認為它是一個挑戰性的工作。 使用 lookup 函數實際上相當簡單。

VLOOKUPHLOOKUP函數(搭配INDEXMATCH)是 Excel 中一些最實用的功能。

附註: Excel 中已不再提供查閱嚮導功能。

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

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

在這個範例中,B2 是第一個引數,即函數需要使用的資料元素。 若是 VLOOKUP,這個第一個引數是您要尋找的值。 這個引數可以是儲存格參照,或固定值(例如 "smith" 或21000)。 第二個引數是儲存格範圍(C2-: E7),用來搜尋您要尋找的值。 第三個引數是包含您要搜尋之值的儲存格範圍中的資料行。

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

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

VLOOKUP 函數的常見用法

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

當您對 VLOOKUP 感到舒適時,HLOOKUP 函數同樣容易使用。 您輸入相同的引數,但它會在列中搜尋,而不是在欄中搜尋。

使用索引與 MATCH,而不是 VLOOKUP

使用 VLOOKUP 有一些限制: VLOOKUP 函數只能從左至右查閱值。 這表示包含您要查閱之值的資料行,必須放在包含傳回值的資料行的左邊。 現在,如果您的試算表不是以這種方式建立,那麼請不要使用 VLOOKUP。 改為使用 INDEX 和 MATCH 函陣列合。

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

使用 INDEX 和 MATCH 來查閱值

如需更多使用索引與相符的範例,請參閱Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/帳單 Bill jelen、Microsoft MVP 一文。

小試身手

如果您想要先試用查閱函數,然後再使用自己的資料進行嘗試,以下是一些範例資料。

在工作中使用 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 函數一起使用,以傳回最早的發票編號及其對應的日期,以供五個城市。 因為日期會以數值的形式傳回,所以我們使用 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

Dallas

4/25/12

3346

Dallas

4/28/12

3372

Dallas

5/1/12

3414

Dallas

5/1/12

3451

達拉斯

5/2/12

3467

Dallas

5/2/12

3474

Dallas

5/4/12

3490

Dallas

5/5/12

3503

達拉斯

5/8/12

3151

紐奧良

4/9/12

3438

紐奧良

5/2/12

3471

紐奧良

5/4/12

3160

Tampa

4/18/12

3328

Tampa

4/26/12

3368

Tampa

4/29/12

3420

Tampa

5/1/12

3501

坦帕

5/6/12

請參閱

快速參考卡: VLOOKUP 複習

查閱與參照函數(參照)

使用 VLOOKUP 函數中的 table_array 引數

需要更多協助?

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×