如何为票务数据表格新增TotalSum(Tickets)累计求和列?
如何实现从首行到当前行的Ticket累计求和列
我有如下数据表:
| A | Sum(Tickets) |
|---|---|
| 01-2022 | 5 |
| 02-2022 | 2 |
| 03-2022 | 8 |
| 04-2022 | 1 |
| 05-2022 | 3 |
| 06-2022 | 3 |
| 07-2022 | 4 |
| 08-2022 | 1 |
| 09-2022 | 5 |
| 10-2022 | 5 |
| 11-2022 | 3 |
需要新增TotalSum(Tickets)列,实现从首行到当前行的累计求和,目标效果如下:
| A | Sum(Tickets) | TotalSum(Tickets) |
|---|---|---|
| 01-2022 | 5 | 5 |
| 02-2022 | 2 | 7 |
| 03-2022 | 8 | 15 |
| 04-2022 | 1 | 16 |
| 05-2022 | 3 | 19 |
| 06-2022 | 3 | 22 |
| 07-2022 | 4 | 26 |
| 08-2022 | 1 | 27 |
| 09-2022 | 5 | 32 |
| 10-2022 | 5 | 37 |
| 11-2022 | 3 | 40 |
解决方案1:SQL实现
如果数据存储在数据库中,使用窗口函数SUM() OVER()即可完成累计计算,需按月份列A排序保证顺序正确:
SELECT A, `Sum(Tickets)`, SUM(`Sum(Tickets)`) OVER (ORDER BY A) AS `TotalSum(Tickets)` FROM your_table_name ORDER BY A;
说明:你的月份格式MM-YYYY可直接按字符串排序,若数据库对列名有特殊字符要求,用反引号包裹即可。
解决方案2:Excel实现
公式法
在目标列第一个单元格(如C2)输入以下公式,下拉填充:
=SUM($B$2:B2)
$B$2固定起始行,B2随下拉自动变为B3、B4,实现逐行累计。
Power Query法
- 将数据导入Power Query
- 添加自定义列,使用公式:
List.Sum(List.Range(#"Changed Type"[Sum(Tickets)],0,Index()+1))
加载回Excel即可得到累计列。
解决方案3:Python Pandas实现
用cumsum()方法一步完成累计求和,先确保数据按月份排序:
import pandas as pd # 假设数据已加载到DataFrame df df = df.sort_values('A').reset_index(drop=True) df['TotalSum(Tickets)'] = df['Sum(Tickets)'].cumsum()
内容的提问来源于stack exchange,提问作者bbpeterson
相关产品推荐
相关产品推荐

