Match函数的【6】大【实用技巧汇总】

点击上方

蓝色

文字  关注我们吧!

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

今天要介绍的这个函数是Match函数。它是Excel中最常用、最重要的函数之一。Match函数和row函数、Offset函数配合使用,可以取得令人意想不到的结果。

它的语法结构是:

MATCH(lookup_value,lookup_array,match_type)

Lookup_value:表示需要在数据表中查找的数值

Lookup_array:表示可能包含所要查找数值的连续单元格区域

Match_type:表示数字-1、0、1

    1)-1:查找大于或等于lookup_value的最小数值在lookup_array中的位

    置, lookup_array必须按降序排列。利用MATCH函数查找功能时,当查找条

    件存在时,MATCH函数结果为具体位置(数值),否则显示#N/A错误

    2)0:查找等于lookup_value的第一个数值,lookup_array按任意顺序排列

    3)1:  查找小于或等于lookup_value的最大数值在lookup_array中的位置,

    lookup_array必须按升序排列:否则,当遇到比lookup_value更大的值时,即

    时终止查找并返回此值之前小于或等于lookup_value的最大数值的位置;此              参数可以省略

MATCH函数返回在指定方式下与指定数值匹配的数组中元素的相应位置。

01

查找数值的位置

这个例子中我们想知道数字4在数列中的位置,那么在A5单元格中输入“=MATCH(4,$A$3:$E$3,0)”就可以了。函数返回的结果“4”是位置序号,表面数字“4”在这个序列中的位置是第四位。

02

判定重复值

此例中,单元格区域A9:A18中有重复的数据,我们在C9单元格中输入“=IF(MATCH(A9,$A$9:$A$18,0)=ROW()-8,"","重复")”,下拉即可。

思路:

  • 函数以单元格A9中的“甲”在单元格区域A9:A18中搜索,并返回位置数“1”。如有重复值,返回的位置是该数据第一次出现时的位置。

  • row()-8的含义是,在单元格区域A9:A18中,当前数据是第几行。在当前行(第9行)减去8,即为第“1”行。

  • 当以上两个相等时,表明没有重复数据;当不相等时,即有重复的数据了。

  • 再用if函数判断并返回“重复”标记。

03

求第n大不重复值

此例中,单元额区域A24:A33中有重复的数据。我们分别求出第一到第四大的数据。在单元格E24中输入“=LARGE(IF(MATCH($A$24:$A$33,$A$24:$A$33,0)=ROW($A$24:$A$33)-23,$A$24:$A$33),ROW()-23)”,并三键回车,向下拖曳。

思路:

  • 首先,Match函数对区域中的每一个值都进行搜索并返回位置,形成一个新的数组

  • 再和每个数据所在行的行号row()减去23的结果相对比(即在此单元格区域A24:A33中当前数据是第几行),并利用if函数返回结果为“相等”所对应的单元额区域A24:A33中的数据

  • 最后用large函数来返回第n大的值。row()-23决定了是第“几”大的数据

在例二和例三中都有出现Row()-8或Row()-23这样的表达式,那是因为,Match函数返回的位置值是从1开始的,而数据所在的当前行并不是第一行,Row()反应的是实际行数,因此需要用这样的方式把它调整为“在当前区域中的第几行”。

04

逆向查找

之前我们介绍过用If函数利用{1,0}创建一个新的数组,以用来做反向查找。这里,Match函数和Offset函数配合使用,也可以达到反向查找的目的。

在单元格E39中我们输入“=OFFSET($A$37,MATCH(D38,$B$38:$B$46,0),0)”,三键回车并向下拖曳即可。

思路:

  • 利用match函数首先判断查找值在数列中的位置

  • 将此位置的值作为offset函数向下移位的参数

05

提取不重复清单

在此例中,单元格区域A51:A60中有重复的数据,最简单的处理方法是利用Excel自带的“删除重复值”的功能,或者数据透视表,都可以很方便地完成。这里只是演示一下怎样用函数的方法将重复值列出。

在单元格C51中输入

“=OFFSET($A$50,SMALL(IF(MATCH($A$51:$A$60,$A$51:$A$60,0)=ROW($A$51:$A$60)-50,ROW($A$51:$A$60)-50),ROW()-50),0)”,并三键回车,向下拖曳即可。

思路:

  • 首先利用match函数查找区域内数据的位置,并和Row()函数对比,在利用if函数返回不重复值所对应的在当前区域中的行号

  • 利用Small函数来提取第1小,第2小等等,并作为Offset函数的参数

06

中国式排名

上一篇中我们讲到了用frequency函数来做中国式的排名。同样,用Match函数配合row()函数也是可以做到的。利用match=row比较法,朋友们,你们自己动手试一下吧!如有问题请私信我!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

戳原文,更有料!免费模板文档!

推荐阅读
(0)

相关推荐