按类别累计求和至指定列:截至指定月份的总成本计算
按类别计算月度累计总成本
现有按月份、类型(Type)划分的成本数据,同一类型对应多行记录,需实现按类别计算从1月至指定月份的累计总成本。
输入数据
| Type | Jan | Feb | Mar |
|---|---|---|---|
| A1 | 1000 | 1000 | 1000 |
| A1 | 2000 | 2000 | 2000 |
| A1 | 5000 | 5000 | 5000 |
| A2 | 300 | 300 | 300 |
| A2 | 0 | 0 | 0 |
| B1 | 100 | 200 | 100 |
| B2 | 0 | 0 | 400 |
| B2 | 250 | 250 | 250 |
期望汇总结果
| Type | Jan | Feb | Mar |
|---|---|---|---|
| A1 | 8000 | 16000 | 24000 |
| A2 | 300 | 600 | 900 |
| B1 | 100 | 300 | 400 |
| B2 | 250 | 500 | 1150 |
实现方法(Google Sheets)
方法1:分步计算(先小计再累计)
提取唯一类型并计算月度小计
- 在空白列(如E列)输入
=UNIQUE(A2:A9),提取所有不重复的Type值 - F2单元格输入
=SUMIF($A$2:$A$9, E2, $B$2:$B$9),下拉填充,得到各类型1月总成本 - G2单元格输入
=SUMIF($A$2:$A$9, E2, $C$2:$C$9),下拉填充,得到各类型2月总成本 - H2单元格输入
=SUMIF($A$2:$A$9, E2, $D$2:$D$9),下拉填充,得到各类型3月总成本
- 在空白列(如E列)输入
转换为累计值
- 1月累计值即为自身小计,无需修改
- G2单元格修改为
=F2 + SUMIF($A$2:$A$9, E2, $C$2:$C$9),得到2月累计(1月+2月) - H2单元格修改为
=G2 + SUMIF($A$2:$A$9, E2, $D$2:$D$9),得到3月累计(2月累计+3月)
下拉填充G、H列公式即可完成所有类型的累计计算。
方法2:QUERY函数一步生成结果
在空白单元格输入以下公式,直接输出汇总后的累计表格:
=QUERY( {A2:D9, ARRAYFORMULA(IF(A2:A9<>"", MMULT(N(COLUMN(B2:D9)<=TRANSPOSE(COLUMN(B2:D9))), B2:D9*1), "")) }, "SELECT Col1, SUM(Col5), SUM(Col6), SUM(Col7) GROUP BY Col1 LABEL Col1 'Type', SUM(Col5) 'Jan', SUM(Col6) 'Feb', SUM(Col7) 'Mar'" )
公式说明:
ARRAYFORMULA(MMULT(...))部分会自动计算每行从1月到对应月份的累计值QUERY函数按Type分组求和,直接生成最终的累计汇总表
内容的提问来源于stack exchange,提问作者mmalmeida
相关产品推荐
相关产品推荐

