跳至主要内容

跨多列的INDEX和MATCH函数

Author: Amanda Li Last Modified: 2025-07-31

要通过跨多列匹配来查找值,可以使用基于 INDEX MATCH 函数的数组公式,并结合 MMULTTRANSPOSECOLUMN 函数来实现。

index match multiple columns 1

如何通过跨多列匹配来查找值?

为了根据上表所示填写每个学生的对应班级信息(其中信息分布在多列中),您可以首先利用 MMULT、TRANSPOSE 和 COLUMN 函数生成一个矩阵数组。然后,MATCH 函数将为您提供查找值的位置,该位置将传递给 INDEX 以检索您在数组中寻找的值。

通用语法

=INDEX(返回区域,(MATCH(1,MMULT(--(查找区域=查找值),TRANSPOSE(COLUMN(查找区域)^0)),0)))

√ 注意:这是一个数组公式,需要您使用 Ctrl + Shift + Enter 来输入。

  • 返回区域: 公式将从该区域返回班级信息。这里指的是班级范围。
  • 查找值: 公式用来查找其对应班级信息的值。这里指的是给定的名字。
  • 查找区域: 包含查找值的单元格区域;与查找值进行比较的值所在的区域。这里指的是名字范围。
  • 匹配类型 0: 强制 MATCH 查找第一个等于查找值的值。

要查找 Jimmy 的班级,请在 H5 单元格中复制或输入以下公式,并按 Ctrl + Shift + Enter 获取结果:

=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))

√ 注意:上面的美元符号 ($) 表示绝对引用,这意味着当您将公式移动或复制到其他单元格时,公式中的名字和班级范围不会改变。请注意,不应为表示查找值的单元格引用添加美元符号,因为当您将其复制到其他单元格时,希望它是相对的。输入公式后,向下拖动填充柄以将公式应用到下方的单元格。

index match multiple columns 2

公式解释

=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))

  • --($C$5:$E$7=G5): 这一段检查范围 $C$5:$E$7 中的每个值是否等于 G5 单元格中的值,并生成一个 TRUE 和 FALSE 数组,如下所示:{TRUE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE}。双重负号会将 TRUE 和 FALSE 转换为 1 和 0,从而生成如下数组:{1,0,0;0,0,0;0,0,0}
  • COLUMN($C$5:$E$7): COLUMN 函数返回范围 $C$5:$E$7 的列号,形成如下数组:{3,4,5}
  • TRANSPOSE(TRANSPOSE(COLUMN($C$5:$E$7)^0)^0) = TRANSPOSE(TRANSPOSE({3,4,5}^0)^0): 将数组 {3,4,5} 中的所有数字提升为 0 次幂后,它们都会转换为 1:{1,1,1}。TRANSPOSE 函数随后将列数组转换为行数组,如下所示:{1;1;1}
  • MMULT(MMULT(--($C$5:$E$7=G5),,TRANSPOSE(COLUMN($C$5:$E$7)^0))) = MMULT(MMULT({1,0,0;0,0,0;0,0,0},,{1;1;1})): MMULT 函数返回两个数组的矩阵乘积,如下所示:{1;0;0}
  • MATCH(1,MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0),0) = MATCH(1,MATCH(1,{1;0;0},0),0): 匹配类型 0 强制 MATCH 函数返回数组 {1;0;0} 中第一个匹配 1 的位置,即 1
  • INDEX($B$5:$B$7$B$5:$B$7,,,(MATCH(1,MMULT(--($C$5:$E$7=G5),,,TRANSPOSE(COLUMN($C$5:$E$7)^0)),0))) = INDEX($B$5:$B$7$B$5:$B$7,,,1): INDEX 函数返回班级范围 $B$5:$B$7 中的第 1 个值,即 A

为了轻松地通过跨多列匹配查找值,您还可以使用我们的专业 Excel 插件 Kutools For Excel  请参阅此处的说明以完成任务


相关功能

Excel INDEX 函数

Excel INDEX 函数根据给定的区域或数组中的位置返回显示值。

Excel MATCH 函数

Excel MATCH 函数在单元格范围内搜索特定值,并返回该值的相对位置。

Excel MMULT 函数

Excel MMULT 函数返回两个数组的矩阵乘积。数组结果具有与 array1 相同的行数和与 array2 相同的列数。

Excel TRANSPOSE 函数

Excel TRANSPOSE 函数旋转范围或数组的方向。例如,它可以将水平排列在行中的表格旋转为垂直排列在列中,反之亦然。

Excel COLUMN 函数

COLUMN 函数返回公式出现的列号或返回给定引用的列号。例如,公式 =COLUMN(BD) 返回 56。


相关公式

使用 INDEX 和 MATCH 进行多条件查找

在处理包含多列和行标题的大型数据库时,总是很难找到符合多个条件的内容。在这种情况下,您可以使用带有 INDEX 和 MATCH 函数的数组公式。

使用 INDEX 和 MATCH 进行双向查找

要在 Excel 中跨行和列搜索内容,或者我们说要在特定行和列的交点处查找值,我们可以借助 INDEX 和 MATCH 函数的帮助。

使用多条件查找最接近的匹配值

在某些情况下,您可能需要根据多个条件查找最接近或近似匹配的值。通过结合使用 INDEX、MATCH 和 IF 函数,您可以快速在 Excel 中完成此操作。


最佳的办公生产力工具

Kutools for Excel - 助您脱颖而出

🤖 Kutools AI 助手:基于智能执行革新数据分析:智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数
热门功能查找、高亮或标记重复项  |  删除空行  |  合并列或单元格而不丢失数据  |  无需公式四舍五入 ...
超级 VLookup多条件  |  多值  |  跨多表  |  模糊查找...
高级下拉列表简易下拉列表  |  级联下拉列表  |  多选下拉列表...
列管理器添加指定数量的列  |  移动列  |  切换隐藏列的可见状态  比较列以 选择相同和不同单元格 ...
特色功能网格聚焦  |  设计视图  |  增强编辑栏  |  工作簿与工作表管理器 | 资源库(自动文本)  |  日期提取  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊筛选(筛选粗体/斜体/删除线...) ...
排名前 15 的工具集12 个文本工具添加文本删除特定字符 ...)  |  50+ 种图表 类型甘特图 ...)  |  40+ 实用 公式基于生日计算年龄 ...)  |  19 个插入工具插入二维码从路径插入图片 ...)  |  12 个转换工具小写金额转大写汇率转换 ...)  |  7 个合并和拆分工具高级合并行拆分 Excel 单元格 ...)  |  ... 更多功能
使用您偏好的语言来操作 Kutools - 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...


Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑

  • 一秒内在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标点击,告别鼠标手。
  • 在查看和编辑多个文档时,您的生产力可提升 50%。
  • 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。