Excel: 有动态数据时(超过24小时)如何计算24小时内的百分比

Excel: how to calculate percentage within 24h when have dynamic data (over 24h)

我无法弄清楚如何使用一组动态变化的数据计算一天(24 小时)内的百分比,您可以在 SS 上看到一天和不同的时间。但问题是,我可以使用 =MOD (B3-B2,1) 计算时间之间的一般差异,然后将其转换为百分比(一天之内我只得到一小部分)。但是当时间在 23:59...

之后问题仍然存在

那个"System"列其实是两个进程交替工作,所以一个OFF另一个ON,都得到那个date/time(工作时间)。

如何计算一天内一个系统的百分比 - 因此它的工作时间以百分比表示(因此,对于 10.01、11.01..)

像这样,然后假设一个系统一天内的百分比总和。许多例子(日期)给我超过 100%。

我有一个不同的数据集(在其他例子上试过)但效果不佳:

 SUMIFS($B:$B20;$A:$A20;$F3;$C:$C20;"<>"&G)-SUMIFS($B:$B20;$A:$A20;$F3;$C:$C20;G)+(INDEX($C:$C20;MATCH($F3;$A:$A20))=G)

可能是因为我从 PowerQuery 编辑数据然后输入到 sheet?或者别的什么?

记住一天从 t=0 开始到 t=1 结束,其中 t 是以天为单位的时间,对于两个进程 A 和 B,我们可以考虑四种情况:

Start with process A, end with process B

|___A1---B1___A2---B2___|

B1-A1+B2-A2

∑B - ∑A

Start with process A, end with process A

|___A1---B1___A2---B2___A3---|

B1-A1+B2-A2+1-A3

∑B - ∑A +1

Start with process B, end with process A

|---B1___A1---B2___A2---|

B1-0+B2-A1+1-A2

∑B - ∑A +1

Start with process B, finish with process B

|---B1___A1---B2___A2---B3___|

B1-0+B2-A1+B3-A2

∑B - ∑A

其中 A1 是进程 A 的第一个运行时间,A2 是第二个运行时间,依此类推,--- 表示进程 A 处于运行状态,___ 表示进程 A 处于关闭状态。

所以我们可以只用进程B的开始时间总和减去进程A的开始时间总和,如果当天最后一个进程是进程A,则加1。

一整天的公式(例如 11/1/19)

=SUMIFS($B:$B,$A:$A,$F3,$C:$C,"<>"&G)-SUMIFS($B:$B,$A:$A,$F3,$C:$C,G)+(INDEX($C:$C,MATCH($F3,$A:$A))=G)

第一天呢,一点半之前什么都没有?现在假设进程A之前的任何东西都被进程B占用是错误的,反之亦然,所以如果第一个进程不是进程A就必须减去第一次并在计算中添加另一个项:

=SUMIFS($B:$B,$A:$A,$F2,$C:$C,"<>"&G)-SUMIFS($B:$B,$A:$A,$F2,$C:$C,G)+(INDEX($C:$C,MATCH($F2,$A:$A))=G)-(INDEX($C:$C,MATCH($F2,$A:$A,0))<>G)*$B2

所以第一天的总时间不是 24 小时,而是大约 10.5 小时或一天的 44%。