
说起来很惭愧,做了 5 年财务,我前 4 年都在用 VLOOKUP。
每个月做报表的时候,就是我最痛苦的时候。十几个工作表,每个表几千行数据,要把销售表的业绩匹配到员工表,把成本表的数据匹配到利润表...
VLOOKUP 用得飞起,但每次只要表格结构一变——比如在中间插了一列,整个公式就全错了。然后就是一行一行改,改到眼睛都花了。
直到去年,带我的老会计教了我一个组合:INDEX + MATCH。
学会的那一刻,我差点哭出来。原来我之前浪费了那么多时间。
今天这篇文章,我想把这个我用了一年多、帮我节省了至少几百小时的公式组合,完完整整教给你。
如果你每天都要跟 Excel 打交道,特别是要做跨表匹配、数据核对,这篇文章价值千金。
先说说 VLOOKUP 的问题,相信很多人都遇到过:
问题一:只能从左往右找
VLOOKUP 的查找值,必须在查找区域的第一列。也就是说,如果你的员工编号在 D 列,你想通过员工编号找 A 列的姓名——对不起,VLOOKUP 做不到。
问题二:表格结构一变就翻车
这是最头疼的。你辛辛苦苦写好了公式,做了一整张报表,结果同事在源数据里插了一列,你的整个报表就全错了。
问题三:多条件匹配几乎做不到
你想同时匹配"部门 + 姓名"两个条件?VLOOKUP 不是不能做,但要写数组公式,复杂到你自己写完第二天就看不懂。

先把最核心的公式给你,你可以直接复制粘贴:
=INDEX(要返回的数据区域, MATCH(查找值, 查找区域, 0))
就这么简单。我来拆解一下:
• MATCH:负责找位置。找到"查找值"在"查找区域"的第几行,返回一个数字。
• INDEX:负责取数据。根据 MATCH 返回的行号,从"要返回的数据区域"里取出对应的值。

这是 INDEX + MATCH 第一个吊打 VLOOKUP 的地方。
假设你的员工表是这样的:A 列是姓名,B 列是部门,C 列是员工编号。现在你要通过 C 列的员工编号,找 A 列的姓名。
用 VLOOKUP?对不起,做不到。用 INDEX + MATCH?一秒钟搞定:
这是我最喜欢的一点。VLOOKUP 的第三个参数是写死的数字,插一列数字就不对了。但 INDEX + MATCH 呢?根本没有这个问题。
我现在做的年度预算模板,去年年底做的,今年中间加了好几列,公式一个都没改,照样能用。
比如你要同时匹配"部门"和"姓名"两个条件,找到对应的业绩:

1. #N/A:找不到匹配项。检查格式是否一致,是否有空格。
2. #REF!:引用区域被删除。重新引用正确区域。
3. 结果不对:检查 MATCH 第三个参数是否写了 0。
◆ 职场充电站
1. Excel 效率手册:掌握 INDEX+MATCH 后,建议进一步学习 XLOOKUP。
2. 数据分析思维:从工具使用者向数据决策者转变。