为什么 INDEX-MATCH 优于 VLOOKUP
了解它相对于基于列的查找在速度和灵活性上的优势
为什么 INDEX-MATCH 优于 VLOOKUP 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
快速回顾 VLOOKUP
VLOOKUP 会搜索表格的第一列,并返回其右侧某一列中的值,该列由数字指定。
例如,=VLOOKUP(E1, A2:D20, 3, FALSE) 会在 A 列中查找 E1,并返回表格第 3 列中的值。
它很常用且简单,但确实存在一些限制。正如您将看到的,INDEX-MATCH 可以避开这些限制中的每一个。
=VLOOKUP(E1, A2:D20, 3, FALSE)限制 1:VLOOKUP 只能向右查找
VLOOKUP 必须搜索表格中最左侧的列,并且只能返回其右侧的值。它无法向左查找。
如果 ID 位于 C 列,而您想要的姓名位于 A 列,VLOOKUP 就无能为力了。
INDEX-MATCH 没有这条规则。=INDEX(A2:A20, MATCH(E1, C2:C20, 0)) 会搜索 C 列并从 A 列返回结果,无需任何变通方案。
=INDEX(A2:A20, MATCH(E1, C2:C20, 0))限制 2:脆弱的列号
VLOOKUP 的第 3 个参数是直接写入的列号,例如 =VLOOKUP(E1, A2:D20, 3, FALSE) 中的 3。
如果有人在表格中间插入新列,这个 3 就会指向错误的字段,而您的公式可能会悄悄返回错误数据。
INDEX-MATCH 通过范围引用实际列,因此插入列时,引用会自动调整,结果仍然正确。
=VLOOKUP(E1, A2:D20, 3, FALSE)插入列后 INDEX-MATCH 仍然有效
由于 INDEX 指向 C2:C20 这样的特定列范围,因此布局变化时,该引用会随列一起移动。
在它前面插入新列后,电子表格会自行将 C2:C20 更新为 D2:D20。公式仍会返回同一个字段。
在许多人长期编辑的实际工作簿中,这种稳健性非常重要。更少的隐性错误意味着更值得信赖的报告。
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))限制 3:宽表中的性能
即使只需要一列,VLOOKUP 也经常引用整个表格区域,例如 A2:Z20。在大型工作表中,这意味着计算引擎会扫描远多于必要数量的单元格。
INDEX-MATCH 只处理两列精简范围:用于搜索的列和用于返回结果的列。
对于少量公式来说,差异并不明显;但在数千次查找中,INDEX-MATCH 的重新计算速度可能会明显更快。
=INDEX(Z2:Z20, MATCH(E1, A2:A20, 0))限制 4:返回多列
使用 VLOOKUP 提取多个字段时,您必须重复整个公式,并且每次更改列号,这很容易出错。
使用 INDEX-MATCH 时,您可以计算一次位置并重复使用。许多人会将 =MATCH(E1, A2:A20, 0) 存放在辅助单元格中,例如 H1,然后写入 =INDEX(C2:C20, H1) 和 =INDEX(D2:D20, H1)。
一次匹配,多次整洁地提取。
=INDEX(C2:C20, $H$1)XLOOKUP 的定位
新版电子表格提供了 XLOOKUP,它同样可以向任意方向查找,并且避免了列号问题,因此能够解决与 INDEX-MATCH 相同的问题。
=XLOOKUP(E1, A2:A20, C2:C20) 简洁易读。
不过,较旧版本的电子表格软件或某些共享工作簿中可能无法使用 XLOOKUP。INDEX-MATCH 几乎在所有环境中都可用,因此它仍然是一项重要技能。
=XLOOKUP(E1, A2:A20, C2:C20)可读性方面的取舍
公平地说,INDEX-MATCH 有一个缺点:与 VLOOKUP 相比,它文字更多,乍看之下也更难阅读。
比较一下 =VLOOKUP(E1, A2:D20, 3, FALSE) 和 =INDEX(C2:C20, MATCH(E1, A2:A20, 0))。
嵌套结构需要练习。按照从内向外的方式阅读,先看 MATCH,再看 INDEX,就能让它变得易于理解;而它的灵活性通常值得付出这些额外字符。
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))并排比较
对于 A 列存放姓名、D 列存放薪资的表格,下面是同一个查找的两种写法:
- VLOOKUP:
=VLOOKUP(E1, A2:D20, 4, FALSE) - INDEX-MATCH:
=INDEX(D2:D20, MATCH(E1, A2:A20, 0))
两者都会返回薪资。但如果插入一列,只有 INDEX-MATCH 版本仍能保持正确,而且只有它能返回 A 列左侧的值。
=INDEX(D2:D20, MATCH(E1, A2:A20, 0))如何选择
一个实用的经验法则是:
- 如果您的电子表格支持 XLOOKUP,请使用它,以获得最简洁的现代语法
- 使用 INDEX-MATCH,以获得最大的兼容性、向左查找能力,以及插入列后仍然有效的引用
- 只有在稳定的表格中进行快速、简单的键右侧查找时,才使用 VLOOKUP
掌握 INDEX-MATCH 后,您就能阅读并修复大量依赖它的现有工作簿。
=INDEX(D2:D20, MATCH(E1, A2:A20, 0))整体理解
VLOOKUP 是一个单一而僵化的工具。INDEX-MATCH 则由两个简单的概念组成:找到位置并提取值,您可以用灵活的方式将它们组合起来。
真正的要点在于可组合性:将小函数组合起来,就能处理双向查找、向左查找和多字段提取,而单一函数一次完成的方式无法做到这些。
掌握这些基础组件后,您就能突破任何单一查找函数的限制。
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))快速检查
请选择 INDEX-MATCH 相比 VLOOKUP 所具有的优势。
回顾:INDEX-MATCH 的优势
您比较了这两种方法,并看到了 INDEX-MATCH 的优势:
- 它可以向任意方向查找,包括键左侧
- 插入或移动列后,它的列引用仍然有效
- 它只读取所需的两列,因此可能更快
- 在无法使用 XLOOKUP 的较旧电子表格中,它仍然可用
VLOOKUP 适合快速处理任务,但 INDEX-MATCH 提供了持久而灵活的查找能力,是后续高级双向技术的基础。
=INDEX(C2:C20, MATCH(E1, A2:A20, 0))用 AI 导师学习 Excel — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「为什么 INDEX-MATCH 优于 VLOOKUP」课时是免费的吗?
是的 — 「为什么 INDEX-MATCH 优于 VLOOKUP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「为什么 INDEX-MATCH 优于 VLOOKUP」这节课中我会学到什么?
了解它相对于基于列的查找在速度和灵活性上的优势 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「为什么 INDEX-MATCH 优于 VLOOKUP」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 INDEX 提取数值
- 使用 MATCH 查找位置
- 组合使用 INDEX 和 MATCH
- 为什么 INDEX-MATCH 优于 VLOOKUP