我有两个度量值的矩阵:Total Premium
和Binds Total
................................................... ...........
是否可以创建范围切片器(类似于以下内容),以根据溢价金额过滤矩阵中的数据?
查询中的数据如下:
因此,每个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
答案 0 :(得分:3)
首先创建一个表“ Ranges”。您可以导入它,也可以使用“主页”选项卡上的“输入数据”。它应该看起来像这样:
然后创建以下三种方法:
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的总溢价在范围内]放在矩阵的值上。
答案 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"
)
列并选择“组”,然后选择要对数据进行装箱的方式。
在这种情况下,这对您不起作用,因为您希望以汇总级别进行装箱。