Excel:匹配主表与调整表Account键,实现账户金额调整的方法
账户金额调整实现方案
我有一张主表(Master table),包含所有账户(Account)及对应的原有金额(Amount);还有一张独立的调整表(Adjustment table),用户可从中选择主表中的账户并指定调整金额(Adjustment Amount)。需要完成以下操作:
- 在调整表中筛选已选择的账户
- 在主表中匹配对应的账户
- 用调整金额对主表中的原有金额进行调整
主表
| Account | Amount |
|---|---|
| 1 | 10 000 |
| 3 | 15 000 |
调整表
| Account | Adjustment Amount |
|---|---|
| 1 | 7 000 |
预期结果表
| Account | Amount |
|---|---|
| 1 | 17 000 |
| 3 | 15 000 |
实现方法
1. SQL 实现
通过LEFT JOIN关联两张表,用COALESCE处理无调整记录的账户,保证原有金额不变:
SELECT m.Account, m.Amount + COALESCE(a.Adjustment_Amount, 0) AS Amount FROM Master_Table m LEFT JOIN Adjustment_Table a ON m.Account = a.Account;
2. Excel 实现
在主表新增计算列,用VLOOKUP匹配调整金额(假设主表在Sheet1,调整表在Sheet2):
在Sheet1的C2单元格输入公式后下拉填充:
=B2 + IFERROR(VLOOKUP(A2, Sheet2!A:B, 2, FALSE), 0)
3. Python(Pandas)实现
通过merge关联数据,填充空值后计算调整金额:
import pandas as pd # 构造示例数据 master_df = pd.DataFrame({'Account': [1, 3], 'Amount': [10000, 15000]}) adjustment_df = pd.DataFrame({'Account': [1], 'Adjustment Amount': [7000]}) # 关联并计算调整后金额 result_df = master_df.merge(adjustment_df, on='Account', how='left') result_df['Amount'] = result_df['Amount'] + result_df['Adjustment Amount'].fillna(0) result_df = result_df.drop('Adjustment Amount', axis=1) print(result_df)
内容的提问来源于stack exchange,提问作者lancelot
相关产品推荐
相关产品推荐

