Power BI:如何动态更改货币

Power BI: How to dynamically change currency

我们要求允许用户选择他想在仪表板中看到的货币,如下例所示:

默认为GBP,如果用户更改为USD,我们需要以美元显示支出。在幕后,我们已经有了 table InvoiceDetail,其中包含预先进行货币转换的列:

SpendInGBP
SpendInUSD
SpendInEUR

当用户使用 ChicletSlicer 选择不同的货币到不同的列时,我不确定如何映射。

如果您有一个 table 包含所有可应用的格式,就可以实现。

我创建了这些 table 作为示例:

MyTable

CurrencyFormat

MyTable table 中,我创建了两个名为 FormatTotal Sales 的度量。

Format = LASTNONBLANK ( CurrencyFormat[Format], 1 )

Total Sales = Total Sales = FORMAT(SUM(MyTable[Sales]),[Format])

注意 Total Sales 度量使用 [Format] 度量从切片器中获取选定的格式。

添加 ChicletSlicer 并在 Category 窗格中设置 CurrencyFormat table 的 FormatName 列,您应该会得到预期的结果。

另请注意,我使用的格式可能与您需要的不同,因此您必须对格式字符串添加一些更改,请快速阅读 documentation 关于它的内容。

    Format            Region
$#,##0;($#,##0)     SpendInUSD
£#,##0;(£#,##0)     SpendInGBP
€#,##0;(€#,##0)     SpendInEUR

更新: OP 想要根据切片器获取右列的总和。

幸运的是,您的 table 对每种货币都有一列,正如您在我将切片器值映射到您的度量的建议中发现的那样,这是最终表达式:

Spend =
IF (
    LASTNONBLANK ( 'Currency'[Code], 1 ) = "GBP",
    SUM ( Invoice[SpendGBP] ),
    IF (
        LASTNONBLANK ( 'Currency'[Code], 1 ) = "USD",
        SUM ( Invoice[SpendUSD] ),
        SUM ( Invoice[SpendEUR] )
    )
) 

如果您需要进一步的帮助,请告诉我。