我有2列:
Night shift start: 19:00 Night end: 04:00
我每天都有一些日期列 .
Work started: 07:30 Worked ended: 22:00
我想得到夜班开始和夜晚之间的小数小时数 . 我需要计算工作时间的“夜班时间” .
来自评论:我不想得到总小时数 . 我想计算“夜班时间”的数量,即19:00-04:00之间的小时数
给定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
=IF(B1-A1 < 0, 1-(A1-B1),( B1-A1))
假设单元格A1包含start,则B1包含结束时间 .让我知道,如果它有助于OR错误 .
考虑到开始可能是今天的前一天,没有日期的时间不足以进行减法 .你可以试试VBA吗?编辑:该公式在12小时限制内有意义 . 我会看看它是否可以变得更简单 .
3 回答
给定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都包含日期时间值时,这是正确的,但是如果您的单元格只包含一个时间值,没有日期值,并且假设计算跨越夜晚(两者之间有一天的变化),则需要添加有一天差异:
假设单元格A1包含start,则B1包含结束时间 .
让我知道,如果它有助于OR错误 .
考虑到开始可能是今天的前一天,没有日期的时间不足以进行减法 .
你可以试试VBA吗?
编辑:该公式在12小时限制内有意义 . 我会看看它是否可以变得更简单 .