如何在预算电子表格中按指定月份列执行aggregate sum?
实现截至指定月份X的汇总求和方案
问题说明
现有一份月度预算表格,结构如下:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Salary | Joe | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 |
| Salary | Mary | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 | 2000 |
| Office Enhancements | Printer | 1000 |
需要实现:输入指定月份X后,按类别汇总截至该月份的总金额。例如:
- 输入月份3时,结果为「Salary 12000」、「Office Enhancements 0」
- 输入月份6时,结果为「Salary 24000」、「Office Enhancements 1000」
解决方案
在Google表格中,可通过以下步骤实现:
- 选择一个单元格(如P1)作为月份输入框,输入目标月份X(3、6等)。
- 在空白单元格(如P3)中输入以下数组公式,按回车即可自动生成所有类别的汇总结果:
=QUERY( { A2:A4, BYROW(C2:N4, LAMBDA(row, SUM(INDEX(row,,1):INDEX(row,,P1)))) }, "select Col1, sum(Col2) group by Col1 label sum(Col2) ''" )
公式说明
BYROW(C2:N4, LAMBDA(row, SUM(INDEX(row,,1):INDEX(row,,P1)))):遍历每一行数据,计算该行从第1列到第X列的总和。{A2:A4, ...}:将类别列与每行的月度累计和合并为新的数据集。QUERY(..., "select Col1, sum(Col2) group by Col1 label sum(Col2) ''"):按类别分组,对每行的累计和进行汇总,最终输出类别名称及对应总金额。
验证结果
- 当P1输入3时,公式输出:
Salary 12000 Office Enhancements 0 - 当P1输入6时,公式输出:
Salary 24000 Office Enhancements 1000
内容的提问来源于stack exchange,提问作者mmalmeida
相关产品推荐
相关产品推荐

