跳轉到

XLOOKUP

類別: MS Excel 相容函數 · 原生導入: Excel 2021

在範圍或陣列中尋找相符項,並從第二個範圍或陣列傳回對應項。

語法

=XLOOKUP(搜尋值, 搜尋陣列, 傳回陣列, [找不到時], [比對模式], [搜尋模式])

引數

引數 必要 說明
搜尋值 必要 要搜尋的值
搜尋陣列 必要 要搜尋的範圍/陣列
傳回陣列 必要 要傳回的範圍/陣列
找不到時 選用 無相符時傳回的值(選用)
比對模式 選用 0 精確(預設),-1 較小值,1 較大值,3 正則
搜尋模式 選用 1 從前到後(預設),-1 從後到前

傳回

以陣列傳回相符位置在傳回範圍中對應的列(垂直搜尋)或欄(水平搜尋),在支援動態陣列的 Excel 中會溢出。若省略範圍、陣列為空、或沒有相符項目且未提供替代值則傳回 #N/A;若相符位置超出傳回範圍則傳回 #REF!;內部錯誤則傳回 #VALUE!。

範例

公式 結果 說明
=XLOOKUP("b",{"a";"b";"c"},{10;20;30}) 20 完全相符搜尋
=XLOOKUP(2,{1;2;3},{10,11;20,21;30,31}) {20,21} 溢出整個相符列
=XLOOKUP(9,{1;2;3},{10;20;30},"none") none 不相符時的替代值
=XLOOKUP({2;3},{1;2;3},{"a";"b";"c"}) {b;c} 查閱值陣列 → 逐元素查閱
=XLOOKUP("^B",{"apple";"Banana";"cherry"},{1;2;3},"none",3) 2 正則比對(match_mode 3)
=XLOOKUP("(?i)^b",{"apple";"Banana";"cherry"},{1;2;3},"none",3) 2 前綴 (?i) 忽略大小寫

備註

  • 不支援 match_mode 2(萬用字元)與 search_mode 2/-2(二進位搜尋)。
  • match_mode 3(正則)會將搜尋值解讀為正則模式,尋找文字儲存格中包含該模式相符的項目(部分比對,REGEXTEST 方式)— 模式編號與 Microsoft 365 原生 XLOOKUP 的 2024 年新功能相同。預設區分大小寫;在模式前加上 (?i) 可忽略大小寫(與原生用法相同)。非文字儲存格不會相符;搜尋值不是文字、正則無效、或與 search_mode 2/-2(二進位搜尋)組合時傳回 #VALUE!。沒有相符時仍會套用找不到時的值。
  • 正規表示式語法為 std::wregex 的 ECMAScript(可能與原生 365 的 PCRE2 略有差異)。
  • 若查閱範圍只有 1 欄則進行垂直搜尋,否則以第一列為對象進行水平搜尋。
  • 查閱值指定為陣列時會逐元素查閱,結果以與查閱值相同的形狀溢出 — 傳回範圍為多欄時,各元素結果會降級為第一個值(與原生一致);錯誤的查閱值會傳回該錯誤。
  • 相關函數:XMATCH、FILTER。
  • 支援: Excel 2010+。在沒有原生函數的舊版 Excel 中以 XLOOKUP 原名註冊(可直接替換),在已內建原生函數的新版 Excel 中則註冊為 EG.XLOOKUP