我有 2 列:
Night shift start: 19:00
Night end: 04:00
而且我每天都有一些日期列..
Work started: 07:30
Worked ended: 22:00
我想将夜班开始和晚上结束之间的小时数作为小数。我需要计算工作时间的“夜班小时数”。
来自评论:我不想得到总小时数。我想计算“夜班时间”的数量,即 19:00-04:00 之间的时间
我有 2 列:
Night shift start: 19:00
Night end: 04:00
而且我每天都有一些日期列..
Work started: 07:30
Worked ended: 22:00
我想将夜班开始和晚上结束之间的小时数作为小数。我需要计算工作时间的“夜班小时数”。
来自评论:我不想得到总小时数。我想计算“夜班时间”的数量,即 19:00-04:00 之间的时间
=IF(B1-A1 < 0, 1-(A1-B1),( B1-A1))
假设单元格 A1 包含开始,B1 包含结束时间。
让我知道,如果它有帮助或错误。
考虑到开始可能是前一天晚上,没有日期的时间不足以进行减法。
你可以试试 VBA 吗?
编辑:该公式在 12 小时限制内有意义。我会看看它是否可以变得更简单。
给定 B5 中的开始时间和 C5 中的结束时间,此公式将为您提供 19:00 到 04:00 范围内的十进制小时数
=MOD(C5-B5,1)*24-(C5<B5)*(19-4)-MEDIAN(C5*24,4,19)+MEDIAN(B5*24,4,19)
将结果单元格格式化为数字
只需将两个日期相减即可得到天数的差异,然后乘以 24 即可得到小时数的差异
=(B1-A1)*24
当 B1 和 A1 都包含日期时间值时,这是正确的,但如果您的单元格仅包含时间值,没有日期值,并且考虑到计算跨越夜间(两者之间有一天的变化),您需要添加一日之差:
=IF(B1<A1,1+B1-A1,B1-A1)*24