在Excel中用VLOOKUP函数找数据,只能从左往右查,列一移就报错;数据量一大,反应慢到让人崩溃;想反向查找、多条件查找,更是直接卡壳……。而“封神组合”——INDEX + MATCH,能轻松解决VLOOKUP的所有痛点,学会它,Excel使用效率飙升!
一、先搞懂:INDEX和MATCH,各自能干啥?
大家觉得组合函数难,其实是没分清两个函数的“分工”。就像两个人搭班子干活,各司其职、配合默契,效率才会高。
1、 INDEX函数:“精准定位员”
INDEX的核心作用,就是根据“行号”和“列号”,从指定区域里提取对应的数据。
简单说,它就像一个“坐标定位器”——你告诉它“在哪个区域、第几行、第几列”,它就能精准把那个位置的数据找出来。
基础语法(最常用版本):
=INDEX(数据区域, 行号, 列号)
举个例子:如果公式是=INDEX(A1:C5, 3, 2),意思就是“在A1到C5这个区域里,找第3行、第2列的数据”,也就是B3单元格的内容。
是不是很简单?但问题来了——我们大多时候不知道“行号”和“列号”,只知道要找的“关键词”(比如姓名、产品名),这时候就需要MATCH函数来帮忙了。
2、MATCH函数:“找位置高手”
MATCH的核心作用,是根据“关键词”,找到它在指定区域里的“位置”(行号或列号)。
它就像一个“探路者”,你告诉它“要找什么、在哪个范围找”,它就会告诉你这个关键词在第几行、第几列,完美解决INDEX“不知道位置”的难题。
基础语法(最常用版本):
=MATCH(要找的关键词, 查找范围, 匹配类型)
重点说明“匹配类型”(新手必看):
•0:精确匹配(最常用!),适用于查找唯一值(比如姓名、工号、产品编码),找不到就返回错误值#N/A。
•1:模糊匹配(默认),适用于查找范围是升序排列的情况,找不到精确值就返回最接近的较小值。
•-1:模糊匹配,适用于查找范围是降序排列的情况,找不到精确值就返回最接近的较大值。
举个例子:公式=MATCH("张三", A1:A5, 0),意思就是“在A1到A5这个范围里,精确找‘张三’,返回它的行号”。如果张三在A3,就返回3。
二、核心用法:INDEX + MATCH 组合,解锁所有查找场景
当INDEX和MATCH组合在一起,就是“探路者(MATCH)找位置,定位员(INDEX)提数据”,两者结合,能解决VLOOKUP解决不了的所有问题,而且更灵活、更快!
组合核心公式(记牢这一个就够了):
=INDEX(要提取数据的区域, MATCH(行关键词, 行查找范围, 0), MATCH(列关键词, 列查找范围, 0))
下面结合3个最常用的实战场景,给大家分享如何使用~
场景1:基础查找(替代VLOOKUP,更灵活)
需求:根据“姓名”,查找对应的“工资”(数据区域:A列姓名,B列部门,C列工资)。
用VLOOKUP的话,只能从左往右查,如果工资列在姓名列左边,就会报错;但用INDEX+MATCH,完全不受列位置限制!
公式:=INDEX(C1:C7, MATCH("李四", A1:A7, 0))
拆解:
•MATCH("李四", A1:A7, 0):找到“李四”在A1:A7中的行号(假设是3);
•INDEX(C1:C7, 3):在C1:C7(工资列)中,提取第3行的数据,也就是李四的工资。

重点:哪怕把工资列移到姓名列左边,这个公式依然能正常使用,不用修改任何参数!
场景2:反向查找(VLOOKUP的死穴,它轻松搞定)
需求:根据“工资”,反向查找对应的“姓名”(数据区域:A列姓名,C列工资)。
这是VLOOKUP的软肋——VLOOKUP只能从左往右查,无法反向;但INDEX+MATCH完全没压力!
公式:=INDEX(A1:A7, MATCH(6800, C1:C7, 0))
拆解:
•MATCH(6800, C1:C7, 0):找到“6800”在C1:C7(工资列)中的行号;
•INDEX(A1:A7, 行号):在A1:A7(姓名列)中,提取对应行的姓名,实现反向查找。

场景3:多条件查找(复杂需求也能hold住)
需求:根据“姓名”和“部门”,查找对应的“奖金”(数据区域:A列姓名,B列部门,D列奖金)。
比如“找销售部张三的奖金”,这种多条件查找,VLOOKUP需要嵌套其他函数,操作复杂;而INDEX+MATCH只需简单嵌套,新手也能轻松写出来。
公式:=INDEX(D1:D7, MATCH(1, (A1:A7="孙七")*(B1:B7="运营部"), 0))
拆解:
•(A1:A7="张三")*(B1:B7="销售部"):这是核心,用乘法实现“同时满足两个条件”——两个条件都满足时,结果是1×1=1;只要有一个不满足,结果就是0;
•MATCH(1, ..., 0):找到“1”的位置,也就是同时满足“张三”和“销售部”的行号;
•INDEX(D1:D7, 行号):提取对应行的奖金数据。

三、新手必看:避坑指南+实用技巧
掌握了用法,还要避开这些常见坑,不然容易出错,白白浪费时间~
1、 常见坑(必避!)
•坑1:查找范围和提取范围“行数/列数不匹配”——比如INDEX提取范围是C1:C5(5行),MATCH查找范围是A1:A4(4行),会报错;
•坑2:匹配类型填错——精确查找一定要填0,填1或-1会出现模糊匹配,导致数据出错;
•坑3:关键词前后有空格——比如“张三 ”(后面有空格)和“张三”,MATCH会识别为两个不同的关键词,返回错误值,记得先清理空格(可用TRIM函数)。
2、 实用小技巧
•固定查找范围:在范围前后加$,比如=INDEX($C$1:$C$5, MATCH("李四", $A$1:$A$5, 0)),这样下拉公式时,查找范围不会偏移;
•处理错误值:如果找不到关键词,公式会返回#N/A,可嵌套IFERROR函数,让错误值显示为空或提示语,比如=IFERROR(INDEX(...), "无此数据");
•批量查找:输入公式后,双击单元格右下角的填充柄,就能批量提取所有关键词对应的数据,不用逐个输入。
【总结】
INDEX + MATCH函数组合对比VLOOKUP,这个组合的优势太明显了:
1、不受列位置限制,可正向查、反向查,灵活度拉满;
2、支持多条件查找,复杂需求轻松搞定;
3、运算速度更快,数据量越大,优势越明显;
4、容错率更高,不容易因为列移动、数据调整而报错。
其实Excel函数没有那么难,尤其是这种“组合函数”,只要分清分工、记住核心公式,多练2个案例,就能轻松掌握。

夜雨聆风