Excel 以时间块计算时间
Excel Calculate time in time blocks
如何计算 2 个日期之间的时差,但分为 "Day" 和 "Night" 小时。
Example:
"Day" hours are defined between 07:00 and 21:00 (14h)
"Night" hours are defined between 21:01 and 06:59 (10h)
我现在已经关注了 start/end 次并取得了预期的效果:
- 20.04 10:00 / 20.04 14:00 => day 4h / night 0h
- 20.04 20:00 / 20.04 22:00 => day 1h / night 1h
- 20.04 22:00 / 21.04 05:00 => day 0h / night 7h
- 19.04 00:00 / 21.04 24:00 => day 42h / night 30h
如何简单地计算?
我认为您需要将时间值转换为数字值,然后为您的 "target" 次 IE 21:01、06:59 使用辅助列,然后执行计数和大于小于公式。
抱歉有点含糊,但上面的数据很难准确 - 你能分享文件吗?
这是一个相对普通的解决方案。
首先,您可能知道 Excel 中的日期时间是一个数字,整数代表午夜。但如果你不这样做,那么下面的内容将毫无意义,所以我确定。
我们将首先计算白天的时间,然后从中计算夜间的时间,因为白天的时间计算起来更直观一些。我们将通过获取包含 "completely covered days" 的间隔来做到这一点 - 然后每一天都会为结果贡献 21 - 7 = 14 小时。然后我们将添加由于第一 "late" 天和最后 "early leaving" 天而损失的小时数。
请注意,如果参数间隔在一天的中间(如您的第一个示例),这将得到 "reversed" 间隔 "covered" 天。这不是一个真正的错误,虽然它可能有点令人困惑 - 最终结果是正确的。
无论如何,假设您将参数间隔端点存储在 B1 和 B2 中,并且第一个更早。
=(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)
不过,我强烈建议您查看它的作用,here's a version that is easier to analyze(虽然它已被翻译成波兰语,但希望当您下载它并以 Excel 或其他方式打开时,它会被翻译回来).
编辑:Excel Online 出于某种原因不想公开显示日期。同样,考虑下载电子表格(如果需要,还可以对其进行病毒检查)。
如何计算 2 个日期之间的时差,但分为 "Day" 和 "Night" 小时。
Example:
"Day" hours are defined between 07:00 and 21:00 (14h)
"Night" hours are defined between 21:01 and 06:59 (10h)
我现在已经关注了 start/end 次并取得了预期的效果:
- 20.04 10:00 / 20.04 14:00 => day 4h / night 0h
- 20.04 20:00 / 20.04 22:00 => day 1h / night 1h
- 20.04 22:00 / 21.04 05:00 => day 0h / night 7h
- 19.04 00:00 / 21.04 24:00 => day 42h / night 30h
如何简单地计算?
我认为您需要将时间值转换为数字值,然后为您的 "target" 次 IE 21:01、06:59 使用辅助列,然后执行计数和大于小于公式。
抱歉有点含糊,但上面的数据很难准确 - 你能分享文件吗?
这是一个相对普通的解决方案。
首先,您可能知道 Excel 中的日期时间是一个数字,整数代表午夜。但如果你不这样做,那么下面的内容将毫无意义,所以我确定。
我们将首先计算白天的时间,然后从中计算夜间的时间,因为白天的时间计算起来更直观一些。我们将通过获取包含 "completely covered days" 的间隔来做到这一点 - 然后每一天都会为结果贡献 21 - 7 = 14 小时。然后我们将添加由于第一 "late" 天和最后 "early leaving" 天而损失的小时数。
请注意,如果参数间隔在一天的中间(如您的第一个示例),这将得到 "reversed" 间隔 "covered" 天。这不是一个真正的错误,虽然它可能有点令人困惑 - 最终结果是正确的。
无论如何,假设您将参数间隔端点存储在 B1 和 B2 中,并且第一个更早。
=(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)
不过,我强烈建议您查看它的作用,here's a version that is easier to analyze(虽然它已被翻译成波兰语,但希望当您下载它并以 Excel 或其他方式打开时,它会被翻译回来).
编辑:Excel Online 出于某种原因不想公开显示日期。同样,考虑下载电子表格(如果需要,还可以对其进行病毒检查)。