如何解决根据“开/关”事件表总结每天的正常运行时间百分比
我真的很满足于客户的要求(在两个地方),因此也吸引了群众的智慧...
对于某些设备,我的输入是带有时间戳和打开/关闭事件的表。 这是一些示例数据:
2020/02/12 21:05:34 TYPE A ON
2020/02/12 21:10:34 TYPE B ON
2020/02/12 22:05:34 TYPE A OFF
2020/02/12 22:15:35 TYPE B OFF
2020/02/13 01:00:35 TYPE A ON
2020/02/13 02:05:34 TYPE A OFF
2020/02/13 15:05:35 TYPE B ON
2020/02/13 15:30:34 TYPE A ON
2020/02/15 02:40:34 TYPE A OFF
2020/02/15 04:30:34 TYPE B OFF
有人要求我为每种类型的设备制作一张图表,其中包含每天打开时间百分比。
首先,我需要找到每个“ ON”事件的持续时间。因此,对于表中的每个事件:
- 如果事件为“开”,则将其忽略
- 如果事件为“ OFF”,请查找相同设备类型的最新ON时间戳
- 然后计算当前OFF时间戳与最新的ON时间戳之间的时差
根据其他社区文章,我创建了一些代码,但不幸的是,它无法正常工作... 这是我认为我需要的:
OnTimeStampForOFFEvent =
IF ( 'Table'[EventType] = "ON"; 0; (
CALCULATE (
LASTNONBLANK ( 'Table'[TimeStamp]; 1 );
FILTER (
'Table';
'Table'[TimeStamp] >= EARLIER ( 'Table'[TimeStamp] )
&& 'Table'[EqptType] = EARLIER ('Table'[EqptType])
&& 'Table'[EventType] = "ON"
)
)
)
)
ONDurationMinutes = IF ('Table'[EventType] = "OFF" ; DATEDIFF( OnTimeStampForOFFEvent ; 'Table'[TimeStamp]; MINUTE); 0)
有人可以帮助我完成这项工作吗?
接下来,我需要创建一个表格,其中列出每种设备类型每天的总开启时间百分比。
首先,我制作一张计算表(使用[Date]时间戳的日期部分):
OnDurationByDate = SUMMARIZE('Table';'Table'[Date];'Table'[EqptType];'Table'[OnDuration]))
然后,我可以使用计算表中的度量来创建正常运行时间百分比字段:
Percentage_ONtime = SUM(OnDurationByDate) / (24*60)
这很好用,但有一个大例外:当ON和OFF之间的持续时间超过一天时! 例如,上表中的此设置导致14/2没有条目,而15/2没有164%:
2020/02/13 15:30:34 TYPE A ON
2020/02/15 02:40:34 TYPE A OFF
因此,要解决此问题,我必须插入一个额外的日期值14/2并将其设置为100%,然后将15/2项减少为1440分钟(全天24x60分钟)。但是如何?
任何建议将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。