If statement 需要计算2个时间范围内的具体小时数

If statement 需要计算2个时间范围内的具体小时数,if-statement,time,google-sheets,google-sheets-formula,array-formulas,If Statement,Time,Google Sheets,Google Sheets Formula,Array Formulas,我正在给员工做一个时间登记。 我制作了一个谷歌表单,员工将以以下格式注册开始日期和时间以及结束日期和时间: Employee X | 10/6/2019 12:00:00 | 10/6/2019 20:00:00 这是谷歌表单中的3个单元格 当员工在早上18:00到06:00之间工作时,他们需要获得x多的报酬。 所以我需要一个公式,计算他们轮班的开始时间和结束时间,计算18:00到06:00之间的轮班时间,并返回他们在这一帧中工作的小时数 在上面的示例中,员工X从12:00工作到20:

我正在给员工做一个时间登记。 我制作了一个谷歌表单,员工将以以下格式注册开始日期和时间以及结束日期和时间:

Employee X  |  10/6/2019 12:00:00  |  10/6/2019 20:00:00
这是谷歌表单中的3个单元格

当员工在早上18:00到06:00之间工作时,他们需要获得x多的报酬。 所以我需要一个公式,计算他们轮班的开始时间和结束时间,计算18:00到06:00之间的轮班时间,并返回他们在这一帧中工作的小时数

在上面的示例中,员工X从12:00工作到20:00,总工作日为8小时

但是公式需要返回18:00到06:00之间的小时数,例如2小时。在自己的牢房里

我试过各种各样的
COUNTIFS
FILTER
和其他东西,但这个我解决不了

有人有这种魔力吗?

这应该包括:

=ARRAYFORMULA(IFERROR(IF(
 (IF(DATEVALUE(C1:C)>DATEVALUE(B1:B), 1, 0)+TIMEVALUE(C1:C)>0.75)*
 (IF(DATEVALUE(C1:C)=DATEVALUE(B1:B), 1, 0)+0.25>TIMEVALUE(C1:C)), 
 TEXT((0.75-TIMEVALUE(C1:C))*-1, "hh:mm:ss"), )))


注意:
0.75
=18:00:00和
0.25
=6:00:00

这应该包括:

=ARRAYFORMULA(IFERROR(IF(
 (IF(DATEVALUE(C1:C)>DATEVALUE(B1:B), 1, 0)+TIMEVALUE(C1:C)>0.75)*
 (IF(DATEVALUE(C1:C)=DATEVALUE(B1:B), 1, 0)+0.25>TIMEVALUE(C1:C)), 
 TEXT((0.75-TIMEVALUE(C1:C))*-1, "hh:mm:ss"), )))



注意:
0.75
=18:00:00和
0.25
=6:00:00

这就像一个符咒!太谢谢你了,我自己从来没有想过:)这真是个魅力!太谢谢你了,我自己都没想到:)