XLOOKUP 函數

Applies To
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel for iPhone Excel for Android tablets Excel for Android phones

使用 XLOOKUP 函數在表格或以列為主的範圍中尋找項目。 例如,按零件編號查找汽車零件的價格,或根據員工 ID 查找員工姓名。 使用 XLOOKUP,您就可以在一欄中尋找搜尋字詞,並從另一欄中相同列傳回結果,而不論傳回欄位於哪一邊。

注意

XLOOKUP 不適用於 Excel 2016 和 Excel 2019。 不過,如果活頁簿是由其他人使用較新版本的 Excel 所建立,您可能會遇到在 Excel 2016 或 Excel 2019 中使用包含 XLOOKUP 函數的情況。

語法

XLOOKUP 函數會搜尋範圍或陣列,然後傳回與它找到的第一個相符項目對應的項目。 如果不存在相符項目,則 XLOOKUP 可以傳回最接近 (大約相符) 。 

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

引數 描述
lookup_value
必要*
要搜尋的值

*如果省略,XLOOKUP 會傳回它在 lookup_array 中找到的空白儲存格。
lookup_array
必要
要搜尋的陣列或範圍
return_array
必要
要傳回的陣列或範圍
[if_not_found]
選擇性
如果找不到有效的相符項目,請傳回您提供的 [if_not_found] 文字。
如果找不到有效的相符項目,且遺失 [if_not_found],則會傳回 #N/A
[match_mode]
選擇性
指定相符類型:
0 - 完全相符。 如果找不到,請傳回 #N/A。 這是預設值。
-1 - 完全相符。 如果找不到,請退回下一個較小的項目。
1 - 完全相符。 如果找不到,請傳回下一個較大的項目。
2: 萬用字元比對,其中 *、?和 ~ 具有特殊意義
[search_mode]
選擇性
指定要使用的搜尋模式:
1 - 從第一個項目開始執行搜尋。 這是預設值。
-1 - 從最後一個項目開始執行反向搜尋。
2 - 執行依賴於lookup_array以 遞增 順序排序的二進位搜尋。 如果未排序,將會傳回無效結果。
-2: 執行二進位搜尋,依賴 lookup_array 以遞減順序排序搜尋。 如果未排序,將會傳回無效結果。

範例

範例 1 使用 XLOOKUP 在某個範圍內查詢國家/地區名稱,然後傳回其電話國家/地區代碼。 它包含 lookup_value (儲存格 F2) 、 lookup_array (範圍 B2:B11) ,以及 return_array (範圍 D2:D11) 引數。 它不包含 match_mode 引數,因為 XLOOKUP 預設會產生完全相符的項目。

XLOOKUP 函式可用來根據員工識別碼傳回員工名稱和部門的範例。公式為 =XLOOKUP (B2,B5:B14,C5:C14)

注意

XLOOKUP 使用查閱陣列和傳回陣列,而 VLOOKUP 則使用單一表格陣列後面接著欄索引號碼。 在此情況下,同等的 VLOOKUP 公式為: =VLOOKUP (F2,B2:D11,3,FALSE)

———————————————————————————

範例 2 根據員工識別碼來查詢員工資訊。 與 VLOOKUP 不同,XLOOKUP 可以傳回包含多個項目的陣列,因此單一公式可以同時傳回儲存格 C5:D14 中的員工名稱和部門。

用於根據員工 IDt 傳回員工名稱和部門的 XLOOKUP 函式範例。公式為:=XLOOKUP (B2,B5:B14,C5:D14,0,1)

———————————————————————————

範例 3 會在上述範例中新增 if_not_found 引數。

XLOOKUP 函式用來根據具有 if_not_found 引數的員工識別碼傳回員工名稱和部門的範例。公式為 =XLOOKUP (B2,B5:B14,C5:D14,0,1,找不到員工)

———————————————————————————

範例 4 在 C 欄中尋找儲存格 E2 中輸入的個人收入,並在 B 欄中找到相符的稅率。它會將 if_not_found 引數設定 (如果找不到任何內容,則傳回 0 零) 。 match_mode引數設1為 ,表示函數會尋找完全相符的項目,如果找不到,則傳回下一個較大的項目。 最後, search_mode 引數設定為 1,表示函數會從第一個項目搜尋到最後一個項目。

用於根據最大收入傳回稅率的 XLOOKUP 函數之影像。這是大約相符值。公式為:=XLOOKUP (E2,C2:C7,B2:B7,1,1)

注意

XARRAY 的 lookup_array 欄位於 return_array 欄的右側,而 VLOOKUP 只能從左至右查看。

———————————————————————————

範例 5 使用巢狀 XLOOKUP 函數來執行垂直和水平比對。 它會先在 B 欄中尋找毛 ,然後尋找資料表頂列中的 Qtr1 (範圍 C5:F5) ,最後傳回兩者交集處的值。 這類似於搭配使用 INDEXMATCH 函數。

秘訣

您也可以使用 XLOOKUP 取代 HLOOKUP 函數。

用於透過巢狀 2 個 XLOOKUP 從表格傳回水平資料的 XLOOKUP 函數之影像。公式為:=XLOOKUP (D2,$B 6:$B 17,XLOOKUP ($C 3,$C 5:$G 5,$C 6:$G 17) )

注意

儲存格 D3:F3 中的公式是: =XLOOKUP (D2,$B 6:$B 17,XLOOKUP ($C 3,$C 5:$G 5,$C 6:$G 17) )

———————————————————————————

範例 6 使用 SUM 函數及兩個巢狀 XLOOKUP 函數,來加總兩個範圍之間的所有值。 在這種情況下,我們要加總 grapes、bananas 的值,並包含介於兩者之間的 pears。

搭配 SUM 使用 XLOOKUP 來加總落在兩個選項之間的值範圍

儲存格 E3 中的公式為: =SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))

運作方式為何? XLOOKUP 會傳回一個範圍,因此計算時公式最後看起來像這樣: =SUM($E$7:$E$9)。 您可以選取具有類似此公式的 XLOOKUP 公式的儲存格,然後選取 [ 公式]>[公式稽核>] [評估公式],然後選取 [ 評估 ] 以逐步執行計算,您可以自行查看其運作方式。 

注意

感謝 Microsoft Excel MVP Bill Jelen 建議此範例。

———————————————————————————