MATCH函数应用实例_java

MATCH 函数应用非常广泛,可以在单元格区域中搜索指定项,然后返回该项在单元格区域中的相对位置。

今天咱们就一起认识这个函数,领略它的魅力。


MATCH函数的运算方式

这个函数有三个参数,其中第一个参数是查找对象,第二参数指定查找的范围或是数组,第三参数为查找的匹配方式。

第三参数有三个选项:0、1、-1,分别表示精确匹配、升序查找、降序查找模式。


应用一:逆向查询

由于实际应用中,只要求返回位置的问题不多,好像MATCH函数一时派不上用场了。

其实这个函数更多的时候,是与其他引用类函数组合应用,最典型的使用是与INDEX函数组合,能够完成类似VLOOKUP函数和HLOOKUP函数的查找功能,并且可以实现逆向查询,即从左向右或是从下向上查询。

如下图所示,需要根据E列的姓名在A列查询对应的部门。

MATCH函数应用实例_java_02      

D2单元格输入以下公式,返回查询结果为“采购部”。

=INDEX(A:A,MATCH(E2,B:B,))

MATCH函数应用实例_java_03

INDEX函数是常用的引用类函数之一,可以在一个区域引用或数组范围中,根据指定的行号和列号来返回一个值。


MATCH(E2,B:B,)部分,第三参数简写,表示使用0,即精确匹配方式查询E2单元格姓名“小美”在B列的位置,结果为4。

计算结果用作INDEX函数的参数,INDEX函数再根据指定的行号返回A列中对应的值。

使用INDEX函数和MATCH函数的组合应用来查询数据,公式看似相对复杂一些,但在实际应用中,更加灵活多变。


应用二:查找首次出现的位置

除了使用特定的值作为查询参数,也可以使用逻辑值进行查询。

以下图为例,是某公司的销售数据,需要查询首次超过平均销售额的月份

MATCH函数应用实例_java_04

D2单元格使用以下数组公式,按<Shift+Ctrl+Enter>组合键:

=INDEX(A2:A13,MATCH(TRUE,B2:B13>AVERAGE(B2:B13),))


来看看公式的意思:

1、AVERAGE(B2:B13)部分,用来计算出B2:B13单元格的平均值895.33。


2、B2:B13>AVERAGE(B2:B13)部分,用B2:B13与平均值分别作比较,得到由逻辑值TRUE或是FALSE组成的内存数组:

{FALSE;FALSE;FALSE;TRUE;…;TRUE}


3、MATCH函数第一参数使用逻辑值TRUE,使用精确匹配方式查询TRUE在数组中第一次出现的位置,结果为4。本例中的第一参数也可以写成“1=1”,1=1返回逻辑值TRUE,与直接使用TRUE效果相同。


4、MATCH函数的计算结果用作INDEX函数的参数,INDEX函数再根据指定的行号返回A列中对应的月份。


应用三:查找最后一次出现的位置

除了查询首次出现的位置,MATCH函数还可以查询最后一次出现的位置。

以下图为例,需要查询最后次超过平均销售额的月份。

MATCH函数应用实例_java_05

D2单元格使用以下数组公式,按<Shift+Ctrl+Enter>组合键:

=INDEX(A2:A13,MATCH(1,0/(B2:B13>AVERAGE(B2:B13))))


来看看公式的意思:

1、先使用AVERAGE函数计算出B2:B13单元格的平均值。


2、再用B2:B13与平均值分别作比较,得到由逻辑值TRUE或是FALSE组成的内存数组。

用0除以这个内存数组,返回以下结果:

{#DIV/0!;#DIV/0!;0;0;0;…;#DIV/0!}


3、MATCH函数以1作为查找值,在这个数组中查找小于或等于1的最大值。

MATCH函数在处理时,只要将第三参数设置为1或是省略,就会默认第二参数是已经按升序排列过的数据,所以会返回最后一个小于或等于1的最大值(也就是0)的位置。


4、最后使用INDEX函数,根据MATCH函数指定的行号返回A列中对应的月份。


应用四:与VLOOKUP配合实现动态查询

以下图为例,是某单位职工工资表的部分内容。

咱们要做的,是要根据姓名和项目,来实现一个动态的查询效果。

MATCH函数应用实例_java_06

步骤1    

单击A9单元格,依次点击【数据】【数据验证】(07 10版本中叫做数据有效性),设置序列来源为A2:A6。

MATCH函数应用实例_java_07

步骤2    

单击B8单元格,以同样的方法设置数据验证,序列来源选择项目所在单元格:=$B$1:$H$1

这时候,只要单击A9或是B8单元格,就可以在下拉列表中选择不同的姓名或是项目了:

MATCH函数应用实例_java_08

步骤3    

B9单元格输入以下公式:

=VLOOKUP(A9,A:H,MATCH(B8,A1:H1,),)

在A9单元格的下拉列表中选择不同的姓名,或是在B8单元格的下拉列表中选择不同的项目,公式就会动态返回不同姓名、不同项目的查询结果。


简单说说公式的含义:

1、MATCH(B8,A1:H1,)部分,在B8单元格选择不同的项目,MATCH函数即计算出该项目在A1:H1单元格中的位置,计算结果用作VLOOKUP函数的第三参数。

2、VLOOKUP函数使用A9作为查询值,查询的区域为A:H列,由MACHT函数计算出要返回查询区域的第几列。


好了,今天的内容就是这些,小伙伴们,明天见~~

图文制作:祝洪忠


长按下面二维码图片,点”识别图中二维码“然后再点关注,每天都会收到最新excel教程。

MATCH函数应用实例_java_09ExcelHome,微软技术社区联盟成员