|
本帖最后由 AmoKat 于 2021-9-14 14:47 编辑
C2
=SUM(--TEXT(MMULT(IF(--(MOD(A2:B2,1)+(MOD(A2,1)>MOD(A2:B2,1))>MID("09:00 13:00;14:00 18:00",{1;1;13;13}+{0,6},5)+{0;1;0;1})={1,0},MOD(A2:B2,1)+(MOD(A2,1)>MOD(A2:B2,1)),MID("09:00 13:00;14:00 18:00",{1;1;13;13}+{0,6},5)+{0;1;0;1}),{-1;1}),"[<]!0"))+INT(B2-A2)*8/24
三鍵輸入公式
下拉
2021/09/14 修正,公式重複貼2次
公式原理:每段上下班時間計算為 = MAX(交接時間,下班時間) - MIN(接單時間,上班時間)
下式為 IF( 接單時間 > 上班時間,接單時間,上班時間) 及 IF( 交接時間 < 上班時間,交接時間,下班時間) 兩式合併IF(--(MOD(A2:B2,1)+(MOD(A2,1)>MOD(A2:B2,1)) > MID("09:00 13:00;14:00 18:00",{1;1;13;13}+{0,6},5)+{0;1;0;1})={1,0}, MOD(A2:B2,1)+(MOD(A2,1)>MOD(A2:B2,1)), MID("09:00 13:00;14:00 18:00",{1;1;13;13}+{0,6},5)+{0;1;0;1})
接單日期、交接日期取時間部分計算 1天內的工作時間,若 交接時間 小於 接單時間時,交接時間 + 1日(24小時)
+(MOD(A2,1)>MOD(A2:B2,1)) 此判斷式為 +{0,0} 或 + {0,1},當交接時間 小於 接單時間 時為 +{0,1}
MID("09:00 13:00;14:00 18:00",{1;1;13;13}+{0,6},5)+{0;1;0;1} 將上班時間擴增為 今天及明天上班時間
{"09:00","13:00"}+0
{"09:00","13:00"}+1
{"14:00","18:00"}+0
{"14:00","18:00"}+1
|
|