Excel 面试 05 查找函数组合 INDEX-MATCH

embedded/2025/1/22 8:00:25/

Excel 的 INDEX-MATCH 是一种强大的函数组合,用于查找和返回表格中的值。相比于传统的 VLOOKUPHLOOKUP,它更灵活且高效,尤其在需要双向查找或处理动态列时表现出色。


INDEX-MATCH 基本原理

  1. INDEX 函数:返回数组中指定位置的值。

    语法

    excel">INDEX(array, row_num, [column_num])
    
    • array:要从中取值的范围或数组。
    • row_num:指定返回值的行号。
    • column_num(可选):指定返回值的列号。

    示例

    excel">=INDEX(A1:C3, 2, 3)
    
    • 查找 A1:C3 范围的第 2 行第 3 列的值。
  2. MATCH 函数:返回查找值在数组中的位置。

    语法

    excel">MATCH(lookup_value, lookup_array, [match_type])
    
    • lookup_value:需要查找的值。
    • lookup_array:要搜索的范围。
    • match_type(可选):
      • 1:小于等于查找值的最大值(默认,需按升序排序)。
      • 0:精确匹配。
      • -1:大于等于查找值的最小值(需按降序排序)。

    示例

    excel">=MATCH(90, B2:B5, 0)
    
    • 返回 B2:B5 范围中 90 的位置(精确匹配)。
  3. INDEX-MATCH 组合:使用 MATCH 确定位置,再用 INDEX 返回对应值。


INDEX-MATCH 语法

excel">=INDEX(return_array, MATCH(lookup_value, lookup_array, match_type))
  • return_array:要返回值的范围。
  • lookup_value:要查找的值。
  • lookup_array:包含查找值的范围。
  • match_type:指定匹配方式(通常为 0,精确匹配)。

INDEX-MATCH 的优点

  1. 支持左侧查找

    • VLOOKUP 只能从左到右查找,INDEX-MATCH 没有这个限制。
  2. 动态列查找

    • VLOOKUP 依赖列索引号,数据表发生变化时容易出错;而 INDEX-MATCH 不受列位置影响。
  3. 更高效

    • 当数据范围很大时,INDEX-MATCH 运行速度比 VLOOKUP 快。
  4. 支持水平查找

    • 配合 MATCH 的列号参数,INDEX-MATCH 可以在二维表中查找。

用法示例

示例 1:简单查找
产品价格
苹果5
香蕉3
葡萄8

公式

excel">=INDEX(B2:B4, MATCH("香蕉", A2:A4, 0))
  • MATCH("香蕉", A2:A4, 0) 返回 2,即 “香蕉” 在第 2 行。
  • INDEX(B2:B4, 2) 返回 3,即对应的价格。
  • 结果3

示例 2:双向查找
产品价格库存
苹果550
香蕉330
葡萄880

目标:查找 “葡萄” 的库存。

公式

excel">=INDEX(C2:C4, MATCH("葡萄", A2:A4, 0))
  • MATCH("葡萄", A2:A4, 0) 找到 “葡萄” 的行号。
  • INDEX(C2:C4, 3) 返回库存 80
  • 结果80

示例 3:多条件查找
姓名科目分数
张三数学90
李四英语85
张三英语88

目标:查找 “张三” 在 “英语” 的分数。

公式

excel">=INDEX(C2:C4, MATCH(1, (A2:A4="张三")*(B2:B4="英语"), 0))
  • (A2:A4="张三")(B2:B4="英语") 创建两个条件。
  • MATCH(1, ..., 0) 确定满足条件的行号。
  • INDEX(C2:C4, ...) 返回对应的分数。
  • 结果88

注意:按 Ctrl + Shift + Enter 确认数组公式(适用于旧版 Excel)。


示例 4:从右到左查找
价格产品
5苹果
3香蕉
8葡萄

目标:查找价格为 3 的产品。

公式

excel">=INDEX(B2:B4, MATCH(3, A2:A4, 0))
  • MATCH(3, A2:A4, 0) 返回 2,即价格 3 的行号。
  • INDEX(B2:B4, 2) 返回 “香蕉”。
  • 结果香蕉

INDEX-MATCH 和 VLOOKUP 比较

功能INDEX-MATCHVLOOKUP
查找方向左、右均支持只能从左到右
灵活性高,支持动态列低,列索引容易出错
性能更快(尤其大范围时)较慢
复杂性略复杂,需要组合公式简单
错误处理可自定义错误处理需结合 IFERROR

总结

INDEX-MATCH 是一个高效、灵活的查找组合,适用于需要精确查找、左侧查找、多条件匹配或更高性能的场景。尽管设置公式稍微复杂,但其强大的功能使其成为 Excel 数据处理的最佳工具之一。


http://www.ppmy.cn/embedded/156005.html

相关文章

CentOS 7 下安装RabbitMQ教程_centos启动rabbitmq

CentOS 7 下安装RabbitMQ教程 一、做准备(VMWare 虚拟机上的 CentOS 7 镜像 上安装的) (1)准备RabbitMQ的安装包(rabbitmq-server-3.8.5-1.el7.noarch)下载地址mq (2)还得准备erl…

如何使用ideal建立一个web工程

1.新建项目(较为简单,方法不限) 2.演示建立: 3.找到项目结构 4.选择模块 5.点击加号,再点web 6.点确定 7. 8.可选择添加HTML文件(注意这里是最外层) 9.稍为修改 10.选择本机已有的浏览器运行 11.一个超基础的就示例就完成啦

【云岚到家】-day02-我的地址簿(实战)

【云岚到家】-day02-我的地址簿(实战) 1.用户端定位 1.1 需求分析 本项目在用户端和服务端都有定位的需求,本节分析用户端即小程序端的定位需求 1.1.1 用户端首页定位 用户端在小程序认证通过后会自动进行定位,也可以在首页手动定位,定位成…

Mac苹果电脑 怎么用word文档和Excel表格?

以下是详细步骤,帮助你在 MacBook 上安装和使用 Word 和 Excel: 安装 Microsoft Office 你可以通过以下几种方式在 MacBook 上安装 Word 和 Excel: 方法一:应用安装 pan.baidu.com/s/1EO2uefLPoeqboi69gIeZZg?pwdi2xk 方法二…

js手写-promise的静态方法

resolve/reject 在之前实现的mypromise基础上 static resolve(value){return new MyPromise((resolve)>resolve(value))}static reject(reason){return new MyPromise((resolve,reject)>reject(reason))}}MyPromise.resolve("成功").then((res) > {consol…

校园安防系统(用于实现跟踪特定的陌生人并语音报警、跨视频检测、生成人员轨迹路线)

校园安全已成为社会各界关注的焦点。从幼儿园到高等学府,每一所学校都承载着家庭的希望与社会的未来。然而,随着校园开放性的增强和人员流动性的加大,如何有效防范陌生人的非法入侵,确保师生安全,成为了一个亟待解决的…

Ubuntu 24.04 LTS linux 文件权限

Ubuntu 24.04 LTS 文件权限 读权限 :允许查看文件的内容。写权限 (w):允许修改文件的内容。执行权限 (x):允许执行文件(对于目录来说,是进入目录的权限)。 文件权限通常与三类用户相关联: 文…

Elasticsearch Ingest Pipeline `processors`属性详解

在Elasticsearch中,Ingest Pipeline 的 processors 属性是一个数组,包含一个或多个处理器(processors)。每个处理器定义了一个数据处理步骤,可以在数据索引之前对数据进行预处理或富化。以下是对 processors 属性中常见…