首页 > 解决方案 > Power BI - 以小时(> 24 小时)计算两个日期/时间值之间的差异,然后计算平均值

问题描述

我有一个 Power BI 发布的数据集并使用 DAX 我试图计算每个任务的开始日期时间和结束日期时间之间的差异(总时间),然后计算所有任务的平均总时间(以小时为单位)。我尝试了几种方法,但都失败了。我没有选择编辑查询或将数据转换为我已连接到的已发布数据集,我所能做的就是创建以小时为单位给出时间差的度量,即使它超过 24 小时,然后取平均值就像下面的例子一样;

在此处输入图像描述

Tasks     Start DateTime         End DateTime        Total Time Taken
1     10/08/2020 10:30:00    11/08/2020 10:30:00        24:00:00
2     10/08/2020 11:30:00    12/08/2020 10:30:00        47:00:00
3     12/08/2020 10:30:00    14/08/2020 10:30:00        48:00:00
4     10/08/2020 10:30:00    16/08/2020 10:30:00        144:00:00
        

所有任务的平均值 65:45:00

所以需要你们的帮助来破解一个解决方案。提前致谢。

标签: powerbidaxpowerbi-desktop

解决方案


创建如下度量 -

duration_average = 

VAR total_second = 
AVERAGEX(
    your_table_name,
    DATEDIFF(your_table_name[Start DateTime],your_table_name[End DateTime],SECOND)
)

VAR DAXDay   =  INT(total_second/(24*60*60))
VAR DAXHours =  MOD(INT(total_second/(60*60)),24)
VAR DAXMin   =  MOD(INT(total_second/60),60)
VAR DAXSec   =  MOD(total_second,60)

RETURN DAXDay &" Day "& DAXHours &" Hour "& DAXMin &" Minute "& DAXSec &" Second"

输出将如下所示。您还可以从原始值创建自己需要的格式化输出。

在此处输入图像描述


推荐阅读