LibreCalc 计算时差

LibreCalc Calculate Time Differential

我有以下电子表格:

我需要计时 (C2) 和暂停 (F2),看看下午 6 点到早上 6 点之间已经工作了多少小时。

因此,如果员工在下午 4 点打卡上班并工作到凌晨 1 点,则字段 J2 的第二个班次差异应为 7。

我试过很多公式,我知道我的那个也不对。因为它只是减去 2 个日期并给出结果,因此现在是 -12。

一如既往地感谢大家!

标准公式为

MIN(t1upper,t2upper)-max(t1lower,t2lower) 

其中 t1lower 是夜间费率的开始,t1upper 是夜间费率的结束,t2lower 是班次的开始,t2upper 是班次的结束。

但在这种情况下,如果是在凌晨,您必须在结束时间上加一小时(即 24 小时):此外,晚上的结束费用也输入为 30:00。

我已经将夜间房价的开始和结束放入 A2 和 B2,所以我的公式是

=MIN($B;IF(F2<D2;F2+1;F2))-MAX($A;D2)

或稍短

=MIN($B;F2+(F2<D2))-MAX($A;D2)

(在 OpenOffice Calc 中测试 - 我假设 LibreCalc 是一样的)

有两种情况我没有考虑(抱歉)

(1) 班次完全在白天,所以没有班次差异,结果会变成负数,所以你需要把它当作零:-

=MAX(MIN($B;IF(F2<D2;F2+1;F2))-MAX($A;D2);0)

(2) 班次从午夜到早上 6 点开始,因此您需要考虑范围 0:00-6:00 以及 18:00-30:00。把这些放在一起给出:-

=MAX(MIN($B;F2)-MAX($A;D2);0)+MAX(MIN($B;IF(F2<D2;F2+1;F2))-MAX($A;D2);0)

其中 A2 现在包含 0:00,B2 包含 6:00,A3 包含 18:00,B3 包含 30:00