2016-08-25 5 views
2

Мы имеем требование, чтобы позволить пользователю выбирать, какую валюту он хочет видеть в приборной панели, как показано ниже примере:питания BI: Как динамически изменять валюту

enter image description here

По умолчанию, это GBP, если пользователь изменяется на USD, нам нужно показать траты на доллары США. Под капотом у нас уже есть таблица InvoiceDetail, которая содержит столбцы делать конвертацию валюты заранее:

SpendInGBP 
SpendInUSD 
SpendInEUR 

Я не знаю, как я могу отобразить, когда пользователь выбирает другую валюту, используя ChicletSlicer различным столбцам.

ответ

1

Если у вас есть таблица со всеми форматами, доступными для ее применения, это может быть достигнуто.

Я создал эти таблицы в качестве примера:

MyTable 

enter image description here

CurrencyFormat 

enter image description here

В 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, вы должны получить ожидаемый результат.

enter image description here

отметить также форматы, которые я использовал могу отличаться в зависимости от того, что вам нужно, так что вы должны добавить некоторые изменения в формате строку, сделать быстрое чтение из documentation об этом.

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

UPDATE: OP хочет получить сумму в правой колонке на основе ограничителя.

К счастью таблице есть столбец для каждой валюты, как вы нашли мое предложение к карте значение Slicer для вашей мерке, это окончательное выражение:

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

Позвольте мне знать, если вам нужна дополнительная помощь ,

+0

Большое спасибо за ваш ответ, я хочу получить правильное значение для траты на основе валюты, но вы дали мне представление о том, как использовать LASTNONBLANK, мою меру: «Проведите = IF (LASTNONBLANK (« Валюта »[Код]», 1) = «GBP», SUM (счет-фактура [SpendGBP]), IF (LASTNONBLANK («Валюта» [Код], 1) = «USD», SUM (Счет-фактура [SpendUSD]), SUM (Счет-фактура [SpendEUR]))) ', пожалуйста, обновите свой ответ, тогда я могу отметить его. –

+1

@CuongLe, сделано. Надеюсь, я помог вам с ответом. –

+0

Конечно, ваш ответ мне очень помог;) –

Смежные вопросы