DAX 中的分组和求和

问题描述 投票:0回答:1

我有一个示例代码如下。我想找到每种货币的汇率乘以其金额。

Curreny  Amount
usd          100
eur           75
cny           50
eur           25
jpy           25

预期答案

100*1 + 75*0.9 + 50*0.5 + 25*0.9 + 25*0.7

我想做的不起作用的是:

  _RateMeasure1 = 
    
    VAR CurrencyAmounts = SUMMARIZE('myDF',myDF[Currency], 'myDF'[Amount])
    
    VAR USD_Rate = MAXX(FILTER('_SlicerTable', _SlicerTable[Currency] = "USD"), '_SlicerTable'[RateCol1])
    VAR EUR_Rate = MAXX(FILTER('_SlicerTable', _SlicerTable[Currency] = "EUR"), '_SlicerTable'[RateCol1])
    VAR CNY_Rate = MAXX(FILTER('_SlicerTable', _SlicerTable[Currency] = "CNY"), '_SlicerTable'[RateCol1])
    VAR JPY_Rate = MAXX(FILTER('_SlicerTable', _SlicerTable[Currency] = "JPY"), '_SlicerTable'[RateCol1])
    
    RETURN
    SUMX(
        CurrencyAmounts,
        SWITCH(
            myDF[Currency],
            "USD", 'myDF'[Amount] * USD_Rate,
            "EUR", 'myDF'[Amount] * EUR_Rate,
            "CNY", 'myDF'[Amount] * CNY_Rate,
            "JPY", 'myDF'[Amount] * JPY_Rate
        )
    )

_SlicerTable 是如下表格

Currency   RateCol1   
USD         1          
CNY         0.5        
EUR         0.9        
JPY         0.7         
powerbi dax daxstudio
1个回答
1
投票

这可以通过以下方式完成:

  1. 为您的货币换算创建维度表

  1. 与事实表创建关系,例如连接货币 - 货币
  2. 最后,您可以创建一个度量来计算您的转化

_RateMeasure = SUMX(myDF,myDF[金额]*RELATED('货币换算'[RateCol1])) --sumx 是一个迭代器函数,逐行进行。相关参考相关专栏RateCol1

© www.soinside.com 2019 - 2024. All rights reserved.