MATCH函數(shù)是比較常用的函數(shù)。與VLOOKUP等函數(shù)作用類似,都是根據(jù)給定條件進行查找的。區(qū)別是VLOOKUP函數(shù)可以返回需要的值,而MATCH函數(shù)則返回匹配值的索引號。 MATCH函數(shù)的作用是根據(jù)查找值在查找區(qū)域中進行匹配,如果匹配成功,并返回匹配項在查找區(qū)域中的索引號;如果匹配成功多項,返回第一個匹配項的索引號;如果匹配不成功,返回錯誤值#N/A。 語法如下: MATCH(查找值,查找區(qū)域,匹配模式) 其中,
這里有兩個要注意的地方:
下面是MATCH函數(shù)的一些示例。 示例1:精確匹配 當匹配模式參數(shù)為0時,MATCH使用精確匹配: =MATCH(E2,B3:B11,0) 下面是結果: 精確匹配時不要求查找區(qū)域的順序。 示例2:近似匹配 當匹配模式參數(shù)是1時,采用近似匹配。返回小于等于查找值的最大值: =MATCH(E2,B3:B11,1) 返回結果如下: 在這個場景下,查找區(qū)域必須是升序排列。 當匹配模式參數(shù)是-1時,采用近似匹配。返回大于或等于查找值的最小值: =MATCH(E2,B3:B11,-1) 結果如下: 示例3:返回某個值的開始和結束索引號 這是一個比較經(jīng)典的應用,我們有時需要在一列數(shù)據(jù)中,找到起始位置和結束位置,這個需求可以通過MATCH函數(shù)來解決: 這里有一個條件:需要將查找區(qū)域升序排列。(這是自然滿足的,因為我們要找某個值的起始和結束位置) 然后通過精確匹配: =MATCH(E2,B2:B11,0) 找到起始位置。 通過近似匹配: =MATCH(E2,B2:B12,1) 找到結束位置。 示例4:MATCH函數(shù)和INDEX函數(shù)配合 這也是經(jīng)典的應用場景,用來解決“反向查找問題: 首先通過MATCH公式根據(jù)數(shù)量找到在C3:C11中的索引號,然后根據(jù)索引號用INDEX函數(shù)在B3:B11中返回正確的類型。 關于INDEX函數(shù)用法,請參見這篇文章。 示例5:大小寫敏感匹配 MATCH函數(shù)是大小寫不敏感的。但是我們可以通過MATCH函數(shù)和EXACT函數(shù)結合,進行大小寫敏感的查找: 對這個公式的理解需要了解EXACT函數(shù)和數(shù)組公式。 示例6:支持數(shù)組 MATCH函數(shù)支持在數(shù)組中進行查找: =MATCH(120,{100,110,120,130,140,150},0) 這個公式返回3。 XMATCH函數(shù)是Excel中的新函數(shù),在Office 365中的Excel以及網(wǎng)頁版Excel和Excel 2021中可以使用。 這個函數(shù)可以看作是MATCH函數(shù)的升級版函數(shù),完全覆蓋MATCH函數(shù)的功能,并且更為強大。 XMATCH函數(shù)和MATCH函數(shù)的關系,正如VLOOKUP函數(shù)和XLOOKUP函數(shù)的關系,升級的方向都一樣。 XMATCH函數(shù)的語法如下: XMATCH(查找值,查找區(qū)域,匹配模式,搜索模式) 其中,
上述匹配模式和搜索模式跟XLOOKUP函數(shù)中的同名參數(shù)取值和作用是一模一樣的。 XMATCH函數(shù)不難理解,尤其是你熟悉了MATCH函數(shù)和XLOOKUP函數(shù)之后。但是,XMATCH函數(shù)中匹配模式取值-1和1時與MATCH函數(shù)取值-1和1時作用正好相反: 我們前面介紹了MATCH函數(shù)返回起始和結束索引號的方法。 這個問題使用XMATCH要更加簡單一些: 公式: =XMATCH(H3,B3:B11,0,1) 返回起始位置。 公式: =XMATCH(H3,B3:B11,0,-1) 返回結束位置。 當然,這個仍然要求查找區(qū)域必須排序。但是,這并不是XMATCH函數(shù)的要求,而是場景的要求。因為如果相同的值不排在一起的話,起始位置和結束位置沒什么意義。 |
|