套用到
Microsoft 365 Excel Excel 網頁版 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 (第三個參數) 的近似匹配值。

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 像素,然後點擊「 Wrap Text (Home 標籤,對 群組) 」。

密度

黏度

溫度

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 像素,然後點擊「 Wrap Text (Home 標籤,對 群組) 」。

輪軸

軸承

螺栓

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 像素,然後點選「 Wrap Text (Home 標籤,對 群組) 」。

發票

城市

發票日期

最早發票 (依城市) 與日期

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

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。