美文网首页
Excel 函数学习03--MATCH函数

Excel 函数学习03--MATCH函数

作者: 会挽雕弓射天狼 | 来源:发表于2020-05-17 17:49 被阅读0次

    MATCH在英文里是匹配的意思,但实际上它只是一个单线侦察兵。其主要功能是在某个单列或单行的数据范围内搜索指定值,并返回该值在查询范围中首个匹配结果的位置序号。

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

    =MATCH(找谁?在哪找?怎么个找法?)
    前面两个参数是必须的,第三个参数是可选的,为指定匹配模式,有三个选项,-1、0、1。

    如果是-1,MATCH函数要求查询范围的数据必须降序排列,然后会从中查找大于或等于查询值的最小值。

    如果是1,MATCH函数要求查询范围的数据必须升序排列,然后从中查找小于或等于查询值的最大值。

    如果是0,MATCH函数对查询范围的数据并没有排序的要求,它会从中查找等于查询值的第一个值……还记得吗?在VLOOKUP函数里,我们说0就是零失误精确匹配的意思,在这里同样如此。

    需要特别说明的是,当MATCH函数第三参数省略时,默认匹配模式为1,而不是0,不是0,不是0(重要的事情说三遍)

    不管是-1还是1,都很少用,所以可先无视它;咱们需要掌握的只是0失误精确匹配模式。

    2
    我们说MATCH函数主要功能在某个单列或单行的数据范围内搜索指定值,并返回该值在查询范围中首个匹配结果的位置——这句话有两个重点,一个是MATCH函数的查询范围只能是单行或单列,另一个是MATCH函数返回查询值在查询范围首个匹配结果的位置。


    如上图所示的数据表,如果我们需要查询“PPT”在B列中的位置,可以使用公式:

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

    MATCH函数采用精确匹配的查询模式,按照从上到下的顺序查询B列中的值是否等于“PPT”。

    B1不是,B2不是,B3——是。找到结果啦,查询结束。剩下的数据MATCH函数看都不看一眼,更不会管剩下的数据里是不是有第2个“常用图表”。

    B3在B列中的位置序号是第3个,因此MATCH函数返回结果为3。

    换个公式:
    =MATCH("李逵",A1:A6,0)

    公式的意思是查询“李逵”在A1:A6区域内的位置,计算结果为2。



    猜一猜,下面的公式返回什么结果?

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

    公式的意思是在A1:B6单元格区域,查询“李逵”的位置。计算结果为——错误值。

    有朋友会想,为什么啊?“李逵”明明在查询范围的首列啊?——我们今天分享的是MATCH函数,不是VLOOKUP函数,它才不管你什么首列不首列,只要查询范围不是单行或单列,统统错误值警告

    3

    有一天,你发现自怜资格都已没有,只剩下MATCH不知疲倦的肩膀……

    :不好意思,我想查一下那个什么pivot在A列中的位置,全名我想不起来了,就知道有个pivot ……

    MATCH:很愿意为你效劳,我的主人。请输入以下公式,谢谢。

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

    主人,计算结果为11,说明第一个包含关键字pivot的数据在A列第11行。

    主人,星号是通配符,可以代替0到多个字符,pivot的意思就是包含pivot的字符串。

    你如果觉得输入大小写混合字母会手疼,也可以输入以下公式:

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

    计算结果是一样的。

    4

    MATCH作为辅助函数,通常都是配合其他函数做事,很少作为主力行动,不过但凡作为主力,必然都是出彩时刻。

    举三个常用的小栗子。

    4.1) 判断某个值在某个区域是否存在。

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



    D2公式如下:

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

    MATCH(C2,A:A,0)部分,查询C2的值在A列中位置,如果返回错误值,则说明A列不存在C2,于是返回指定字符串“不存在”,否则返回“存在”。

    当然,也可以使用我们在COUNTIF函数教程里讲过的下面这个公式。

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

    两个公式有什么区别?

    首先,MATCH函数的运算效率远胜于COUNTIF。

    COUNTIF属于完全遍历的查询模式,比如它会将A1:A11区域里每一个单元格都找一遍,看看是不是等于"PPT"。MATCH函数就不一样,它在A4单元格找到"PPT"就不会再找下去了。

    这就好比走路,一个人走1000米才完成任务,一个人走300米就搞定了,当然是后者效率更高。

    不过MATCH不支持多行多列数据范围的查询方式,COUNTIF就没有这个限制。比如我们需要查询A:B列内是否有个叫“刘邦”的人……

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

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

    以上↓↓↓:

    判断一个值在一个区域内是否存在时,如果统计范围是单行或单列,更推荐使用MATCH函数,如果是多行多列,则COUNTIF函数是唯一候选人。

    4.2)自定义规则排名

    如下图所示,A列为姓名,B列为职位,需要按照E列所示的职务大小进行降序排列。


    由于Excel对文本的排序方式,自有规则,并不看经理的脸色,所以直接排序并不能达到我们的目的,经理会成为垫底的存在。

    此时通常使用辅助列排序的方式:

    C列为辅助列,C2输入以下公式

    =MATCH(B2,E:E,0)

    MATCH函数返回B2在E列中的位置序号,依此排序,即为结果。



    顺序操作其它行的情况



    将排列数据按照升序排列即可根据目标序列进行排名

    相关文章

      网友评论

          本文标题:Excel 函数学习03--MATCH函数

          本文链接:https://www.haomeiwen.com/subject/atssohtx.html