You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中如何提取所有最大值对应的名称?(解决INDEX+MATCH仅返回首个结果)

提取Excel中所有最大值对应的名称方法

你使用的INDEX($A$4:$A$14;MATCH(MAX($AI$4:$AI$14);$AI$4:$AI$14;0))仅能返回第一个匹配最大值的名称,针对多最大值场景,可根据你的Excel版本选择以下方案:

一、Excel 365/2021(支持动态数组)

直接使用FILTER函数,自动返回所有符合条件的名称,公式如下:

=FILTER($A$4:$A$14;$AI$4:$AI$14=MAX($AI$4:$AI$14))

输入后公式会自动溢出到下方单元格,展示所有最大值对应的名称。

二、旧版Excel(无动态数组支持)

1. 合并所有名称到单个单元格

使用TEXTJOIN+IF组合的数组公式(需按Ctrl+Shift+Enter确认输入),将所有匹配名称用指定分隔符连接:

=TEXTJOIN(", ";TRUE;IF($AI$4:$AI$14=MAX($AI$4:$AI$14);$A$4:$A$14;""))

参数说明:", "为名称间的分隔符,可根据需求修改;TRUE表示忽略空值。

2. 逐个提取到独立单元格

在目标单元格(如B4)输入以下数组公式(按Ctrl+Shift+Enter确认),然后下拉填充,依次提取所有最大值对应的名称:

=IFERROR(INDEX($A$4:$A$14;SMALL(IF($AI$4:$AI$14=MAX($AI$4:$AI$14);ROW($AI$4:$AI$14)-ROW($AI$4)+1);ROWS($B$4:B4)));"")

逻辑说明:

  • IF函数标记所有值等于最大值的行位置
  • SMALL函数依次提取第1、2、3...个符合条件的位置
  • INDEX根据位置返回对应名称
  • IFERROR处理无更多匹配项时的错误,返回空值

3. 辅助列简化操作

如果觉得数组公式复杂,可通过辅助列实现:

  • 在空白列(如AJ列)的AJ4单元格输入:=IF($AI4=MAX($AI$4:$AI$14);ROW();""),下拉填充,记录所有最大值对应的行号
  • 在目标单元格输入:=IFERROR(INDEX($A$4:$A$14;SMALL($AJ$4:$AJ$14;ROWS($B$4:B4)));""),下拉填充即可逐个提取名称

内容的提问来源于stack exchange,提问作者Fabio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 05:32:56