首頁 / 公式 / XLOOKUP
查詢 Excel + Google Sheets

Excel XLOOKUP 函數

XLOOKUP 函數在範圍中搜尋值,並從另一範圍回傳對應結果——不必數欄位,也沒有 VLOOKUP 的脆弱。Excel 365、Excel 2021 與 Google Sheets 皆可使用。

XLOOKUP 語法與參數結構

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

多數精確比對只需前三個必要參數。請保持 lookup_array 與 return_array 高度(或寬度)一致。

1 lookup_value
必填

要尋找的值。可以是文字、數值、儲存格參照(如 E2)或另一個公式的計算結果。

2 lookup_array
必填

要搜尋 lookup_value 的單欄或單列範圍(例如 A2:A6)。

3 return_array
必填

要回傳資料的陣列或範圍(例如 C2:C6)。長度必須與 lookup_array 嚴格保持一致。

4 if_not_found
選填

找不到相符項目時回傳的備用值(例如 "Not found" 或 0)。若省略且找不到時,Excel 會回傳 #N/A。

5 match_mode
選填

比對模式設定:

  • 0 — 完全相符(預設值,最常用)
  • -1 — 完全相符;若無則回傳下一個較小的值(常用於階梯級距)
  • 1 — 完全相符;若無則回傳下一個較大的值
  • 2 — 萬用字元比對(支援 *、? 等)
6 search_mode
選填

搜尋方向與演算法:

  • 1 — 從第一項搜尋到最後一項(預設值)
  • -1 — 從最後一項反向搜尋到第一項(查詢最新一筆紀錄極佳)
  • 2 — 遞增二元搜尋(需先遞增排序)
  • -2 — 遞減二元搜尋(需先遞減排序)

Excel XLOOKUP 範例:依員工編號查薪資

A 欄是員工編號,B 欄是姓名,C 欄是薪資。E2 放要查的編號:E-102。

員工編號姓名薪資
E-101Ana72000
E-102Ben64000
E-103Chen81000
E-104Dia59000
E-105Eli77000
=XLOOKUP(E2, A2:A6, C2:C6, "Not found")

XLOOKUP 在 A2:A6 找到 E-102,從同一列的 C2:C6 回傳 64000。找不到該編號時回傳 Not found,而不是 #N/A。

如何在 Excel 中使用 XLOOKUP

  1. 確認查找值與搜尋範圍 — 先想清楚要找什麼(lookup_value,如 E2 的員工編號),以及這些值所在的欄或列(lookup_array,如 A2:A6)。
  2. 指向回傳結果的範圍 — 將 return_array 設為存放答案的範圍(如 C2:C6 的薪資欄),高度必須與 lookup_array 完全一致。
  3. 輸入公式並處理找不到的情況 — 輸入 =XLOOKUP(E2, A2:A6, C2:C6) 後按 Enter。可加上第四個參數 "Not found",讓查無資料時顯示友善文字而非 #N/A。

XLOOKUP 多條件查找

基本 XLOOKUP 一次只能比對一個值。若要同時套用兩個以上條件——例如找出某部門某員工的薪資——可將布林測試相乘,或把條件合併成單一鍵值:

方法一:布林相乘(推薦)

=XLOOKUP(1, (A2:A6=E2) * (B2:B6=F2), C2:C6, "Not found")

每個測試回傳 TRUE/FALSE,相乘後只有所有條件皆成立的列會是 1,XLOOKUP 便定位到該列。

方法二:字串串接

=XLOOKUP(E2&"|"&F2, A2:A6&"|"&B2:B6, C2:C6, "Not found")

用連接符(&)把條件與範圍合併成單一組合鍵。同樣技巧也適用於同時比對列與欄的雙向查找。

XLOOKUP 與 VLOOKUP 深度比較

XLOOKUP

可向左或向右任意查詢;無需計算欄位索引數值;預設為精確比對(不易踩坑);支援原生 not-found 備用值。

VLOOKUP

只能向右查詢;插入或刪除欄位易導致列索引錯亂壞掉;預設為近似比對(容易忘記填寫 FALSE / 0 精確比對標記)。

XLOOKUP 與 INDEX MATCH 比較

XLOOKUP

一個函數搞定,不需兩層組合;內建 if_not_found 備用值,不必再包 IFERROR;向左、向右、反向查找語法完全一致。

INDEX MATCH

支援所有 Excel 版本,包含沒有 XLOOKUP 的 2021 以前版本;用 INDEX 搭配列與欄兩個 MATCH 可自然實現雙向查找。

常見錯誤與注意事項

  • #N/A — 無精確相符項目;請檢查尾隨空白、前後空格或文字/數字型別不一致。
  • #VALUE! — lookup_array 與 return_array 的列數或欄數大小不一致。
  • 向下拖曳結果錯誤 — 填滿多列前請務必使用 $ 鎖定查詢範圍(如 $A$2:$A$6)。

XLOOKUP 入門實戰練習

直接在下方鎖定微型表中敲入公式驗證,獲得毫秒級判題反饋,或開啟獨立全屏頁面練習。

開啟獨立練習題頁 →
題目說明
提示 0/4
官方解法 3
–
測試案例
1
2
3
重設
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在載入互動式試算表...
正在準備儲存格資料與公式求解引擎
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。

相關實戰練習推薦

在真實業務情境的微型試算表中,嘗試更多函數組合與邏輯挑戰,加深肌肉記憶。

常見問題

什麼是 Excel 的 XLOOKUP 函數?

XLOOKUP 是 Excel 365/2021 與 Google Sheets 中的查找函數:在查找範圍(lookup_array)中搜尋指定值,並從回傳範圍(return_array)的相同位置取回結果,可同時取代 VLOOKUP 與 HLOOKUP。

XLOOKUP 基本語法是什麼?

使用 =XLOOKUP(lookup_value, lookup_array, return_array)。前三個參數已涵蓋多數精確比對需求。

XLOOKUP 與 VLOOKUP 有什麼差別?

XLOOKUP 可向左或向右查找、無需欄位索引、預設精確比對,並內建 if_not_found 參數;VLOOKUP 只能向右查找,插入或搬移欄位時容易出錯。

XLOOKUP 比 VLOOKUP 更好嗎?

對多數現代工作簿來說是的。XLOOKUP 可向左或向右查、無需欄位索引、預設精確比對,並支援自訂找不到時的訊息。

XLOOKUP 與 INDEX MATCH 該用哪個?

XLOOKUP 更簡單——一個函數就有找不到時的備用值。若需要支援 2021 以前的舊版 Excel,或需要經典的雙向查找(同時比對列與欄),INDEX MATCH 仍是首選。

Google Sheets 支援 XLOOKUP 嗎?

支援。Google Sheets 使用與 Excel 相同的六參數語法,包含 if_not_found、match_mode 與 search_mode。

XLOOKUP 怎麼做多條件查找?

用布林相乘:=XLOOKUP(1, (A2:A6=E2)*(B2:B6=F2), C2:C6);或用串接組合鍵:=XLOOKUP(E2&F2, A2:A6&B2:B6, C2:C6)。

為什麼 XLOOKUP 會出現 #N/A?

通常是沒有精確相符。請檢查尾隨空白、文字與數字型別不一致,或確認兩個陣列高度相同。