Excel 中 INDEX 和 VLOOKUP 的对比

INDEXVLOOKUP 都是 Excel 中常用的查找函数,但它们的用途和灵活性有所不同。


1. 相同点

均可用于查找数据 :都能根据某个条件返回目标值。
支持精确匹配 :均可使用 0FALSE 进行精确匹配。


2. 不同点

特性 VLOOKUP INDEX + MATCH
查找方向 只能从左向右查找(列索引固定) 可以任意方向查找(反向、多条件等)
灵活性 较死板,必须指定列号 更灵活,可动态调整行、列
适用范围 适用于简单单列查找 适用于复杂查找(如反向、二维表)
计算效率 大数据量时可能较慢 通常更高效
错误处理 需搭配 IFERROR 可单独使用 MATCH 检查是否存在

3. 具体示例

示例数据

姓名 成绩 班级
张三 85 A班
李四 72 B班
王五 90 A班

(1)VLOOKUP 示例

需求:查找"李四"的成绩

excel 复制代码
=VLOOKUP("李四", A2:C4, 2, FALSE)  // 返回 72

说明

  • A2:C4 是查找范围
  • 2 表示返回第 2 列(成绩)
  • FALSE 表示精确匹配

缺点

  • 如果数据列顺序变化(如"班级"在"成绩"左边),VLOOKUP 无法直接查找。

(2)INDEX + MATCH 示例

需求 1 :查找"李四"的成绩(等同于 VLOOKUP

excel 复制代码
=INDEX(B2:B4, MATCH("李四", A2:A4, 0))  // 返回 72

说明

  • MATCH("李四", A2:A4, 0) 返回"李四"在 A2:A4 的位置(第 2 行)
  • INDEX(B2:B4, 2) 返回 B2:B4 的第 2 个值(72)

需求 2:反向查找(如用"成绩"查"姓名")

excel 复制代码
=INDEX(A2:A4, MATCH(90, B2:B4, 0))  // 返回 "王五"

优势

  • 不受列顺序限制,可任意方向查找。

(3)INDEX + MATCH 多条件查找

需求:查找"A班"且成绩"90"的学生

excel 复制代码
=INDEX(A2:A4, MATCH(1, (B2:B4=90)*(C2:C4="A班"), 0))

(需按 Ctrl+Shift+Enter 输入数组公式)

说明

  • (B2:B4=90)*(C2:C4="A班") 返回 {0, 0, 1}
  • MATCH(1, ...) 找到符合条件的位置(第 3 行)
  • INDEX 返回"王五"

4. 如何选择?

  • VLOOKUP

    • 数据列顺序固定,且查找列在最左时。
    • 适合新手,语法简单。
  • INDEX + MATCH

    • 需要反向查找、多条件查找时。
    • 数据列可能变动,需要更灵活的查找。
  • XLOOKUP(新版 Excel)

    • 更强大,可替代 VLOOKUPINDEX+MATCH

5. 总结

场景 推荐函数
简单单列查找 VLOOKUP
反向查找 INDEX + MATCH
多条件查找 INDEX + MATCH
未来兼容性(新版 Excel) XLOOKUP

如果数据可能变化或需要复杂查询,INDEX + MATCH 是更优选择

相关推荐
吃我两拳2 小时前
EasyExcel停止当前Sheet的读取,且不影响主线程及其他Sheet读取的方法
excel
qq_393828226 小时前
办公文档批量打印器 Word、PPT、Excel、PDF、图片和文本,它都支持批量打印。
windows·word·powerpoint·excel·软件需求
过期的秋刀鱼!7 小时前
用“做饭”理解数据分析流程(Excel三件套实战)
数据挖掘·数据分析·excel·powerbi·数据分析入门
挑战者6668888 小时前
如何将Excel表的内容转化为json格式呢?
excel
干净的坏蛋8 小时前
EasyExcel实现Excel复杂格式导出:合并单元格与样式设置实战
excel
张太行_10 天前
MySQL与Excel比较
数据库·mysql·excel
cwtlw10 天前
Excel学习03
笔记·学习·其他·excel
郭优秀的笔记10 天前
计算本地Excel某两列的差异值
excel
涔溪10 天前
实现 el-table 中键盘方向键导航功能vue2+vue3(类似 Excel)
前端·vue.js·excel