我们要求用户在仪表板中选择他想要查看的货币,如下例所示:
默认情况下,它是GBP
,如果用户更改为USD
,我们需要按美元显示支出。在幕后我们已经有了表InvoiceDetail
,其中包含事先进行货币转换的列:
SpendInGBP
SpendInUSD
SpendInEUR
当用户使用ChicletSlicer选择不同的货币到不同的列时,我不确定如何映射。
答案 0 :(得分:2)
如果您有一个包含所有可用格式的表格,则可以实现。
我已经创建了这些表格作为示例:
MyTable
CurrencyFormat
在MyTable
表中,我创建了两个名为Format
和Total Sales
的措施。
Format = LASTNONBLANK ( CurrencyFormat[Format], 1 )
Total Sales = Total Sales = FORMAT(SUM(MyTable[Sales]),[Format])
注意Total Sales
指标使用[Format]
指标从切片器中获取所选格式。
添加ChicletSlicer并在FormatName
窗格中的CurrencyFormat
表格中设置Category
列,您应该会得到预期的结果。
另请注意,我使用的格式可能因您的需要而异,因此您必须对格式字符串添加一些更改,请快速阅读documentation。
Format Region
$#,##0;($#,##0) SpendInUSD
£#,##0;(£#,##0) SpendInGBP
€#,##0;(€#,##0) SpendInEUR
更新: OP希望根据切片器获取正确列的总和。
幸运的是,您的表格中包含每种货币的列,正如您在我的建议中找到的将切片器值映射到您的度量时,这是最终表达式:
Spend =
IF (
LASTNONBLANK ( 'Currency'[Code], 1 ) = "GBP",
SUM ( Invoice[SpendGBP] ),
IF (
LASTNONBLANK ( 'Currency'[Code], 1 ) = "USD",
SUM ( Invoice[SpendUSD] ),
SUM ( Invoice[SpendEUR] )
)
)
如果您需要进一步的帮助,请告诉我。