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

咨询:无法在同一公式中使用BYCOL与SCAN函数求多列累计值的方案

多列动态累计总计的单公式实现方案

关于BYCOL与溢出函数的兼容性

BYCOL完全支持返回溢出结果的函数,之前公式失效大概率是写法错误。正确组合BYCOL+SCAN即可实现单公式处理所有列(含未来新增列)的累计总计。

正确的BYCOL+SCAN写法

假设原始数据区域为A2:C(Excel 365中可直接引用整列范围,自动忽略空行),公式如下:

=BYCOL(A2:C, LAMBDA(col, SCAN(0, col, LAMBDA(acc, val, acc + val))))
  • 逻辑:BYCOL遍历每一列,将每列数据传入SCAN函数;SCAN从初始值0开始,逐行累加当前列的数值,最终返回该列的累计数组;BYCOL自动将所有列的累计数组组合成二维溢出结果,覆盖对应区域,新增列后公式会自动扩展计算。

替代方案:MMULT矩阵乘法实现

如果偏好非Lambda写法,可利用下三角矩阵与MMULT实现累计:

=LET(
    data, A2:INDEX(A:C, COUNTA(A:A)),
    row_count, ROWS(data),
    tri_matrix, N(SEQUENCE(row_count)>=TRANSPOSE(SEQUENCE(row_count))),
    MMULT(tri_matrix, data)
)
  • 逻辑:通过SEQUENCE生成下三角全1矩阵,MMULT用该矩阵与原始数据相乘,本质是对每一行上方所有行(含本行)的数值求和,实现累计效果;LET函数封装后可动态适配数据行数,避免空行干扰。

注意事项

  • 需使用Excel 365/2021及以上版本,确保支持动态数组函数。
  • 原始数据中的空白单元格会被视为0,不影响累计计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 05:01:12