我有这张桌子
usr box app device bucket bucket_box bucket_app bucket_box_app month
u1 b1 a1 d1 > 3 3 devices 2 devices 2 devices 201809
u1 b1 a1 d2 > 3 3 devices 2 devices 2 devices 201809
u1 b1 a2 d3 > 3 3 devices 2 devices 1 device 201809
u1 b2 a2 d4 > 3 1 device 2 devices 1 device 201809
u2 b1 a1 d5 > 3 1 device 2 devices 1 device 201809
u2 b2 a3 d6 > 3 2 devices 1 device 1 device 201809
u2 b2 a4 d7 > 3 2 devices 1 device 1 device 201809
u2 b3 a1 d8 > 3 1 device 2 devices 1 device 201809
u3 b3 a1 d9 3 devices 2 devices 2 devices 1 device 201809
u3 b4 a1 d10 3 devices 1 device 1 device 1 device 201809
u3 b3 a2 d11 3 devices 2 devices 2 devices 1 device 201809
我在 box 和 app 列上创建了2个切片器。 在群集柱形图中,在值上我有不同的usr。 传说中,我想按设备计算usr的故障。存储桶是1个设备,2个设备,3个设备,超过3个设备。
我该怎么做?
最新编辑
我已经稍微修改了源表,使其完全符合我现在的状态。 您可以从here下载报告 我想要一个动态计数组。每次过滤切片器时,都应该有一个由usr组成的count(device)组,然后基于此计数创建存储桶:当前过滤器上有多少用户拥有1个设备,2个设备,3个设备或3个以上的设备。在轴上,我放置了month列,但是对于本示例而言,它无关紧要,因为它只有一个值。
答案 0 :(得分:1)
如上所述,这个问题实质上是以下问题的重复: DAX grouping by a measure result
您需要为类别创建一个新表Buckets
:
Bucket
------
1 device
2 devices
3 devices
>3 devices
一旦有了它,将其放在“图例”框中,并对“值”框使用以下度量:
DynamicBucketingMeasure =
VAR Summary =
SUMMARIZE (
ALLSELECTED ( pbi_box_active_devices_4 ),
pbi_box_active_devices_4[usr],
"Devices", DISTINCTCOUNT ( pbi_box_active_devices_4[device] )
)
VAR Bucketed =
ADDCOLUMNS (
Summary,
"Bucket", SWITCH (
TRUE (),
[Devices] > 3, ">3 devices",
[Devices] = 1, "1 device",
[Devices] & " devices"
)
)
RETURN
SUMX ( Bucketed, IF ( [Bucket] = SELECTEDVALUE ( Buckets[Bucket] ), 1, 0 ) )
请注意,在此方法中,我将计数和随后的存储分为两个步骤,而不是像链接问题中那样将它们组合为一个步骤。
答案 1 :(得分:0)
超级!当我不在Axis上使用month时,它可以正常工作。在更大的数据集上(具有更多月份的数据),在所有轴值上都对所有数据求和。因此,所有存储桶组都具有相同的数据。我试图像这样将月份列添加到分组:
VAR Summary =
SUMMARIZE (
ALLSELECTED ( pbi_box_active_devices_4 ),
pbi_box_active_devices_4[usr],
pbi_box_active_devices_4[month],
"Devices", DISTINCTCOUNT ( pbi_box_active_devices_4[device] )
)
但是它没有按预期工作。