EXCEL|MATCH函数的用法以及 INDEX+MATCH 函数组合用法

MATCH 函数的第三参数经常用 0,代表精准查询,运算原理为在单行或单列单元格区域中查询指定数据,找到指定数据后返回其在行区域或列区域中的相对位置,返回结果是数字。
由于 “3 月” 在 A2:A13 列区域中的相对位置是第 3 位,所以 “MATCH(D2,A2:A13,0)” 返回的结果为 3。
MATCH 函数还可以查询指定数据在行区域中的相对位置,如下图 所示。
=MATCH(A5,B1:G1,0)

由于 “上海” 在 B1:G1 行区域中的相对位置是第 2 位,所以公式返回结果为 2。
在实际工作中,MATCH 函数经常用来与 INDEX 函数嵌套使用,见以下介绍。
2. INDEX+MATCH函数组合基础用法
INDEX+MATCH 函数组合是 Excel 中非常经典的一对数据查询组合,可以用于从各种区域中按条件提取目标数据。
下面结合一个实际案例介绍从多行多列单元格区域中按双条件提取数据的方法。某企业要求按照月份和地区双条件查询对应的销量数据,如下图所示。
=INDEX(B2:G13,MATCH(A16,A2:A13,0),MATCH(B16,B1:G1,0))

此公式计算原理的解析可分为以下 3 步:
①使用 “MATCH (A16,A2:A13,0)” 根据月份条件定位目标数据所在的行位置;
②使用 “MATCH(B16,B1:G1,0)” 根据地区条件定位目标数据所在的列位置;
③将 MATCH 函数返回的行、列位置传递给 INDEX 函数,用于从多行多列单元格区域中的指定行、列交叉点位置提取数据。
这样,即可借助 INDEX+MATCH 函数组合实现从各种区域(单行、单列、多行多列)中按条件提取数据。
3. INDEX+MATCH 函数组合的灵活使用
虽然 Excel 中的查找与引用函数有很多种,但是它们的运算效率并不相同,在同样能够完成查询需求时,我们应该选择运算效率最高的方法。
相对于 VLOOKUP 函数,INDEX+MATCH 函数组合拥有更高的运算效率,在引用整列数据时依然可以快速运算。
◆用 INDEX+MATCH 函数更高效地查询数据
本案例说明 INDEX+MATCH 函数组合的优势,如下图所示。
=INDEX(F:F,MATCH(H2,C:C,0))

公式中的 “C:C” 代表整个 C 列,“F:F” 代表整个 F 列,首先用 MATCH 函数在 C 列中定位员工编号所在的行号位置,然后传递给 INDEX 函数返回对应的 F 列的应发工资。
此案例也可以使用 VLOOKUP 函数查询,如下图所示。
=VLOOKUP(H2,C2:F8,4,0)
公式中之所以第二参数用的是 “C2:F8” 而不是 “C:F”,是因为当数据较多时,VLOOKUP 函数引用整列数据进行运算的效率较低。

虽然两种方法都可以按照查询条件得到正确的结果,但是 INDEX+MATCH 函数组合即使在引用整列数据时依然能够快速运算并返回结果,而 VLOOKUP 函数在引用整列数据时容易引起卡顿,所以 INDEX+MATCH 函数组合在运算效率上具有优势。
除此之外,INDEX+MATCH 函数组合还在查询灵活性上具有极大优势。◆ 自如指定区域,查询更灵活
本案例说明 INDEX+MATCH 函数组合的灵活性,如下图所示。
=INDEX(A:A,MATCH(H2,C:C,0))

当要查询的条件(如 “员工编号”)在表格中的位置(如 C 列)处在要返回的数据(如 “姓名”)在表格中的位置(如 A 列)的右侧时,使用 VLOOKUP 函数无法按照 C 列的 “员工编号” 查询左侧 A 列的 “姓名”,但 INDEX+MATCH 函数组合对数据位置没有要求,依然可以轻松得到查询结果。
可见,INDEX+MATCH 函数组合不但运算效率高,而且应用范围更加广泛,推荐大家优先使用。
这2个函数的组合如果学熟练了,很多数据的整理就能方便很多。比如,在做比价的时候,报价的有3家供应商,各自有一列价格,这时候,如果我们要很快统计出价格最优的供应商和最优价格,就可以用INDEX,MATCH的组合,很快列出最优价格,以及最优价格对应的供应商,而不用一个个做对比,然后再一个个去选择对应的供应商。如下图所示。

好了,今天的内容就到这里吧。至此,INDEX函数和MATCH函数以及INDEX+MATCH的组合都讲完了。公式和函数这东西,看一遍用一遍就只能有个大概印象,多练就能熟能生巧举一反三。
部分内容来自李锐的书《跟李锐学Excel数据分析》
夜雨聆风