Excel 应用MATCH函数在数组中进行查找

MATCH函数用于返回在指定方式下与指定数值匹配的数组中元素的相应位置。如果需要找出匹配元素的位置而不是匹配元素本身,则应该使用MATCH函数而不是LOOKUP函数。其语法如下。


MATCH(lookup_value,lookup_array,match_type)

其中参数lookup_value为需要在数据表中查找的数值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。lookup_array为可能包含所要查找的数值的连续单元格区域,应为数组或数组引用。match_type为数字-1、0或1,指明如何在lookup_array中查找lookup_value。

【典型案例】查找在指定方式下与指定数值匹配的数组中元素的相应位置。本例的原始数据如图15-23所示。

步骤1:在A7单元格中输入公式“=MATCH(1.3,B2:B5,1)”,由于此处无正确的匹配,所以返回数据区域“B2:B5”中最接近的下一个值(1.2)的位置。

步骤2:在A8单元格中输入公式“=MATCH(1.7,B2:B5,0)”,用于返回数据区域“B2:B5”中1.7的位置。

步骤3:在A9单元格中输入公式“=MATCH(1.7,B2:B5,-1)”,由于数据区域“B2:B5”不是按降序排列,所以返回错误值“#N/A”。计算结果如图15-24所示。

图15-23 原始数据

图15-24 计算结果

Excel 在一个未排序的区域中查找值:INDEX、MATCH函数

如果需要在一个未排序的区域中查找值,可通过INDEX和MATCH函数实现。

INDEX函数的含义前面已经介绍了,这里将不再介绍。MATCH函数的语法为:=MATCH(lookup_value, lookup_array,[match_type]),各参数的含义介绍如下。

※ lookup_value:需要在lookup_array中查找的值。该参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。

※ lookup_array:要搜索的单元格区域。

※ match_type:指定Excel如何在lookup_array中查找lookup_value的值,该参数的值为-1、0或1。如果省略此参数,则默认值为1。

注意 match_type参数为1或省略,MATCH函数会查找小于或等于lookup_value的最大值;match_type参数为0,MATCH,函数会查找等于lookup_value的第一个值;match_type参数为-1,MATCH,函数会查找大于或等于lookup_value的最小值。

下面以在比赛成绩表中根据姓名查询成绩为例,介绍在未排序的单元格区域中查找某个值的具体操作。

01 打开成绩表,输入姓名和比赛成绩等相关数据。

02 选中“B9”单元格,在其中输入查询条件,即需查询成绩的选手姓名。

03 在单元格中输入公式:=INDEX(A2:B7,MATCH(B9, A2:A7,0),2),然后按下“Enter”键确认,即可得到该选手的比赛成绩。

alt

Excel实战:实现学生成绩查询

打开“学生成绩查询.xlsx”工作簿,某大学语言测试成绩表如图16-67所示。现在需要实现只输入学生姓名,就能够查询某一学生的成绩或其他信息。

下面介绍如何使用查找与引用函数中的INDEX函数和MATCH函数来实现这种查询功能。

图16-67 学生成绩表

STEP01:选中H3单元格,在编辑栏中输入公式“=INDEX(E:E,MATCH($G$3,$A:$A,0))”,输入完成后按“Enter”键返回计算结果,如图16-68所示。该公式使用INDEX函数返回成绩表中$G$3所在行对应E列的值,使用MATCH函数查找成绩表中A列与单元格$G$3相同的值。

STEP02:选中G3单元格,在单元格中输入一个学生的姓名,这里输入“田珊”,然后按“Enter”键返回,可以看到在H3单元格中显示出其成绩,如图16-69所示。

图16-68 输入成绩公式

图16-69 输入学生姓名查询成绩

STEP03:选中H5单元格,在编辑栏中输入公式“=INDEX(E:E,MATCH($G$5,$B:$B,0))”,输入完成后按“Enter”键返回计算结果,如图16-70所示。该公式使用INDEX函数返回成绩表中$G$5所在行对应E列的值,使用MATCH函数查找成绩表中A列与单元格$G$5相同的值。

STEP04:选中G5单元格,在单元格中输入一个学生的准考证号码,这里输入“1525509012510716”,然后按“Enter”键返回,可以看到在H5单元格中显示出其成绩,如图16-71所示。

图16-70 在H5单元格中输入公式

图16-71 使用准考证号码查询学生成绩

Excel MATCH函数数组元素查找

MATCH函数用于返回在指定方式下与指定数值匹配的数组中元素的相应位置。如果需要找出匹配元素的位置而不是匹配元素本身,则应该使用MATCH函数而不是LOOKUP函数。其语法如下:


MATCH(lookup_value,lookup_array,match_type)

其中,lookup_value参数为需要在数据表中查找的数值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。lookup_array参数为可能包含所要查找的数值的连续单元格区域,应为数组或数组引用。match_type参数为数字-1、0或1,指明如何在lookup_array中查找lookup_value。

下面通过实例详细讲解该函数的使用方法与技巧。

打开“MATCH函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图16-9所示。要求根据工作表中的数据内容,查找在指定方式下与指定数值匹配的数组中元素的相应位置。具体的操作步骤如下。

STEP01:选中A7单元格,在编辑栏中输入公式“=MATCH(1.3,B2:B5,1)”,然后按“Enter”键返回计算结果。由于此处无正确的匹配,所以返回B2:B5数据区域中最接近的下一个值(1.2)的位置,结果如图16-10所示。

图16-9 原始数据

图16-10 A7单元格返回结果

STEP02:选中A8单元格,在编辑栏中输入公式“=MATCH(1.7,B2:B5,0)”,用于返回B2:B5数据区域中1.7的位置,输入完成后按“Enter”键返回计算结果,如图16-11所示。

STEP03:选中A9单元格,在编辑栏中输入公式“=MATCH(1.7,B2:B5,-1)”,然后按“Enter”键返回计算结果,由于B2:B5数据区域不是按降序排列,所以返回错误值“#N/A”,如图16-12所示。

图16-11 A8单元格返回结果

图16-12 A9单元格返回结果