如何按指定分组汇总多列数据并合并COA进行统计
分组求和与合并统计实现方案
原始数据表格
| COA | 100 | 101 | 102 | 200 | 201 | 202 | 300 |
|---|---|---|---|---|---|---|---|
| 11000000000 | 1000 | 1200 | 1100 | 1000 | 1200 | 1100 | 1800 |
| 11200100000 | 1500 | 1400 | 1300 | 1500 | 1400 | 1300 | 1700 |
需求说明
将100、101、102归为一组求和(命名为100+),200、201、202归为一组求和(命名为200+),300单独保留,最终得到两个输出表:
第一个目标表(按COA分组求和)
| COA | 100+ | 200+ | 300 |
|---|---|---|---|
| 11000000000 | 3300 | 3300 | 1800 |
| 11200100000 | 4200 | 4200 | 1700 |
第二个目标表(合并两个COA的统计结果)
| COA | 100+ | 200+ | 300 |
|---|---|---|---|
| 11000000000 & 11200100000 | 7500 | 7500 | 3500 |
实现方法
方法一:Excel手动操作
1. 生成第一个分组求和表
- 在原始表格右侧空白区域(比如I1单元格)输入表头
100+,J1输入200+,K1输入300,L1输入COA - I2单元格输入公式:
=SUM(B2:D2),按回车后下拉填充到I3单元格 - J2单元格输入公式:
=SUM(E2:G2),下拉填充到J3单元格 - K2单元格直接引用原始表的H2单元格:
=H2,下拉填充到K3 - L2、L3分别引用原始表的A2、A3单元格
- 选中L1到K3的区域,复制后右键选择「粘贴为值」,即可得到第一个目标表
2. 生成合并COA的汇总表
- 在新的单元格区域(比如N1)设置表头:N1为
COA,O1为100+,P1为200+,Q1为300 - N2单元格输入文本:
11000000000 & 11200100000 - O2单元格输入公式:
=SUM(I2:I3),计算两个COA的100+总和 - P2单元格输入公式:
=SUM(J2:J3),计算200+总和 - Q2单元格输入公式:
=SUM(K2:K3),计算300总和 - 同样可以粘贴为值得到最终的合并表
方法二:Python(Pandas)代码实现
import pandas as pd # 构造原始数据 data = pd.DataFrame({ 'COA': ['11000000000', '11200100000'], '100': [1000, 1500], '101': [1200, 1400], '102': [1100, 1300], '200': [1000, 1500], '201': [1200, 1400], '202': [1100, 1300], '300': [1800, 1700] }) # 生成第一个分组求和表 grouped_df = data.copy() grouped_df['100+'] = grouped_df[['100', '101', '102']].sum(axis=1) grouped_df['200+'] = grouped_df[['200', '201', '202']].sum(axis=1) grouped_df = grouped_df[['COA', '100+', '200+', '300']] print("第一个输出表:") print(grouped_df) # 生成合并COA的汇总表 merged_df = grouped_df.sum(numeric_only=True).to_frame().T merged_df['COA'] = '11000000000 & 11200100000' merged_df = merged_df[['COA', '100+', '200+', '300']] print("\n第二个输出表:") print(merged_df)
内容的提问来源于stack exchange,提问作者hoa tran
相关产品推荐
相关产品推荐

