各账户的累计余额(扩张区域 SUMIFS)
测试用例
1
2
3
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
测试用例
1
2
3
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
题目
题目说明
账本把两个科目混在同一列:A2:A7 是科目、B2:B7 是日期、C2:C7 是金额。2026-01-12 那一行要显示它的累计余额——同一科目从表头到这一行为止的全部金额。填进 Running balance 单元格 D7。
往下复制时,区域的起点不能移动,只有终点会增长。
题目数据
用表格查看整份数据(可选中、可复制)
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Account | Date | Amount | Running balance |
| 2 | CASH | 2026-01-02 | 100 | |
| 3 | CASH | 2026-01-05 | 250 | |
| 4 | BANK | 2026-01-05 | 500 | |
| 5 | CASH | 2026-01-08 | -80 | |
| 6 | BANK | 2026-01-10 | 300 | |
| 7 | CASH | 2026-01-12 | 40 |
知识点
累计需要一个会长大的区域:$C$2:C7——起点用 $ 锁住、终点保持相对。再加上科目条件,就变成「每个科目各自的累计」,也就是账本真正的样子。整列求和的话,每一行都会得到同一个总额。
解题思路
答案写在 D7。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。
- 目标单元格是 D7
- 求和区域要结束在当前行:$C$2:C7
- 条件:科目区域 $A$2:A7 对上 A7
- 公式形状:=SUMIFS(?, ?, ?)——哪一半要锁?
官方解法
展开 2 种解法(建议先自己试一次)
解法 1:扩张区域的 SUMIFS
=SUMIFS($C$2:C7, $A$2:A7, A7)
只有到第 7 行为止的 CASH 会被计算:100 + 250 - 80 + 40 = 310。BANK 的行被跳过,因为条件区域只到当前行、而且必须等于 A7。
解法 2:SUMIF 搭配同一组扩张区域
=SUMIF($A$2:A7, A7, $C$2:C7)
同样是扩张区域,只是 SUMIF 的参数顺序不同。不论用哪个,两个区域都必须同步扩张,否则科目与金额会错位。
函数指南
常见问题
怎么做「每个分组重新累计」的效果?
把区域从锁定的第一行开始扩张:=SUMIFS($C$2:C7, $A$2:A7, A7)。往下复制时只有终点移动,每一行只累计自己的分组到当前行。
为什么每一行都显示同一个数字?
区域整个被锁成绝对引用($C$2:$C$7),每一格都在加整列。把终点改回相对即可。