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

时间:2019-11-29 20:38:18

标签: excel excel-formula excel-2013 excel-2016

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

该“系统”列实际上是两个正在交替工作的进程,因此一个是OFF,另一个是ON,都得到了该日期/时间(工作时间)。

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

enter image description here

类似这样的事情,然后假设一个系统的总和百分比为1天。许多示例(日期)给了我100%以上的收益。 enter image description here

enter image description here

我有一个不同的数据集(在其他示例中尝试过),但效果不佳:

 SUMIFS($B$2:$B$1020;$A$2:$A$1020;$F3;$C$2:$C$1020;"<>"&G$1)-SUMIFS($B$2:$B$1020;$A$2:$A$1020;$F3;$C$2:$C$1020;G$1)+(INDEX($C$2:$C$1020;MATCH($F3;$A$2:$A$1020))=G$1)

也许是因为我从PowerQuery中编辑了数据然后输入到工作表中吗?还是其他?

enter image description here

1 个答案:

答案 0 :(得分:2)

请记住,一天从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处于打开状态,___表示进程A关闭。

因此,我们可以从流程B的开始时间的总和中减去流程A的开始时间的总和,如果一天中的最后一个流程是流程A,则可以加1。

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

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

enter image description here

第一天怎么样?第一天半点之前什么都没有?现在,假设流程A之前的任何内容都被流程B占用是错误的,反之亦然,因此如果第一个流程不是流程A则必须减去第一时间,并在计算中添加另一个项:

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

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