如何在新列中按类别汇总销售数据及按季度/产品季度求和单位
如何在新列中按类别汇总销售数据?
我希望创建一个新列,用于按Quarter(季度)对Unit(单位)进行求和;同时还需创建另一个新列,按Product(产品)与Quarter的组合对Unit进行求和。表格结构及预期结果如下(最后两列为预期结果):
| Unit | Quarter | Product | Unit by Quarter | Un by Q&Product |
|---|---|---|---|---|
| 4 | Q1 | Apple | 9 | 4 |
| 5 | Q1 | Orange | 9 | 5 |
| 6 | Q2 | Pearl | 12 | 6 |
| 6 | Q2 | Apple | 12 | 6 |
| 3 | Q3 | Apple | 5 | 3 |
| 2 | Q3 | Apple | 5 | 2 |
| 6 | Q4 | Apple | 11 | 8 |
| 3 | Q4 | Pearl | 11 | 3 |
| 2 | Q4 | Apple | 11 | 8 |
解决方案
1. Excel 公式实现
按季度求和(Unit by Quarter 列)
在D2单元格输入公式后下拉填充:=SUMIF($B:$B, B2, $A:$A)逻辑:匹配当前行的季度值,对A列中所有同季度的Unit值求和。
按产品+季度组合求和(Un by Q&Product 列)
在E2单元格输入公式后下拉填充:=SUMIFS($A:$A, $B:$B, B2, $C:$C, C2)逻辑:同时匹配当前行的季度和产品值,对A列中符合双条件的Unit值求和。
若使用Excel 365/新版Excel,可改用更简洁的动态数组写法:
=SUM(FILTER($A:$A, $B:$B=B2)) // 按季度求和 =SUM(FILTER($A:$A, ($B:$B=B2)*($C:$C=C2))) // 按产品+季度求和
2. Python Pandas 实现
假设数据存储在DataFrame中,通过groupby+transform快速生成汇总列:
import pandas as pd # 构造示例数据 data = { 'Unit': [4,5,6,6,3,2,6,3,2], 'Quarter': ['Q1','Q1','Q2','Q2','Q3','Q3','Q4','Q4','Q4'], 'Product': ['Apple','Orange','Pearl','Apple','Apple','Apple','Apple','Pearl','Apple'] } df = pd.DataFrame(data) # 添加按季度求和列 df['Unit by Quarter'] = df.groupby('Quarter')['Unit'].transform('sum') # 添加按产品+季度组合求和列 df['Un by Q&Product'] = df.groupby(['Quarter', 'Product'])['Unit'].transform('sum') print(df)
运行后将直接生成与预期一致的结果表格。
内容的提问来源于stack exchange,提问作者Danhadnagy
相关产品推荐
相关产品推荐

