基于总天数的每小时平均行数

时间:2019-11-21 19:22:22

标签: database powerbi dax

亲爱的

在PowerBI中,使用DirectQuery,我希望将每天发生的次数总和除以总天数

让我为您提供示例数据。

数据表:

ID;DATE;HOUR
715;2019-10-19;15:47:37
181;2019-10-19;15:56:11
349;2019-10-19;15:57:25
6ec;2019-10-19;15:58:16
57e;2019-10-19;16:02:35
860;2019-10-19;16:03:42
7a5;2019-10-19;16:03:52
978;2019-10-19;16:05:19
da0;2019-10-20;11:00:45
c2d;2019-10-20;23:04:53
355;2019-10-20;23:04:53
4f5;2019-10-20;23:05:10
396;2019-10-21;14:42:24
5f7;2019-10-21;14:43:37
93a;2019-10-21;14:55:36
a44;2019-10-21;14:59:21
264;2019-10-21;15:05:20
f48;2019-10-21;15:07:01

还有一个汇总的维度表,其中包含 DataTable中的值:

DimHourTable:

COMPLETEHOUR;HOUR24
15:47:37;15
15:56:11;15
15:57:25;15
15:58:16;15
16:02:35;16
16:03:42;16
16:03:52;16
16:05:19;16
11:00:45;11
23:04:53;23
23:04:53;23
23:05:10;23
14:42:24;14
14:43:37;14
14:55:36;14
14:59:21;14
15:05:20;15
15:07:01;15

注意:DataTable [HOUR]和DimHourTable [COMPLETEHOUR]

之间与双向过滤器的关系

我现在正在这样做:

formula1
Occurrences = COUNTA( DataTable[id] )

formula2
CountDays = DISTINCTCOUNT( DataTable[date] )

formula3
Avg_Occurrences = DIVIDE( [Occurences] , [CountDays] )

然后我将以下内容放入矩阵

行:DimHourTable [HOUR24]

值:平均发生次数

有了该样本数据,这就是我得到的平均值。

11 -> 1
14 -> 4
15 -> 3
16 -> 4
23 -> 3

最后将其除以包含该特定小时的天数。

但是,实际上,我想要这个:

11 -> 0.33
14 -> 1.33
15 -> 2
16 -> 1.33
23 -> 1  

我想将发生次数除以 DataTable 中出现的总天数,而不考虑是否包含特定的小时数。

有人知道如何解决吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将其用于Formula2

CountDays = CALCULATE ( DISTINCTCOUNT ( DataTable[date] ), ALL ( 'DataTable' ) )

使用切片器时,您也可以尝试

CountDays = CALCULATE ( DISTINCTCOUNT ( DataTable[date] ), ALLSELECTED ( 'DataTable' ) )

ALL和ALLSELECTED函数将删除由DimHourTable[HOUR24]创建的filtercontext,它们放在矩阵可视化行中