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

已解决:使用Arrayformula获取不确定行中以0分隔的数列最大值

实现方案

适用于Google Sheets环境,可通过单个溢出数组公式自动完成分组求最大值,无需手动下拉填充。

公式实现

适用场景:原始数据按列存储(以A列为例,从A1开始)

方案1:每组所有行都显示本组最大值

=LET(
  组号,SCAN(0,A:A,LAMBDA(累计值,当前值,IF(当前值=0,累计值+1,累计值))),
  BYROW(组号,LAMBDA(g,MAX(FILTER(A:A,组号=g))))
)

方案2:仅每组开头的0所在行显示最大值,其余行留空

=LET(
  组号,SCAN(0,A:A,LAMBDA(累计值,当前值,IF(当前值=0,累计值+1,累计值))),
  MAP(A:A,组号,LAMBDA(当前值,所属组,IF(当前值=0,MAX(FILTER(A:A,组号=所属组)),"")))
)

逻辑说明

  • 先用SCAN函数遍历原始数据,每遇到数值为0的单元格就把组编号+1,其余单元格沿用当前组编号,完成自动分组
  • 通过LET函数缓存分组结果,避免重复计算,提升公式运行效率
  • 最后根据需求输出每组最大值即可

调整说明

如果你的原始数据是按行存储,只需要把公式中的A:A替换为对应行范围(比如1:1代表第一行),把BYROW替换为BYCOL即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:39:01