是否可以在Power BI Desktop中创建数字范围切片器并过滤矩阵中的数据?

时间:2018-10-15 15:06:15

标签: powerbi dax powerbi-embedded powerbi-desktop

我有两个度量值的矩阵:Total PremiumBinds Total ................................................... ...........

enter image description here

是否可以创建范围切片器(类似于以下内容),以根据溢价金额过滤矩阵中的数据?

enter image description here

查询中的数据如下:

enter image description here

因此,每个Premum的{​​{1}}的总和应对应于范围切片器。

例如ControlNo 10应该在ControlNo之间。因为3,000 + 9,000 = $ 12,000

并且10,000 and 20,000 20应该在ControlNo之间的范围内 因为15,000 + 7,000 = $ 22,000

.PBIX文件可以在这里访问:https://www.dropbox.com/s/a3l6e51r39t3kd1/GrossBudgetTest.pbix?dl=0

2 个答案:

答案 0 :(得分:3)

首先创建一个表“ Ranges”。您可以导入它,也可以使用“主页”选项卡上的“输入数据”。它应该看起来像这样:

enter image description here

然后创建以下三种方法:

MinThreshold = MIN('Ranges'[Min])

MaxThreshold = MAX('Ranges'[Max])

Total Premium per ControlNo in Range =
VAR selectedControlNo =
    SELECTEDVALUE ( 'fact_Premium'[ControlNo] )
RETURN
    IF (
        CALCULATE ( [Total Premium], 'fact_Premium'[ControlNo] = selectedControlNo )
            >= [MinThreshold]
            && CALCULATE ( [Total Premium], 'fact_Premium'[ControlNo] = selectedControlNo )
                < [MaxThreshold],
        [Total Premium],
        BLANK ()
    )

您不能直接在CALCULATE函数的[Filter1]中使用SELECTEDVALUE函数。这就是为什么在这种方法中必须使用VAR RETURN或CALCULATE(expression,FILTER())构造的原因。

现在,您可以创建以下矩阵和切片器。将“范围” [Ranges]放在切片器中。将'fact_Premium'[ControlNo]放在行上,并将[每个ControlNo的总溢价在范围内]放在矩阵的值上。

enter image description here

答案 1 :(得分:2)

Marco的答案看起来不错,但是您也可以使用计算列来实现分组,而不用定义新表并将该列用作切片器:

  if(page_json[i]["page_title"] == 'whatever title'){ 
   //do something
  }
    if (page_json[i]["page_description"] == 'whatever description'){
    //do something here
    }

这样做的缺点是它不是一种度量,并且可能无法按您希望的方式与切片器进行交互,因为计算的列不受切片器的影响。


请注意Power BI确实有一些built-in binning capability

例如,您可以右键单击Range = VAR Premium = CALCULATE(SUM(fact_Premium[Premium]), ALLEXCEPT(fact_Premium, fact_Premium[ControlNo]) ) RETURN SWITCH(TRUE(), Premium <= 10000, "From 0 to 10,000", Premium <= 20000, "From 10,000 to 20,000", Premium <= 30000, "From 20,000 to 30,000", Premium <= 40000, "From 30,000 to 40,000", Premium > 40000, "More than 40,000" ) 列并选择“组”,然后选择要对数据进行装箱的方式。

Binning

在这种情况下,这对您不起作用,因为您希望以汇总级别进行装箱。