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

多行列区域求最大值后返回对应首行及C列值的表格函数问询

解决Google Sheets中跨区域匹配最大值对应行/列的问题

你遇到的问题确实戳中了VLOOKUP的局限性——它只适合单方向的垂直或水平查找,而你的需求是在多行多列的区域里找到最大值后,分别匹配对应的表头(第1行)和指定列(C列)的值,这时候用INDEX+SUMPRODUCT或者XLOOKUP会更合适。

假设前提(可根据实际表格调整)

假设你的最大值计算自数据区域C2:E5(也就是A2的公式是=MAX(C2:E5)),我们以此为例给出公式:


1. 标注为FROM的单元格B4:返回最大值对应第1行的表头

这个需求是找到最大值所在的列,然后取该列第1行的内容,推荐两种写法:

方法1:用INDEX + SUMPRODUCT(兼容性好,适合旧版表格)

=INDEX($C$1:$E$1, SUMPRODUCT(($C$2:$E$5=$A$2)*COLUMN($C$2:$E$5)) - COLUMN($C$1) + 1)
  • 原理:SUMPRODUCT计算出最大值所在单元格的列号,减去表头区域的起始列号再加1,得到它在表头区域中的位置,最后用INDEX提取对应内容。

方法2:用XLOOKUP(更简洁,Google Sheets原生支持)

=XLOOKUP($A$2, TRANSPOSE($C$2:$E$5), TRANSPOSE($C$1:$E$1))
  • 原理:用TRANSPOSE把数据区域和表头区域都转成横向数组,让XLOOKUP能直接匹配最大值对应的表头。

2. 标注为TO的单元格B6:返回最大值对应行的C列值

这个需求是找到最大值所在的行,然后取该行C列的内容,同样推荐两种写法:

方法1:用INDEX + SUMPRODUCT

=INDEX($C$2:$C$5, SUMPRODUCT(($C$2:$E$5=$A$2)*ROW($C$2:$E$5)) - ROW($C$2) + 1)
  • 原理:和上面逻辑一致,SUMPRODUCT算出最大值所在单元格的行号,减去数据区域的起始行号再加1,得到它在C列数据区域中的位置,用INDEX提取内容。

方法2:用XLOOKUP

=XLOOKUP($A$2, $C$2:$E$5, $C$2:$C$5)
  • 原理:XLOOKUP会自动遍历整个数据区域,找到最大值后返回对应位置的C列值(如果有多个相同最大值,会返回第一个出现的结果)。

注意事项

  • 如果你的数据区域不是C2:E5,请把公式里的区域替换成你实际的最大值来源区域;
  • 若存在多个相同的最大值,以上公式都会返回第一个出现的最大值对应的结果;
  • 确保A2的MAX公式确实指向了正确的数据区域,避免匹配出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:22:51