Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 获取给定时间范围内的最新记录_Powerbi_Dax - Fatal编程技术网

Powerbi 获取给定时间范围内的最新记录

Powerbi 获取给定时间范围内的最新记录,powerbi,dax,Powerbi,Dax,我有一个功率双热图,用于测量当前一小时和之前8小时的设备正常运行时间: 问题在于一个给定的小时可能并不总是有记录;在上面的示例中,机器从上午4点到上午6点不间断运行,在上午5点的时间内没有任何记录表明它已经启动并运行了整整一个小时。-3小时应显示100%,但不正确显示0% 这种可视化每小时都有一个单独的度量,计算每小时的正常运行时间。例如,Hour-3的计算如下: -3 = IF(ISBLANK(CALCULATE(COUNTROWS(UptimeCombined), FILTER(Uptim

我有一个功率双热图,用于测量当前一小时和之前8小时的设备正常运行时间:

问题在于一个给定的小时可能并不总是有记录;在上面的示例中,机器从上午4点到上午6点不间断运行,在上午5点的时间内没有任何记录表明它已经启动并运行了整整一个小时。-3小时应显示100%,但不正确显示0%

这种可视化每小时都有一个单独的度量,计算每小时的正常运行时间。例如,Hour-3的计算如下:

-3 = IF(ISBLANK(CALCULATE(COUNTROWS(UptimeCombined), FILTER(UptimeCombined, UptimeCombined[Hours_Offset] = 3))) = TRUE,
(CALCULATE('UptimeCombined'[Uptime %], FILTER(UptimeCombined, UptimeCombined[Hours_Offset] > 3 && UptimeCombined[ShiftDateTime] = MAX(UptimeCombined[ShiftDateTime])))),
(CALCULATE('UptimeCombined'[Uptime %], FILTER('UptimeCombined', 'UptimeCombined'[Hours_Offset] = 3))))
如果行计数返回为空,那么我需要在时间上向后看(max record,其中Hour_Offset>3),并找到最后一条记录的状态(“RN”或“DN”),并显示该小时的正常运行时间值(分别为100%或0%),但我无法使该部分度量正常工作;-3小时应显示100%,因为之前的最新记录状态为“RN”(在-4小时内)。以下是数据的外观:


根据该小时之前的最新记录,在此度量的第2行中,我需要什么样的正确DAX来将正常运行时间设置为100%或0%?

在数据到达Power BI之前,我在SQL Server端的源代码视图中填补了数据空白。。。这种方法比试图处理复杂的计算和度量要简单得多。

您只需查看状态更改即可。正如我从您的原始数据中看到的,有一个RN和DN。我想这是机器运行/停止的时刻?如果是这样,您需要计算每小时运行的分钟数。这不是一个度量,而是您首先需要创建的一个表(查询)。基于这些数据,您的概述将很容易实现。您好@Aldert,您对RN/DN的看法是正确的,在考虑了您的评论之后,我认为以某种方式使用Power Query来填补数据空白可能更简单。也就是说,我在M中编码的经验是零。。。你有什么建议吗?