Excel 函數(shù)學(xué)習(xí)03--MATCH函數(shù)

MATCH在英文里是匹配的意思,但實(shí)際上它只是一個(gè)單線偵察兵。其主要功能是在某個(gè)單列或單行的數(shù)據(jù)范圍內(nèi)搜索指定值,并返回該值在查詢范圍中首個(gè)匹配結(jié)果的位置序號(hào)。

其官方語(yǔ)法如下:
=MATCH(lookup_value, lookup_array,[match_type])

=MATCH(找誰(shuí)?在哪找?怎么個(gè)找法?)
前面兩個(gè)參數(shù)是必須的,第三個(gè)參數(shù)是可選的,為指定匹配模式,有三個(gè)選項(xiàng),-1、0、1。

如果是-1,MATCH函數(shù)要求查詢范圍的數(shù)據(jù)必須降序排列,然后會(huì)從中查找大于或等于查詢值的最小值。

如果是1,MATCH函數(shù)要求查詢范圍的數(shù)據(jù)必須升序排列,然后從中查找小于或等于查詢值的最大值。

如果是0,MATCH函數(shù)對(duì)查詢范圍的數(shù)據(jù)并沒(méi)有排序的要求,它會(huì)從中查找等于查詢值的第一個(gè)值……還記得嗎?在VLOOKUP函數(shù)里,我們說(shuō)0就是零失誤精確匹配的意思,在這里同樣如此。

需要特別說(shuō)明的是,當(dāng)MATCH函數(shù)第三參數(shù)省略時(shí),默認(rèn)匹配模式為1,而不是0,不是0,不是0(重要的事情說(shuō)三遍)

不管是-1還是1,都很少用,所以可先無(wú)視它;咱們需要掌握的只是0失誤精確匹配模式。

2
我們說(shuō)MATCH函數(shù)主要功能在某個(gè)單列或單行的數(shù)據(jù)范圍內(nèi)搜索指定值,并返回該值在查詢范圍中首個(gè)匹配結(jié)果的位置——這句話有兩個(gè)重點(diǎn),一個(gè)是MATCH函數(shù)的查詢范圍只能是單行或單列,另一個(gè)是MATCH函數(shù)返回查詢值在查詢范圍首個(gè)匹配結(jié)果的位置。


如上圖所示的數(shù)據(jù)表,如果我們需要查詢“PPT”在B列中的位置,可以使用公式:

=MATCH("PPT",B:B,0)

MATCH函數(shù)采用精確匹配的查詢模式,按照從上到下的順序查詢B列中的值是否等于“PPT”。

B1不是,B2不是,B3——是。找到結(jié)果啦,查詢結(jié)束。剩下的數(shù)據(jù)MATCH函數(shù)看都不看一眼,更不會(huì)管剩下的數(shù)據(jù)里是不是有第2個(gè)“常用圖表”。

B3在B列中的位置序號(hào)是第3個(gè),因此MATCH函數(shù)返回結(jié)果為3。

換個(gè)公式:
=MATCH("李逵",A1:A6,0)

公式的意思是查詢“李逵”在A1:A6區(qū)域內(nèi)的位置,計(jì)算結(jié)果為2。



猜一猜,下面的公式返回什么結(jié)果?

=MATCH("李逵",A1:B6,0)

公式的意思是在A1:B6單元格區(qū)域,查詢“李逵”的位置。計(jì)算結(jié)果為——錯(cuò)誤值。

有朋友會(huì)想,為什么?。俊袄铄印泵髅髟诓樵兎秶氖琢邪??——我們今天分享的是MATCH函數(shù),不是VLOOKUP函數(shù),它才不管你什么首列不首列,只要查詢范圍不是單行或單列,統(tǒng)統(tǒng)錯(cuò)誤值警告。

3

有一天,你發(fā)現(xiàn)自憐資格都已沒(méi)有,只剩下MATCH不知疲倦的肩膀……

:不好意思,我想查一下那個(gè)什么pivot在A列中的位置,全名我想不起來(lái)了,就知道有個(gè)pivot ……

MATCH:很愿意為你效勞,我的主人。請(qǐng)輸入以下公式,謝謝。

=MATCH("pivot",A:A,0)

主人,計(jì)算結(jié)果為11,說(shuō)明第一個(gè)包含關(guān)鍵字pivot的數(shù)據(jù)在A列第11行。

主人,星號(hào)是通配符,可以代替0到多個(gè)字符,pivot的意思就是包含pivot的字符串。

你如果覺(jué)得輸入大小寫混合字母會(huì)手疼,也可以輸入以下公式:

=MATCH("QIVOT",A:A,0)

計(jì)算結(jié)果是一樣的。

4

MATCH作為輔助函數(shù),通常都是配合其他函數(shù)做事,很少作為主力行動(dòng),不過(guò)但凡作為主力,必然都是出彩時(shí)刻。

舉三個(gè)常用的小栗子。

4.1) 判斷某個(gè)值在某個(gè)區(qū)域是否存在。

如下圖所示,需要查詢C列的值在A列是否存在。



D2公式如下:

=IF(ISERROR(MATCH(C2,A:A,0)),"不存在","存在")

MATCH(C2,A:A,0)部分,查詢C2的值在A列中位置,如果返回錯(cuò)誤值,則說(shuō)明A列不存在C2,于是返回指定字符串“不存在”,否則返回“存在”。

當(dāng)然,也可以使用我們?cè)贑OUNTIF函數(shù)教程里講過(guò)的下面這個(gè)公式。

=IF(COUNTIF(A:A,C2),"存在","不存在")

兩個(gè)公式有什么區(qū)別?

首先,MATCH函數(shù)的運(yùn)算效率遠(yuǎn)勝于COUNTIF。

COUNTIF屬于完全遍歷的查詢模式,比如它會(huì)將A1:A11區(qū)域里每一個(gè)單元格都找一遍,看看是不是等于"PPT"。MATCH函數(shù)就不一樣,它在A4單元格找到"PPT"就不會(huì)再找下去了。

這就好比走路,一個(gè)人走1000米才完成任務(wù),一個(gè)人走300米就搞定了,當(dāng)然是后者效率更高。

不過(guò)MATCH不支持多行多列數(shù)據(jù)范圍的查詢方式,COUNTIF就沒(méi)有這個(gè)限制。比如我們需要查詢A:B列內(nèi)是否有個(gè)叫“劉邦”的人……

可以使用=IF(COUNTIF(A:B,"劉邦"),"存在","不存在")

但不能使用=IF(ISERROR(MATCH("劉邦",A:B,0)),"不存在","存在")

以上↓↓↓:

判斷一個(gè)值在一個(gè)區(qū)域內(nèi)是否存在時(shí),如果統(tǒng)計(jì)范圍是單行或單列,更推薦使用MATCH函數(shù),如果是多行多列,則COUNTIF函數(shù)是唯一候選人。

4.2)自定義規(guī)則排名

如下圖所示,A列為姓名,B列為職位,需要按照E列所示的職務(wù)大小進(jìn)行降序排列。


由于Excel對(duì)文本的排序方式,自有規(guī)則,并不看經(jīng)理的臉色,所以直接排序并不能達(dá)到我們的目的,經(jīng)理會(huì)成為墊底的存在。

此時(shí)通常使用輔助列排序的方式:

C列為輔助列,C2輸入以下公式

=MATCH(B2,E:E,0)

MATCH函數(shù)返回B2在E列中的位置序號(hào),依此排序,即為結(jié)果。



順序操作其它行的情況



將排列數(shù)據(jù)按照升序排列即可根據(jù)目標(biāo)序列進(jìn)行排名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容