Power BI中基于另一表选择逐行计算价格(乘/除汇率)问题
Power BI根据用户选择的货币动态计算价格的解决方案
核心思路
自定义列是数据加载时生成的静态值,无法响应切片器的动态选择,因此必须用**度量值(Measure)**实现实时计算,同时确保货币选择表与业务表无关联,避免筛选冲突。
具体步骤
调整表关系:确保
Currency Choice表与Purchases表无任何关系(若已建立关系,需在模型视图中删除)。创建获取用户选择的度量值:
Selected Currency Value = SELECTEDVALUE('Currency Choice'[Value], 1)
SELECTEDVALUE获取切片器选中的货币对应值,默认值设为1(对应mxn),避免无选择时出错。
- 创建动态计算新价格的度量值:
New Price = VAR SelectedVal = [Selected Currency Value] VAR CurrentRowCurrency = MAX(Purchases[Currency]) VAR CurrentRowPrice = MAX(Purchases[Price]) VAR CurrentRowRate = MAX(Purchases[Rate]) RETURN SWITCH(TRUE(), // 选择usd(值2)时,mxn货币行除以汇率 SelectedVal = 2 && CurrentRowCurrency = "mxn", DIVIDE(CurrentRowPrice, CurrentRowRate), // 选择mxn(值1)时,usd货币行乘以汇率 SelectedVal = 1 && CurrentRowCurrency = "usd", CurrentRowPrice * CurrentRowRate, // 同货币时直接返回原价 CurrentRowPrice )
- 用
VAR定义变量提升可读性,DIVIDE函数避免除零错误,SWITCH替代多层IF更简洁。
使用方法
将New Price度量值添加到包含Purchases表字段的可视化表格中,当用户通过切片器选择货币时,表格会实时更新每行的计算结果,完全匹配你期望的逻辑。
内容的提问来源于stack exchange,提问作者DannieelMH
相关产品推荐
相关产品推荐

