Chapter 7. 函式 (二):查詢與篩選7.4 查詢函式:XMATCH / XLOOKUP

7.4 查詢函式:XMATCH / XLOOKUP


XMATCH、XLOOKUP 基本上就是允許使用萬用字元、選擇搜尋順序的 MATCH、-LOOKUP,相較前兩節的函式更加靈活。

語法

  • XMATCH (搜尋準則, 搜尋範圍, [比對方式], [搜尋方式])
  • XLOOKUP (搜尋準則, 搜尋範圍, 結果範圍, [缺值], [比對方式], [搜尋方式])

輸入

  • 搜尋準則:欲搜尋的資料,必須是單一值。
  • 搜尋範圍:要在哪裡找,為單欄或單列的陣列或範圍。
  • 結果範圍:要輸出的範圍,大小與 搜尋範圍 的列數 / 欄數相同。
  • 缺值:找不到相符項目時要傳回的值,預設為 #N/A。
  • 比對方式:2 / 1 / 0 / -1,尋找的方式,預設為 0,意義分別如下:
    • 0:完全比對,同 MATCH 的「搜尋類型=0」
    • 1:完全比對,或尋找大於 搜尋準則 的最接近值。
    • -1:完全比對,或尋找小於 搜尋準則 的最接近值。
    • 2:使用萬用字元的尋找模式,即第 6.6 節說明的萬用字元。
  • 搜尋方式:1 / -1 / 2 / -2,尋找的順序,預設為 1,意義分別如下:
    • 1 / -1:從上往下找 / 從下往上找。
    • 2 / -2:用二分法來搜尋,搜尋範圍 分別需要遞增 / 遞減排序,用來節省搜尋時所需的運算效能,通常用於資料量較大時。

輸出

  • XMATCH:搜尋準則 在 搜尋範圍 中的第幾列 / 欄。
  • XLOOKUP:搜尋準則 在 搜尋範圍 中的第幾列 / 欄,輸出 結果範圍 的該列 / 欄,若 結果範圍 有多欄 / 列,則會輸出整欄 / 列。

以下說明這兩個函式最主要的使用時機為何:

  • 需要在未遞增 / 遞減的資料中比對:XMATCH / XLOOKUP 的比對方式不需要像 MATCH / -LOOKUP 一樣遞增或遞減排序,因此可以使用於數字但未排序的比對。
  • 需要使用萬用字元搜尋:例如無視商品規格的銷售記錄,例如商品名稱為「iPhone 15 - (顏色)」想要搜尋第一筆 iPhone  15 的銷售日期,可以使用 =XLOOKUP("iPhone 15 - (*)",商品名稱,銷售日期,,2) 完成。
  • 需要由下往上搜尋:延續上一點的例子,若要搜尋最近一筆的日期可將 搜尋方式 設為 -1 即可。

以上的說明相信應該相當清楚,在此就不用範例說明 XMATCH / XLOOKUP 的用法,若有興趣練習的同學不仿嘗試將第 7.2~7.3 節的練習改成使用 XMATCH / XLOOKUP 完成,確認是否已真的理解函式的用法。