有一个名为客户警报的表,我们有客户、警报持续时间以及每个警报持续时间的警报计数
客户 | 闹钟持续时间 | 报警计数 |
---|---|---|
C01 | 15米 | 3 |
c01 | 15m-3h | 4 |
有一个名为 AlarmBands 的单独表,其中包含值
0
、1-5
、6-10
、10+
根据警报计数指定频段
警报带 |
---|
0 |
1-5 |
6-10 |
10+ |
有一个具有警报持续时间的过滤器(
15m
,15m to 3h
,3h to 7h
,7h+
)
这是我们在客户表中的同一列
根据从过滤器中选择的值,它应该总结客户警报,然后从 AlarmBands 表中选择一个波段值。
例如:客户C01有3个15m的警报和4个15m至3h持续时间的警报 当用户从过滤器中选择 15m 时。该客户应计入 1-5 段,因为有 3 个 15m 警报,3 个位于 1-5 之间
但是如果用户从过滤器中选择了 15m 和 15m-3h(两者)。警报总数 =7,因此该客户应计入第 6 至 10 段
我无法在 Power BI 中实现这一目标。任何线索都会有很大帮助
我需要 X 轴上的 AlarmBands 和 Y 轴上的客户数量。连接到警报持续时间过滤器
我尝试用下面的 dax 来完成它
Measure=
var _a1=ALLSELECTED('Table'[AlarmDuration])
var _a2= SUMMARIZE(CALCULATETABLE('Table',FILTER('Table',CONTAINSROW(_a1,'Table'[AlarmDuration]))),'Table'[Customer],"CountOFAlarm",SUM('Table'[CountofAlarm]))
var _a3=ADDCOLUMNS(_a2,"AlarmBand", IF([abc]=0,0,[abc]>=1 && [abc]<=5,"1-5",[abc]>5 && [abc]<=10,"6 to10","10+"))
var _a4= COUNT(_a2[{Customer],USERELATIONSHIP(_a3[AlarmBand],ALrmB[AlarmBand]))
您可以尝试创建如下所示的警报带表。
然后创建一个度量
MEASURE =
VAR _list =
DISTINCT ( 'customer alarms'[AlarmDuration] )
VAR _tbl =
SUMMARIZE (
FILTER ( 'customer alarms', 'customer alarms'[AlarmDuration] IN _list ),
'customer alarms'[Customer],
"total", SUM ( 'customer alarms'[BandwiseAlarmCount] )
)
RETURN
COUNTROWS (
FILTER (
_tbl,
[total] >= MAX ( 'AlarmBands'[Left] )
&& [total] <= MAX ( AlarmBands[Right] )
)
) + 0