Power BI - 在矩阵总计上使用切片器
Power BI - Using a slicer on a Matrix Grand total
我一直在研究 this Power BI Report 并希望得到一些关于用于矩阵的切片器的帮助。
我需要切片器“MB Data Used”、“Calls Made”和“SMS Sent”来切片 Matrix Grand Total 字段(在最右侧)而不是值字段。我当前的切片器在值字段上工作得很好。
数据由 table:
填充
----------------------------------------------------
|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 |
----------------------------------------------------
链接到其他几个以获取相关数据。
我的目标是能够查看哪些 phone 数字在过去 X 个月内没有 data/call/sms 使用,而不是仅仅过滤掉包含 0 的数字。在这种情况下,当切片器都设置为 0,日期范围设置为 1/1/19-1/2/19,只有 ph_id 3 应该显示。
编辑:
W.B。 - see this image
您需要为切片器使用另一个不相关的 table。创建这种 table 的最佳方法是使用建模选项卡中的假设参数选项(假设您有任何最新版本的 PBI Desktop)。
或者,如果您希望切片器基于实际数据的调用次数,您可以使用新 table 选项和以下公式创建切片器 table:CallSlicer = GENERATESERIES(MIN(Data[calls_made]), MAX(Data[calls_made]), 1)
.末尾的那个表示步骤,因此如果您希望用户以 10 或 20 的增量使用切片器,您可以调整它。
现在,当您使用生成的 CallSlicer 列时,它看起来像这样:
您将能够像这样过滤您的结果: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 个场景。一个 table 在单个单元格级别对切片器作出反应,另一个在总计级别对切片器作出反应。
让第一个 table 工作的关键如上所示,下面是第二个 table 的解决方案,它在总计级别过滤行:
创建一个将显示所有 dates/months 总和的度量,例如:
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
我一直在研究 this Power BI Report 并希望得到一些关于用于矩阵的切片器的帮助。
我需要切片器“MB Data Used”、“Calls Made”和“SMS Sent”来切片 Matrix Grand Total 字段(在最右侧)而不是值字段。我当前的切片器在值字段上工作得很好。
数据由 table:
填充----------------------------------------------------
|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 |
----------------------------------------------------
链接到其他几个以获取相关数据。
我的目标是能够查看哪些 phone 数字在过去 X 个月内没有 data/call/sms 使用,而不是仅仅过滤掉包含 0 的数字。在这种情况下,当切片器都设置为 0,日期范围设置为 1/1/19-1/2/19,只有 ph_id 3 应该显示。
编辑: W.B。 - see this image
您需要为切片器使用另一个不相关的 table。创建这种 table 的最佳方法是使用建模选项卡中的假设参数选项(假设您有任何最新版本的 PBI Desktop)。
或者,如果您希望切片器基于实际数据的调用次数,您可以使用新 table 选项和以下公式创建切片器 table:CallSlicer = GENERATESERIES(MIN(Data[calls_made]), MAX(Data[calls_made]), 1)
.末尾的那个表示步骤,因此如果您希望用户以 10 或 20 的增量使用切片器,您可以调整它。
现在,当您使用生成的 CallSlicer 列时,它看起来像这样:
您将能够像这样过滤您的结果: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 个场景。一个 table 在单个单元格级别对切片器作出反应,另一个在总计级别对切片器作出反应。
让第一个 table 工作的关键如上所示,下面是第二个 table 的解决方案,它在总计级别过滤行:
创建一个将显示所有 dates/months 总和的度量,例如:
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