Power BI DAX - Как использовать функцию переключения для отображения обоих выбранных значений - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть отчет, в котором я сравниваю различные продажи регистра.

Он работает совершенно нормально, когда я выбираю ОДИН регистр для отображения, но когда я выбираю второй регистр, он не отображает данные.

Было бы удивительно, если бы я мог как-то выбрать несколько регистров и отобразить их так же, как он отображает один регистр

В настоящее время я использую функцию переключения для достижения этого.

вот мой DAX.

Позволяет переключаться между выбранными консолями

SPoS = if(HASONEVALUE('sp'[Select PoS]),VALUES('sp'[Select PoS]),BLANK())

Отображает результаты выбранной консоли

SP_PoS = SWITCH( [SPoS], "DriveThru PoS",dt[SP_drivethrupos], "Main PoS",dt[SP_mainpos], "Backup PoS",dt[SP_secondpos], "Cafe PoS",dt[SP_cafepos])

позволяет выбранной консоли динамически изменять меру

SP_cafepos = IF(HASONEVALUE(dm[Select a Measure]),SWITCH(VALUES(dm[Select a Measure]),"SalesInc",[sp_sales],"Quantity",[sp_qty],"Gross Profit",[rp_gp]))
SP_drivethrupos = IF(HASONEVALUE(dm[Select a Measure]),SWITCH(VALUES(dm[Select a Measure]),"SalesInc",[sp_sales],"Quantity",[sp_qty],"Gross Profit",[rp_gp]))
SP_mainpos = IF(HASONEVALUE(dm[Select a Measure]),SWITCH(VALUES(dm[Select a Measure]),"SalesInc",[sp_sales],"Quantity",[sp_qty],"Gross Profit",[rp_gp]))
SP_secondpos = IF(HASONEVALUE(dm[Select a Measure]),SWITCH(VALUES(dm[Select a Measure]),"SalesInc",[sp_sales],"Quantity",[sp_qty],"Gross Profit",[rp_gp]))

Позволяет мне изменить меру, которую я хочу отобразить

SelectedMeasure = IF(HASONEVALUE(dm[Select a Measure]),SWITCH(VALUES(dm[Select a Measure]),"SalesInc",SUM(dt[SalesInc]),"Quantity",SUM(dt[Quantity]),"Gross Profit",SUM(dt[GP])))

Iиспользуйте эти меры для фильтрации в правильном регистре

sp_qty = CALCULATE (SUM ( dt[Quantity]),FILTER ( dt, dt[RegisterID] IN VALUES ( 'sp'[RegisterID]) ))
sp_sales = CALCULATE (SUM ( dt[SalesInc]),FILTER ( dt, dt[RegisterID] IN VALUES ( 'sp'[RegisterID]) ))
sp_gp = CALCULATE (SUM ( dt[gp]),FILTER ( dt, dt[RegisterID] IN VALUES ( 'sp'[RegisterID]) ))

Некоторые изображения ниже для ясности

One Register Selected Works Perfectly

2nd Register Selected Displays Nothing

Рисунок 1: Один регистр выбранных произведений отлично

Рисунок 2: Второй регистр выбранных отображений ничего не показывает

Рисунок3: Структура данных

Data Structure

...