是否可以在 Power BI Desktop 的矩阵中创建数字范围切片器和筛选数据?

Is it possible to create numeric range slicer and filter data in matrix in Power BI Desktop?

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

是否可以创建范围切片器(如下所示),它会根据保费金额过滤矩阵中的数据?

查询中的数据如下所示:

所以每个 ControlNoPremum 的总和应该对应于范围切片器。

例如 ControlNo 10 应该在 10,000 and 20,000 之间。因为 3,000 + 9,000 = 12,000 美元

ControlNo 20应该在20,000 and 30,000之间的范围内 因为 15,000 + 7,000 = 22,000 美元

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

先创建一个table'Ranges'。您可以导入它或使用“主页”选项卡上的“输入数据”。它应该是这样的:

然后创建这三个masures:

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 函数。这就是为什么您必须在此 maesure 中使用 VAR RETURN 或 CALCULATE(expression,FILTER()) 构造。

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

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

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"
    )

它的缺点是它不是度量,并且可能不会以您想要的方式与您的切片器交互,因为计算列不受切片器的影响。


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

例如,您可以右键单击 Premium 列和 select 组,然后选择数据的分类方式。

在这种情况下,这对您不起作用,因为您希望在聚合级别进行分类。