動態陣列參照函數(8) - XMATCH

Excel 365新增動態參照函數XMATCH,查找相對位置的極限級函數。

Excel的MATCH函數是使用極為廣泛、好用的查找函數之一,也經常與INDEX函數一起搭配,其查詢功力與彈性甚至更勝於另一更知名的查詢函數VLOOKUP,但是,Excel 365 的XMATCH函數,除了可以執行同樣的查找功能外,還能支援更多元的比對模式、反向查詢能力,以及提供局部內容匹配的通用字元。更重要的是,對於查找範圍(lookup_array)並不需要事先排序的特性,便立即打掛了MATCH函數喔!為了比較與展現出XMATCH的優點,我們就同步來回顧一下MATCH函數與介紹XMATCH的運用及兩者的差異唄!

MATCH函數的語法為:

=MATCH(lookup_value, lookup_array, [match_type])

其意義是將想要查找的資料(lookup_value)與查詢陣列(lookup_array)裡的元素進行比對,至於比對的模式則是由函數裡的第三個參數(match_type)來決定。基本上,此參數有1、0與-1等三種選擇,分別代表的意義如下

  • 1, 尋找小於或等於lookup_value的最大值。lookup_array必須以遞增順序排序。
  • 0, 尋找完全等於lookup_value的第一個值。lookup_array可以是任何順序。
  • -1, 尋找大於或等於lookup_value的最大值。lookup_array必須以遞減順序排序。

語法

XMATCH函數的參數比MTACH函數多了一項,其語法為:

=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

參數:

  • Lookup_value – 要進行查找的值。
  • lookup_array – 要在哪一個資料範圍或陣列裡進行查找。
  • [match_mode] – 此參數為資料查找的比對模式,有0、-1、1、2等四種選項。若未設定此參數,則預設為0,代表要查找完全相符的資料項目;若設定此參數為-1,代表要查找完全相符或下一個較小的資料項目;若設定為1,則代表要查找完全相符或下一個較大的資料項目;若是設定為2,則表示要查找符合萬用字元(*或?)比對的資料項目。
  • [search_mode] – 此參數為資料查找模式的設定,計有1、-1、2、-2等四種選項。若未設定此參數,則預設為1,代表要從第一搜尋到最後;若設定此參數為-1,代表要從最後搜尋到第一;若設定為2,則代表要進行二進位搜尋(遞增排序);若是設定為-2,則代表要進行二進位搜尋(遞減排序)。

兩函數的前三個參數之功能與意義都一樣,但第三個參數的設定值些許差異,使用上應該特別注意。其中,MATCH函數的第三個參數稱之為[match_type],有1、0與-1等三種選擇,表示資料進行查找時的比對型態,若設定為「0」表示查詢的資料必須是完全符合才算找到資料;「1」是尋找小於或等於lookup_value的最大值,並且lookup_array必須以遞增順序排序;「-1」則是尋找大於或等於lookup_value的最大值。lookup_array必須以遞減順序排序。而XMATCH函數的第三個參數稱之為[match_mode],有1、0、-1與2等四種選擇,用法與MATCH函數的[match_type]相同,但lookup_array的內容並不需要排序,而新增的選項「2」是代表查找符合萬用字元的資料。
XMATCH函數特有的第四個參數稱之為[search_mode]是料查找模式的設定,有1、0、-1與2等四種選擇,用法與XLOOKUP函數的第六個參數相同。參數頗多,從文字上的理解並不容易,後續的實例說明會為您一一解讀。

透過下列各實例說明與範例實作,與大家分享XMATCH函數的學習與運用: