今天我們來聊一聊另外一個家族——查詢家族!說起查詢家族,相信大家首先想到的就是VLOOKUP函數。這位大哥打拼沙場多年,早已名揚萬里!相信接觸過Excel的小夥伴都多少略有耳聞。然而今天我們要說的是它身邊得力小弟——MATCH函數!
這個小弟呀,雖然單拎出來能力不咋的,但是跟著大哥組隊,那效果可是槓槓的!
我們先來認識認識他吧
MATCH是查詢定位函數,它返回的並不是資料本身,而是該資料在單列或單行中的位置。類似於排隊報數,站在第幾個,MATCH就報幾號!(注意:它只支援單列或單行資料查詢哦~)
函數結構:MATCH(找啥,在哪兒找[單行或單列],查詢型別)
查詢型別:3種。分別用0、1、-1代表。0表示精確查詢,1表示升序查詢,-1表示降序查詢。
1.精確查詢
舉個栗子
我們想知道「張三」在「姓名」這列區域排第幾位。
公式:
=MATCH(B3,B$2:B$8,0)
公式解析:
找啥:找「張三」,所以是B3單元格
在哪兒找:在姓名列B2:B8中找。為了防止向下填充公式姓名列區域變動,需要用$將它固定住,即B$2:B$8。
查詢型別:0表示精確查詢。精確查詢不需要排序。
2.升序查詢
升序查詢就是查詢小於等於查詢值的最大值然後返回其所在位置。要求資料必須升序排列。
同樣舉個栗子
我們想知道不大於60的有幾個。
首先對成績按升序進行排列。
然後在D3中輸入公式:=MATCH(60,B20:B40,1)
確定後就得到了人數8人。很顯然升序排列後,返回的是小於等於60的最後一個數值的位置數;也可以理解為統計了凡是不大於60的包括所有等於60的數值的個數。
3.降序查詢
降序查詢就是查詢大於等於查詢值的最小值然後返回其所在位置。要求必須降序排列。
同樣舉個栗子
我們想知道不小於60的有幾個。接著上面的,首先降序排列資料。
然後在E3中輸入公式:=MATCH(60,B20:B40,-1)
確定後得到不小於60的有14人。
得到兩個很顯然的結果:
(1)降序後,升序查詢就出錯了。所以升序查詢就必須升序排列;反過來,降序查詢就必須降序排列。
(2)降序查詢,返回的是大於60中的最小數或者第一個等於60的數的位置數;也可以理解為統計了所有大於60的包括第一個等於60的數值的個數。這一點與升序篩選不同:如果存在與查詢值相同的數值,升序定位到等於查詢值的最後一個數值,而降序定位到等於查詢值的第一個數值。
明白了MATCH是誰和基本用法,估計大家都會認為MATCH有點雞肋:就用來返回位置數,跟我想要查詢具體的值相差很遠呀。
正因為這樣,日常工作中MATCH函數單獨出場幾乎麼有。MATCH並不氣餒,為了贏得自己在函數界的一席之地,它採用了一項有效策略——同巨人結伴共舞!因此有了大名鼎鼎的VLOOKUP+MATCH組合、INDEX+MATCH組合。
1. VLOOKUP+MATCH組合
下面是一張成績明細表,我們需要找到「元菁米、王慧、廉楓、餘邁」這幾個人的總分、平均分和等級。
如果單用VLOOKUP函數,我們需要頻繁的修改第三引數。當查總分的時候,在P2單元格輸入公式:
=VLOOKUP(O2,A2:M142,11,0)
而要查平均分的時候,就需要修改第三引數為12,公式變為:
=VLOOKUP(O2,A2:M142,12,0)
如此使用很麻煩,那怎麼能省事呢?
MACTH抓緊機會向VLOOKUP推薦了自己,用自己查詢「總分」「平均分」「等級」在A1:M1行中的位置數取代第三引數,就可以不需要手動修改。這時查詢總分的公式就變成:
=VLOOKUP($O2,$A$2:$M$142,MATCH(P$1,$A$1:$M$1,0),0)
然後右拉填充再下拉填充公式就完成了查詢。如下:
可能有夥伴看到過我們前面的文章《會用Column嗎?它讓公式不那麼笨。》,說用COLUMU取代第三引數更簡單:
=VLOOKUP($O2,$A$2:$M$142,COLUMN(K1),0)
說得沒錯,當前查詢值連續排列的,並且排列順序與成績明細排列一致,用COLUMN更簡單。如果是按下面的兩個表查詢呢?
很顯然COLUMN就不適合了,但MATCH完全勝任。
2. INDEX+MATCH組合
還是查成績,如下:
我們單用INDEX查詢成績的話,何叢良的數學成績查詢公式:=INDEX(A2:D9,5,2)
,物理成績查詢公式:= INDEX(A2:D9,5,4)
。
INDEX查詢就是以指定的查詢區域為座標系,通過行座標和列座標查詢所需數值。何叢良成績的查詢區域是A2:D9,數學成績位於第5行和第2列的交叉點上,所以公式就是INDEX(A2:D9,5,2)
。物理成績位於第5行第4列的交叉點上,所以公式是INDEX(A2:D9,5,4)
。
通過這樣輸入行數、列數的方式查詢太笨拙,不實用。因此MATCH又見縫插針地向INDEX推薦了自己。MATCH可以根據條件查出定位值,取代人工輸入行數、列數。成績查詢公式變成:
=INDEX($A$2:$D$9,MATCH($F3,$A$2:$A$9,0),MATCH(G$2,$A$2:$D$2,0))
當然這裡也可以用VLOOKUP+MATCH組合,公式:
=VLOOKUP($F3,$A$2:$D$9,MATCH(G$2,$A$2:$D$2,0),0)
那VLOOKUP+MATCH組合與INDEX+MATCH組合有何區別呢?這個問題在後續的函數課堂中我們將談到。有興趣的夥伴可以自己先琢磨琢磨。
怎麼樣,大哥和小弟的組合是不是很棒呢?所以說MATCH函數不愧為函數中的哲學家!今天的函數課就到此為止,我們下期再見。
相關學習推薦:
以上就是Excel函數學習之MATCH()函數的使用方法的詳細內容,更多請關注TW511.COM其它相關文章!