MATCH 函数,用于在一行或一列的查询区域中搜索指定内容,然后返回该内容在查询区域中的相对位置。
MATCH 函数有三个参数,第一个参数是查找对象,第二参数指定查找的范围,第三参数用数字来指定匹配方式,最常用的是0,表示精确匹配。
常用写法:
MATCH(要找谁,要查询的一行或一列区域,[匹配方式])
接下来咱们就看看这个函数的几个典型用法:
1、按职务排序
如下图所示,需要根据F列的目标顺序,对B列的职务排序。
D2单元格输入以下公式,向下复制。
=MATCH(B2,F:F,0)
再单击D列任意单元格,【数据】选项卡下点一下升序按钮即可。
MATCH函数,在F列中查询B2单元格职务所处的相对位置,并返回表示位置的数字。最后对这些数字进行升序排序,最终得到和F列相同的顺序。
2、任意方向查询数据
如下图所示,需要根据E2单元格的姓名,在左侧数据表中查询对应的参赛项目。
F2输入以下公式,结果为“踢毽子”
=INDEX(A2:A12,MATCH(E2,C2:C12,0))
先使用MATCH函数,返回E2单元格姓名在C2:C12单元格区域中所处的位置,结果为5。
再使用INDEX函数,返回A2:A12单元格区域中第5个元素的内容。
3、根据日期返回季度
如下图所示,需要根据A列的日期,返回该日期所属的季度。
B2单元格输入以下公式,向下复制。
=MATCH(MONTH(A2),{0,4,7,10})
首先用MONTH函数计算出A2单元格所属的月份,结果为5。
再使用MATCH函数,计算该月份在常量数组{0,4,7,10}中所处的位置。{0,4,7,10},是各个季度的起始月份。
本例中MATCH函数省略了第三参数,其计算规则与使用参数1时相同,当查找不到对应的内容时,会以小于查找值的最接近的一个进行匹配,并返回对应的位置信息。
MATCH函数在常量数组{0,4,7,10}中找不到5,因此以小于5的最接近值4进行匹配,并返回4在常量数组{0,4,7,10}中的位置,结果为2。
4、分摊电费
如下图所示,C列是各个宿舍的电费数,需要根据每个宿舍的人数,计算人均应分摊电费。
=IF(C2,C2/MATCH(1=0,IF({1},C3:C$17=0),-1),D1)
公式中的“IF({1},C3:C$17=0)”部分,先使用“C3:C$17=0”来判断C列自公式所在行为起点、到数据表最后一行为终点,这个区域内是否等于0,也就是判断是否为空单元格,得到一组由逻辑值TRUE和FALSE组成的内存数组。
然后使用“1=0”,也就是FALSE作为MATCH函数的查询值,在该数组中查询FALSE首次出现的位置,如果找不到FALSE,则与比FALSE大的TRUE进行匹配。
当公式复制到D16单元格,对最后一组非空单元格计算人数时,C17:C$17=0部分返回的结果为单个逻辑值TRUE,导致MATCH函数返回错误值。
IF函数的第一参数使用常量数组{1},目的是结果为单个逻辑值时,将其转换为单个元素的内存数组,使MATCH函数能够返回正确的结果。
这部分公式返回的结果为当前宿舍的人数。
接下来使用IF函数对C2单元格的金额进行判断,如果金额大于0,则使用C2除以当前宿舍的人数,返回人均分摊电费,否则返回公式所在单元格的上一个单元格的值。
最后这个例子稍微有点复杂,如果看不懂,那也没关系,先从简单的开始,循序渐进。
好了,今天的内容就是这些吧,祝各位一天好心情~~
|
|
打开微信扫一扫,Office自学网
专注分享软件安装和视频教程,让你一号在手,办公无忧!