如何将多个衍生自单表的子表合并为一张汇总表
合并子表生成汇总表的实现方法
原始子表信息
Table 1(对应汇总表的Expiry)
| ID | PSC | BWC |
|---|---|---|
| A1 | 2 | 1 |
| B1 | 3 | 8 |
| C1 | 4 | 7 |
| D1 | 5 | 6 |
| Total | 14 | 22 |
Table 2(对应汇总表的Renew)
| ID | PSC | BWC |
|---|---|---|
| q1 | 5 | 11 |
| d1 | 3 | 8 |
| f1 | 4 | 7 |
| qw1 | 5 | 6 |
| Total | 17 | 32 |
Table 3(对应汇总表的DOD)
| ID | PSC | BWC |
|---|---|---|
| aq1 | 5 | 11 |
| as1 | 3 | 8 |
| sf1 | 14 | 7 |
| qsw1 | 5 | 16 |
| Total | 27 | 42 |
预期汇总表
| Name | PSC | BWC |
|---|---|---|
| Expiry | 14 | 22 |
| Renew | 17 | 32 |
| DOD | 27 | 42 |
方法一:Excel/Google Sheets 实现
手动提取法
- 新建汇总表,设置表头为
Name、PSC、BWC - 在
Name列依次填入Expiry、Renew、DOD - 直接引用子表的Total行数值:比如Expiry的PSC值,输入
=Sheet1!对应Total行PSC单元格地址,BWC值同理,完成后拖动填充其他行
公式批量提取法
如果子表数量多,用INDEX+MATCH自动定位Total行:
在汇总表B2单元格(Expiry的PSC)输入:
=INDEX(Sheet1!$B:$C,MATCH("Total",Sheet1!$A:$A,0),1)
修改公式最后一位参数为2,即可提取BWC值,然后下拉填充其他行即可。
方法二:Python Pandas 自动化实现
如果需要批量处理,用代码可以高效完成:
import pandas as pd # 读取子表(假设子表已保存为csv文件) df1 = pd.read_csv("table1.csv") df2 = pd.read_csv("table2.csv") df3 = pd.read_csv("table3.csv") # 提取每个表的Total行数据 total_data = [ {"Name": "Expiry", "PSC": df1.loc[df1["ID"] == "Total", "PSC"].iloc[0], "BWC": df1.loc[df1["ID"] == "Total", "BWC"].iloc[0]}, {"Name": "Renew", "PSC": df2.loc[df2["ID"] == "Total", "PSC"].iloc[0], "BWC": df2.loc[df2["ID"] == "Total", "BWC"].iloc[0]}, {"Name": "DOD", "PSC": df3.loc[df3["ID"] == "Total", "PSC"].iloc[0], "BWC": df3.loc[df3["ID"] == "Total", "BWC"].iloc[0]} ] # 生成汇总表 summary_df = pd.DataFrame(total_data) # 输出或保存 print(summary_df) summary_df.to_csv("summary_table.csv", index=False)
内容的提问来源于stack exchange,提问作者harry
相关产品推荐
相关产品推荐

