Excel计算时间块

我如何计算2date之间的时间差,但分为“日”和“夜”时间。

例:

“日”时间定义为07:00至21:00(14h)

“夜”时间定义为21:01至06:59(10h)

我现在有以下的开始/结束时间与预期的结果:

  • 20.04 10:00 / 20.04 14:00 =>每天4h /晚0h
  • 20.04 20:00 / 20.04 22:00 =>每天1小时/晚1小时
  • 20.04 22:00 / 21.04 05:00 =>天0h /晚7h
  • 19.04 00:00 / 21.04 24:00 =>第42h /晚上30h

如何简单计算?

这是一个相对平凡的解决scheme。

首先,您可能知道Excel中的date时间是一个数字,整数是代表中午的数字。 但是,如果你不这样做,那么下面的东西就没有意义了,所以我确信。

我们将首先计算日间小时数,然后从中获得夜间小时数,这样计算起来更直观一点。 我们将通过获取包含“完全覆盖的日子”的时间间隔来做到这一点 – 然后每一天都会对结果做出21 – 7 = 14小时的贡献。 然后,我们将添加由于第一个“迟到”date和最后一个“提前离开”而损失的时间。

请注意,如果参数间隔在一天的中间(就像你的第一个例子),这将会得到“被覆盖”天的“反向”间隔。 这不是一个真正的错误,虽然它可能有点混乱 – 最终的结果是正确的。

无论如何,假设您将参数间隔终点存储在B1和B2中,并且第一个参数的时间间隔较早,那么这里是白天的一个frankenformula。

=(IF(B2-INT(B2)>21/24,1,0)+INT(B2)-(IF(B1-INT(B1)<7/24,0,1)+INT(B1)))*(21-7)+IF(AND(B1-INT(B1)>7/24,B1-INT(B1)<21/24),24*((21/24)-B1+INT(B1)),0)+IF(AND(B2-INT(B2)>7/24,B2-INT(B2)<21/24),24*(B2-INT(B2)-(7/24)),0) 

不过,我强烈build议看看它是做什么的, 这里有一个更容易分析的版本 (虽然它已经翻译成波兰语,但希望在下载它并在Excel中打开时可以翻译回去)。

编辑:Excel Online不想公开显示date为某种原因的date。 再次,考虑下载电子表格(并且如果你愿意的话,给它一个病毒检查)。

我认为你需要将时间值转换为数字值,然后使用助手列为您的“目标”时间IE 21:01,06:59然后执行一个计数,大于小于公式。

对不起,有点含糊,但难以与上述数据确切 – 你能分享文件吗?