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

如何在Excel中实现Max<List<List>>?求空行分隔区域最大和

Excel中按空行分组求最大组和的优雅解法

方法一:动态数组公式(Excel 365/2021及以上版本)

利用LET+SCAN+SUMIFS组合实现无硬编码的分组求和取最大值,完全匹配「按空行分割为子列表→遍历求和→取最大」的需求逻辑:

=LET(
    数据列, A:A,
    组ID, SCAN(0, 数据列, LAMBDA(上一个组号, 当前单元格, 
        IF(ISBLANK(当前单元格), 上一个组号, 
            IF(ISBLANK(INDEX(数据列, ROW(当前单元格)-1)), 上一个组号+1, 上一个组号)
        )
    )),
    有效组, UNIQUE(FILTER(组ID, 组ID<>0)),
    组求和, SUMIFS(数据列, 组ID, 有效组),
    MAX(组求和)
)

公式逻辑拆解:

  1. 组ID生成:用SCAN遍历A列,空行保持当前组号,非空行若上方是空白则新建组(组号+1),否则沿用当前组号,完成自动分组标记。
  2. 提取有效组:过滤掉空行对应的无效组号,保留所有实际存在的组ID。
  3. 分组求和:用SUMIFS按组ID对A列数据求和。
  4. 取最大值:用MAX从所有组的求和结果中选出最大数。

若你的Excel支持GROUPBY函数(2023及以上版本),可简化为更短的公式:

=MAX(GROUPBY(SCAN(0,A:A,LAMBDA(a,b,IF(ISBLANK(b),a,IF(ISBLANK(OFFSET(b,-1,0)),a+1,a)))),A:A,SUM,,0))

方法二:Power Query(全版本通用,适合大数据量)

如果需要重复处理或数据量较大,用Power Query实现更灵活:

  • 选中A列数据,点击「数据」→「从表格/范围」(确认无标题)。
  • 在编辑器中:
    1. 添加索引列(「添加列」→「索引列」→「从0开始」)。
    2. 添加自定义列,公式为:=List.Count(List.Select(Previous([Index]), each ISBLANK(Source[Column1]{_}))),该列会为每组分配唯一标识。
    3. 筛选掉空行:点击「Column1」列的筛选按钮,取消勾选「(空白)」。
    4. 分组求和:点击「转换」→「分组依据」,分组列选自定义列,新列名设为「组和」,操作选「求和」,列选「Column1」。
    5. 提取最大值:选中「组和」列,点击「转换」→「统计信息」→「最大值」。
    6. 点击「关闭并上载」,结果会自动导入Excel单元格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:15:43