Excel 累计求和(累加)怎么做
做销售报表时常要一列「到目前为止的累计值」——第一行是当天销售额,第二行是前两天之和,以此类推。这就是累计求和(running total)。本文讲清 Excel 里用绝对引用写累加公式的方法、常见坑,再介绍用超级表公式面板和分组汇总更稳地实现同样效果。
累加公式原理:起点锁定,终点随行走
Excel 里做逐行累计最经典的写法,是在累计列的第一行(假设 C2)写:
=SUM($B$2:B2)
然后向下拖到数据末尾。关键在于这个范围的两个端点:
- 起点
$B$2:行列都加了美元符,绝对引用,永远指向第一行数据,不随公式下拉而移动。 - 终点
B2:没有锁定,相对引用,下拉到 C3 时自动变成B3,到 C4 变成B4。
这样,C2 求的是 B2:B2(只有当天),C3 求的是 B2:B3(前两天),C10 求的是 B2:B10(前九天),正好是逐行累加的效果。举个具体例子:
- B 列是每日销售额:100、200、150、300……
- C2 写
=SUM($B$2:B2),结果 100; - C3 自动变成
=SUM($B$2:B3),结果 300; - C4 自动变成
=SUM($B$2:B4),结果 450; - 依此类推,C 列就是累计销售额。
SUM 求和的范围是「从固定起点到当前行」。起点必须锁住(否则下拉时起点也会往下跑,每行只计算一行,变成普通求和);终点不锁,让它跟随行号自动扩展,才能累积越来越多的行。
累计百分比怎么算
有了累计值列(C 列),再算累计百分比(D 列)就简单了。先用 SUM 函数在某个单元格(如 E1)里算出 B 列总和:
=SUM(B2:B100)
然后 D2 写:
=C2/$E$1
这里 $E$1 同样绝对引用,锁住总计单元格不随下拉移动。把 D 列格式设为「百分比」,就得到每行「到这里为止占总量多少百分比」的累计占比。这在帕累托分析(80/20 法则)、库存 ABC 分类等场景非常实用。
这个写法的三个坑
上面的公式看起来简单,实际用起来有几个容易踩的坑:
-
忘了锁 $,全乱套。如果写成
=SUM(B2:B2)(两端都不锁),下拉后每行都只求自己那一行,累计效果完全消失——但公式本身不报错,结果悄悄错了最难发现。 - 插行删行要重拉公式。数据行中间新插一行,那行的 C 列是空的,下面已有的公式虽然自动调整了行号,但新插入行本身没有公式,累计结果断掉。删行同理,需要重新拖公式覆盖整列。
-
数据量大时越来越慢。
SUM($B$2:B2)在第 1000 行时,要对前 999 行重新求和;在第 10000 行时对前 9999 行求和——每个单元格的计算量都随行数线性增长。几万行数据时,Excel 会明显卡顿,每次改一个数字都要等重算。
更稳:用超级表公式面板或分组汇总做累计
超级表(TableDI)是一款桌面端高能表格助手,macOS 和 Windows 均支持,本地离线运行、无需登录。它把「逐行累计求和」这类计算做进了公式面板,点选搭建,不用手写函数;也可以通过分组汇总按维度自动算累计——步骤如下:
- 把 Excel 或 CSV 拖进超级表,数据自动识别为表格。
- 点「+」新增一列,选择「公式面板」。
- 在面板里选「累计求和」,点选要累加的源列(如销售额列),确认。
- 超级表自动在每行填入到当前行的累计值,源数据更新后累计列自动刷新,无需重拖公式。
如果你的需求是「按月/按分类分组,组内各行累计」,可以用分组汇总功能:按月分组后,每组内的累计值独立计算,组间不串,比手写 SUMIF 条件求和省事得多。
Excel 公式 vs 超级表:两种做法对比
| 对比项 | Excel 公式写法 | 超级表 |
|---|---|---|
| 怎么写 | 手写 =SUM($B$2:B2),记住锁哪个端点 | 公式面板点选「累计求和」,无需记函数 |
| 忘锁 $ | 结果悄悄错,公式本身不报错 | 面板生成,无此风险 |
| 插行删行 | 需要重新拖公式填满新行 | 自动覆盖,无需重拖 |
| 大表性能 | 逐行重算,几万行明显变慢 | 增量更新,跟手不卡 |
| 分组内累计 | 需配合 SUMIF,写法复杂 | 分组汇总直接支持 |
| 累计百分比 | 还需额外列 ÷ 总计,再锁 $ | 汇总面板一步算出 |
常见问题
为什么前面的端点要锁 $,后面不锁?
SUM($B$2:B2) 的含义是「从固定起点 B2,到当前这行 B 列」的求和区间。起点必须用绝对引用 $B$2 锁住,否则向下复制公式时起点也会下移,每行只加一行,变成普通求和而非累加。终点用相对引用 B2,让它随行号自动延伸,从而形成「越往下区间越大」的累加效果。
分组内累计(比如每月重新从零开始)怎么做?
在 Excel 里,分组内累计要用 SUMIFS 条件求和,配合绝对引用和条件列,写法相当绕。在超级表里,先对数据按月分组,再在公式面板里选「累计求和」,超级表会自动识别组边界,每个分组内独立累计,无需手写条件函数。
累计百分比怎么算?
先算出整列总和(用 =SUM(B2:B100)),锁住总计单元格(如 $E$1),再在百分比列写 =C2/$E$1 并向下拖。将该列格式设为「百分比」即可。超级表里的分组汇总面板可以直接勾选「累计占比」,省去额外列和手动格式设置。