如何创建无需拖拽的单公式溢出式累计求和
批量累计求和的溢出公式解决方案
适用前提
需要使用支持动态数组的Excel版本(如Excel 365/2021),才能实现自动溢出效果。
两种可用的溢出公式
方案一:MMULT矩阵乘法实现
在任意空白单元格(比如E3)输入以下公式,回车后会自动溢出所有行的累计求和结果:
=MMULT(--(COLUMN(B2:D2)>=TRANSPOSE(COLUMN(B2:D2))),B3:D10)
注意:把公式里的B3:D10替换成你实际的数据区域即可
方案二:SCAN+BYROW逐行累计
如果更倾向于逐行处理的逻辑,用这个公式:
=BYROW(B3:D10,LAMBDA(row,SCAN(0,row,LAMBDA(acc,val,acc+val))))
公式解释
- MMULT方案:
- 先通过
COLUMN(B2:D2)>=TRANSPOSE(COLUMN(B2:D2))生成一个下三角逻辑矩阵,再用--把逻辑值转成1和0,这个矩阵的作用是标记每行需要累加的列范围。 - 用MMULT函数把这个矩阵和数据区域相乘,直接算出每行的累计求和结果,自动铺满对应区域。
- 先通过
- SCAN+BYROW方案:
BYROW会遍历你指定的数据区域,把每一行单独拿出来处理。SCAN对每一行做累计求和:初始累加值是0,每遇到一个新值就加到累加器里,最终输出整行的累计序列,所有行的结果自动溢出。
对比原公式的优势
原SUMIF公式需要逐行拖拽,以上两个公式只需要输入一次,就能自动覆盖所有行的累计求和需求,完全不用手动操作。
内容的提问来源于stack exchange,提问作者Rakshitha
相关产品推荐
相关产品推荐

