Power BI DAX-如何使用开关功能显示两个选定值

时间:2019-02-21 00:24:01

标签: powerbi reporting dax

我有一份报告,在此我可以比较不同的套期销售。

当我选择一个寄存器来显示时,它完全可以正常工作-但是当我选择第二个寄存器时,它不显示任何数据。

如果我能以某种方式选择多个寄存器并以与显示一个寄存器相同的方式显示它们,那将是惊人的

我目前正在使用switch功能来实现这一目标。

这是我的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])))
  

我使用这些措施来过滤到正确的寄存器

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

0 个答案:

没有答案