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

news2025/1/21 12:34:00

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


INDEX-MATCH 基本原理

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

    语法

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

    示例

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

    语法

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

    示例

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


INDEX-MATCH 语法

=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

公式

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

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

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

公式

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

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

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

公式

=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 的产品。

公式

=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.coloradmin.cn/o/2279814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

STM32之CubeMX图形化工具开发介绍(十七)

STM32F407 系列文章 - STM32CubeMX(十七) 目录 前言 一、CubeMX 二、下载安装 1.下载 2.安装 3.图解步骤 三、用户界面 1.项目配置 2.项目生成 3.项目文件解释 4.新建工程 5.查看原工程 四、FAQ 总结 前言 STMCube源自意法半导体&#xf…

top命令返回值有异常问题解决

异常问题:load average值不正常 排查思路: 1.找到是哪个进程引起的异常,看看是否有cpu占用过高或者mem占用过高的进程 再根据具体情况分析原因。 定位到异常进程后,首先打堆栈,留存现场日志,然后停止进…

sqlfather笔记

这里简单记录写学习鱼皮sqlfather项目的笔记,以供以后学习。 运行 将前后端项目clone到本地后,修改对应配置文件运行项目。 后端 1.配置好mysql后运行这个sql文件建立对应的表。 2.修改数据库密码 3.修改完后运行启动类即可 4. 启动结果 5.查看A…

【Axure高保真原型】数字滚动效果

今天和大家分享数字滚动效果的原型摸吧原型模板,效果包括: 在输入框输入目标数值后,点击滚动按钮,下方数字自动滚动到对应的数值; 在输入框输入初始数值后,点击设置初始值按钮,可以设置下方数字…

“AI人工智能内容辅助创作平台:让创意不再“卡壳”

在如今这个信息爆炸的时代,内容创作成了每个人的“必修课”。无论是自媒体大V、文案策划,还是普通学生写作文,大家都会遇到一个让人抓狂的问题——“创意枯竭”。有时候,脑袋里空空如也,一个字都写不出来,那…

VSCode最新离线插件拓展下载方式

之前在vscode商店有以下类似的download按钮,但是2025年更新之后这个按钮就不提供了,所以需要使用新的方式下载 ps:给自己的网站推广下~~(国内直连GPT/Claude) 新的下载方式1 首先打开vscode商店官网:vscode插件下载…

python——Django 框架

Django 框架 1、简介 Django 是用python语言写的开源web开发框架,并遵循MVC设计。 Django的**主要目的是简便、快速的开发数据库驱动的网站。**它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能…

搜索功能实现

前言 主要实现思路是全局监听点击事件的点击范围是否包含搜索结果内容。 效果 上代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initi…

两份PDF文档,如何比对差异,快速定位不同之处?

PDF文档比对是通过专门的工具或软件&#xff0c;自动检测两个PDF文件之间的差异&#xff0c;并以可视化的方式展示出来。这些差异可能包括文本内容的修改、图像的变化、表格数据的调整、格式的改变等。比对工具通常会标记出新增、删除或修改的部分&#xff0c;帮助用户快速定位…

K8S 亲和性与反亲和性 深度好文

今天我们来实验 pod 亲和性。官网描述如下&#xff1a; 假设有如下三个节点的 K8S 集群&#xff1a; k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、镜像准备 1.1、镜像拉取 docker pull tomcat:8.5-jre8-alpine docker pull nginx…

用户中心项目教程(五)---MyBatis-Plus完成后端初始化+测试方法

文章目录 1.数据库的链接和创建2.建库建表语句3.引入依赖4.yml配置文件5.添加相对路径6.实体类的书写7.Mapper接口的定义8.启动类的指定9.单元测试10运行时的bug 1.数据库的链接和创建 下面的这个就是使用的我们的IDEA链接这个里面的数据库&#xff1a; 接下来就是输入这个用户…

TL3562/3568移植无锡沐创N500L-AM4驱动进内核源码,报错及其解决方案

前言 创龙官方提供的资料无锡沐创N500L-AM4驱动是rnpgbe-0.1.0.rc60-dd9f3cf.tar.gz&#xff1b;无锡沐创官方&#xff0c;截止目前&#xff0c;最新驱动是rnpgbe-0.2.3-f26b9a4.tar.gz。考虑到开发的稳妥性&#xff0c;先选用创龙尝试过的rnpgbe-0.1.0.rc60-dd9f3cf.tar.gz来移…

CycleGAN - CycleGAN网络:无监督图像到图像转换的生成对抗网络

1. 背景与问题 在图像到图像转换任务中&#xff0c;传统的生成对抗网络&#xff08;GANs&#xff09;依赖于成对的训练数据来进行监督学习。然而&#xff0c;获得大量成对标注数据通常是昂贵且耗时的。在许多应用中&#xff0c;真实世界的标注数据往往是稀缺的&#xff0c;因此…

空间解析几何8:空间线段与圆锥侧面的最短距离【附MATLAB代码】

理论推导 matlab代码 function [dmin] distanceConeToLine (A1,B1,A2,B2,R) dmin 100000000; h norm(A2-B2); A B1(1)-A1(1); if(abs(A)<1e-2)A 1e-2; end B B1(2)-A1(2); if(abs(B)<1e-2)B 1e-2; end C B1(3)-A1(3); F A1(1)*CA*h-A1(3)*A; G A1(2)*CB*h-A1(…

K8S 集群搭建和访问 Kubernetes 仪表板(Dashboard)

一、环境准备 服务器要求&#xff1a; 最小硬件配置&#xff1a;2核CPU、4G内存、30G硬盘。 服务器可以访问外网。 软件环境&#xff1a; 操作系统&#xff1a;Anolis OS 7.9 Docker&#xff1a;19.03.9版本 Kubernetes&#xff1a;v1.18.0版本 内核版本&#xff1a;5.4.203-…

2024:成长、创作与平衡的年度全景回顾

文章目录 1.前言2.突破自我&#xff1a;2024年个人成长与关键突破3.创作历程&#xff1a;从构想到落笔&#xff0c;2024年的文字旅程4.生活与学业的双重奏&#xff1a;如何平衡博客事业与个人生活5.每一步都是前行&#xff1a;2024年度的挑战与收获6.总结 1.前言 回首2024年&a…

HTML<form>标签

例子 具有两个输入字段和一个提交按钮的HTML表单&#xff1a; <form action"/action_page.php" method"get"> <label for"fname">First name:</label> <input type"text" id"fname" name"f…

C++:输入3个整数,利用指针和函数,按由小到大的顺序输出。

输出样例如图所示&#xff1a; 代码如图&#xff1a; #include<iostream> using namespace std;void exchange(int* x, int* y){int temp;temp *x;*x *y;*y temp; }int main(){int a 0, b 0, c 0;int* p1 &a, * p2 &b, * p3 &c;cout << &quo…

【QT】 控件 -- 按钮类(Button)

&#x1f525; 目录 1. 前言 2. Push Button 按钮 1、带有图标的按钮 -- 纯代码实现2、带有快捷键的按钮 -- 图形化&代码实现 3、按钮的重复触发 3. Radio Button 按钮 **1. click、press、release、toggled 的区别** **2. 单选框分组** 4. Check Box 复选 5. Tool Butto…