Power BI - 在矩阵总计上使用切片器

时间:2021-02-08 05:09:43

标签: powerbi powerbi-desktop

我一直在研究 this Power BI Report 并希望获得有关用于矩阵的切片器的帮助。

我需要切片器“MB Data Used”、“Calls Made”和“SMS Sent”来切片 Matrix Grand Total 字段(最右侧)而不是值字段。我目前的切片器在值字段上工作得很好。

数据由表格填充:

----------------------------------------------------
|ph_id | month | data_used | calls_made | sms_sent |
| 1    | 1/1/19| 123       | 0          | 33       |
| 2    | 1/1/19| 87        | 22         | 0        |
| 3    | 1/1/19| 0         | 0          | 0        |
| 1    | 1/2/19| 0         | 55         | 33       |
| 2    | 1/2/19| 87        | 22         | 77       |
| 3    | 1/2/19| 0         | 0          | 0        |
----------------------------------------------------

链接到其他几个以获取相关数据。

我的目标是能够查看哪些电话号码在过去 X 个月内没有使用数据/通话/短信,而不仅仅是过滤包含 0 的电话号码。在这种情况下,当切片器都设置为0 并且日期范围设置为 1/1/19-1/2/19,只应显示 ph_id 3。

编辑: 韦伯- see this image

1 个答案:

答案 0 :(得分:0)

您需要为切片器使用另一个不相关的表。创建此类表的最佳方法是使用建模选项卡中的假设参数选项(假设您有任何最新版本的 PBI 桌面)。

或者,如果您希望切片器基于来自实际数据的调用次数,您可以使用新表选项和以下公式创建切片器表:CallSlicer = GENERATESERIES(MIN(Data[calls_made]), MAX(Data[calls_made]), 1)。末尾的表示步长,因此您可以调整它,例如,如果您希望用户以 10 或 20 为增量使用切片器。

现在,当您使用生成的 CallSlicer 列时,如下所示:

enter image description here

您可以像这样过滤结果:Your filtered measure = CALCULATE([your_measure], FILTER(Data, Data[calls_made] >= MIN(CallSlicer[CallSlicer]) && Data[calls_made] <= MAX(CallSlicer[CallSlicer])))。然后在矩阵视觉中使用过滤的度量。

编辑: 这是一个工作示例:https://1drv.ms/u/s!AmqvMyRqhrBpgtRGGbJ6w-b66uBENQ?e=67JduS

我已经更新了示例 - 现在它显示了 2 个场景。一张表在单个单元格级别对切片器做出反应,另一张表在总计级别对切片器做出反应。

enter image description here

让第一个表工作的​​关键如上所示,下面是第二个表的解决方案,它在总计级别过滤行:

创建一个显示所有日期/月份总和的度量,例如:

CallSumTotal =
VAR tab =
    FILTER (
        CALCULATETABLE (
            SUMMARIZE ( Data, Data[id], "calls_made", SUM ( Data[calls_made] ) ),
            ALLSELECTED ( Data[month] )
        ),
        [calls_made] >= MIN ( CallSlicer[Value] )
            && [calls_made] <= MAX ( CallSlicer[Value] )
    )
RETURN
    SUMX ( tab, [calls_made] )

现在在矩阵中使用常规总和度量,但为 CallSumTotal 创建一个视觉级别过滤器并将其设置为 is not blank