这个小弟呀,虽然单拎出来能力不咋的,但是跟着大哥组队,那效果可是杠杠的!
我们先来认识认识他吧
一、MATCH是谁?
MATCH是查找定位函数,它返回的并不是数据本身,而是该数据在单列或单行中的位置。类似于排队报数,站在第几个,MATCH就报几号!(注意:它只支持单列或单行数据查找哦~)
函数结构:MATCH(找啥,在哪儿找[单行或单列],查找类型)
查找类型:3种。分别用0、1、-1代表。0表示精确查找,1表示升序查找,-1表示降序查找。
二、MATCH基本用法
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函数不愧为函数中的哲学家!今天的函数课就到此为止,我们下期再见。