多币种店铺营收汇总计算逻辑优化技术问询
解决方案
现有数据
店铺表(Shop)
| 店铺 | 币种 |
|---|---|
| S1 | € |
| S2 | € |
| S3 | kr |
| S4 | £ |
| S5 | € |
汇率表(Currency)
| 币种 | 汇率 |
|---|---|
| € | 1.00000000000 |
| £ | 1.17100000000 |
| kr | 0.09730000000 |
问题说明
原公式 YearRevenue = SUM(Shop[Revenue]) * SUM(Currency[Exchange rate]) 逻辑错误,它会把所有店铺的营收总和直接乘以所有汇率的总和,完全忽略了店铺和币种的对应关系,导致结果错误。正确逻辑应该是先按单个店铺匹配对应币种的汇率,计算该店铺的换算后营收,再将所有店铺的换算结果汇总。
两种实现方案
方案1:新增换算后营收计算列
在Shop表中添加一个计算列,自动匹配当前店铺币种对应的汇率,计算单店换算后的营收:
ConvertedRevenue = Shop[Revenue] * RELATED(Currency[Exchange rate])
之后直接对这个新列求和就能得到总营收:
TotalYearRevenue = SUM(Shop[ConvertedRevenue])
方案2:直接编写正确的度量值
无需新增列,直接用迭代函数逐行计算每个店铺的换算营收再汇总,一步到位:
YearRevenue = SUMX(Shop, Shop[Revenue] * RELATED(Currency[Exchange rate]))
注:使用这个方案的前提是Shop表和Currency表已经通过「币种」字段建立了正确的关系。
内容的提问来源于stack exchange,提问作者Jeffrey Lionel van Houdt
相关产品推荐
相关产品推荐

