如何用SUMPRODUCT实现多币种金额转GBP自动求和?
解决不同币种金额转换为GBP并自动求和的问题
场景说明
假设你的数据结构如下(A列为币种代码,B列为对应金额):
| A列(币种) | B列(金额) |
|---|---|
| HKD | 10 |
| SGD | 10 |
核心需求:将各币种金额乘以对应「币种转GBP」的汇率后求和,新增币种时无需修改公式即可自动纳入计算。
方案1:使用命名单元格存储汇率
如果你已经为每个币种的汇率定义了命名单元格(比如GBPHKD对应1HKD可兑换的GBP金额,GBPSGD对应1SGD可兑换的GBP金额),直接使用以下公式:
=SUMPRODUCT(B1:B2 * INDIRECT("GBP"&A1:A2))
你原公式的问题
你之前尝试的sumproduct(Indirect(concatenate(A1:A2),"GBP"),B1:B2)有两个关键错误:
- 拼接顺序颠倒:应该是
"GBP"+ 币种代码(即"GBP"&A1:A2),而非币种代码在前 - 参数逻辑错误:SUMPRODUCT需要两个数组相乘后求和,正确写法是将金额数组与汇率数组相乘后传入函数
方案2:使用汇率数据表(推荐)
如果不想手动逐个定义币种命名单元格,推荐用数据表统一管理汇率(比如在Sheet2中建立如下表格):
| A列(币种) | B列(GBP汇率) |
|---|---|
| HKD | 0.098 |
| SGD | 0.72 |
新版Excel(支持XLOOKUP)
=SUMPRODUCT(B1:B2 * XLOOKUP(A1:A2, Sheet2!A:A, Sheet2!B:B, 0))
旧版Excel(无XLOOKUP)
=SUMPRODUCT(B1:B2 * INDEX(Sheet2!B:B, MATCH(A1:A2, Sheet2!A:A, 0)))
自动适配新增币种
把汇率表转换为Excel结构化表(选中数据后按Ctrl+T)并命名为tblExchange,公式可自动适配新增币种,无需手动修改:
=SUMPRODUCT(B1:B2 * XLOOKUP(A1:A2, tblExchange[币种], tblExchange[GBP汇率], 0))
内容的提问来源于stack exchange,提问作者Cla Rosie
相关产品推荐
相关产品推荐

