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

如何在Excel中按指定条件返回最大值所在列的列名?

解决带筛选条件的Excel最大值列名查找问题

你的原公式=INDEX(MIP!$BZ$3:$CG$3,0,MATCH(MAX(MIP!$BZ$1:$CG$1),MIP!$BZ$1:$CG$1,0))只能在整个BZ1:CG1区域找最大值对应的列名,无法限定筛选条件。以下是不同Excel版本的解决方案:

方案1:Excel 365/2021及以上(推荐)

用MAXIFS先筛选符合条件的最大值,再用XLOOKUP匹配列名。假设筛选条件是**MIP!$BZ$2:$CG$2等于"目标条件"**,公式如下:

=XLOOKUP(MAXIFS(MIP!$BZ$1:$CG$1,MIP!$BZ$2:$CG$2,"目标条件"),MIP!$BZ$1:$CG$1,MIP!$BZ$3:$CG$3,"无匹配",0)
  • 逻辑:MAXIFS提取满足条件的列中的最大值,XLOOKUP定位该最大值在BZ1:CG1中的位置,返回对应BZ3:CG3的列名;如果没有符合条件的值,返回"无匹配"。

方案2:兼容旧版Excel(无MAXIFS)

用SUMPRODUCT构造带条件的最大值,再结合INDEX+MATCH:

=INDEX(MIP!$BZ$3:$CG$3,MATCH(SUMPRODUCT(MAX((MIP!$BZ$2:$CG$2="目标条件")*MIP!$BZ$1:$CG$1)),MIP!$BZ$1:$CG$1,0))
  • 逻辑:(MIP!$BZ$2:$CG$2="目标条件")生成布尔数组(符合条件为1,否则为0),与BZ1:CG1相乘后,不符合条件的列值归零;MAX取这些值里的最大值,最后用MATCH+INDEX找到对应列名。
  • 注意:旧版Excel输入后需按Ctrl+Shift+Enter作为数组公式执行。

方案3:返回所有符合条件的最大值列名(Excel 365)

如果多个列满足筛选条件且值都是最大值,用TEXTJOIN合并结果:

=TEXTJOIN(", ",TRUE,FILTER(MIP!$BZ$3:$CG$3,(MIP!$BZ$2:$CG$2="目标条件")*(MIP!$BZ$1:$CG$1=MAXIFS(MIP!$BZ$1:$CG$1,MIP!$BZ$2:$CG$2,"目标条件"))))
  • 逻辑:FILTER筛选出符合条件且值等于最大值的所有列名,TEXTJOIN用逗号分隔输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 05:00:53