Excel如何在一段时间内获得小时数?

我有2列:

Night shift start: 19:00 Night end: 04:00 

我每天都有一些date列

 Work started: 07:30 Worked ended: 22:00 

我想要得到夜class开始和晚上结束之间小数的小时数。 我需要计算工作时间的“夜class小时数”。

从评论:我不想得到总小时数。 我想计算一下“夜class时间”的数量,也就是19:00到04:00之间的小时数

 =IF(B1-A1 < 0, 1-(A1-B1),( B1-A1)) 

假设单元格A1包含开始,B1包含结束时间。
让我知道,如果有帮助或错误。

没有date的时间是不够的,考虑到开始可能是今天晚上的减法。

你可以尝试VBA吗?

编辑:公式在12小时内是有意义的。 我会看看它是否可以变得更简单。

只需要减去两个date以获得天数的差异,然后乘以24得到以小时为单位的差异

 =(B1-A1)*24 

当B1和A1都包含date时间值时,这是正确的,但是如果您的单元格只包含时间值,没有date值,并且计算跨越了夜晚(中间有一天变化),则需要添加有一天有所不同:

 =IF(B1<A1,1+B1-A1,B1-A1)*24 

给定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)

格式结果单元格编号