我正在嘗試計算夜班員工的作業時間。
然而,由于簽入/簽出資料記錄在兩個不同的日期,因此輪班的結構和時間讓我很難弄清楚。
例如,
John 是一名夜班員工,從 19:00 PM (25/11/2021) 開始作業,他的班次在第二天凌晨 2:00 (26/11/2021) 結束。
假設約翰 26 日沒有上班。
考勤機會把打卡值(D2)放在C2,當John 27號打卡時也會發生同樣的事情(考勤機會把C3放在D3)
因此弄亂了資料,以及我用來計算作業時間的公式。這是
MOD( $C (X 1) - $D X ,1)
記錄單上記錄了什么
| 名稱 | 日期 | 簽到 | 下班 | 作業時間 |
|---|---|---|---|---|
| 約翰·史密斯 | 25/11/2021 | 19:00 | 2:00(11 月 24 日的時鐘) | =MOD($C2-$D1,1) |
| 約翰·史密斯 | 26/11/2021 | 2:00 | 2:00 | =MOD($C3-$D2,1) |
| 約翰·史密斯 | 27/11/2021 | 19:00 | 19:00 | =MOD($C4-$D3,1) |
問題是。
- 有沒有更好的方法來計算作業時間(有兩個日期),因為我的新手認為當前的 mod 公式不是最佳的?
此外,即使員工不在,它仍在計算員工的小時數。
uj5u.com熱心網友回復:
添加一天,如果打卡
D2時間少于打卡時間C2E2:
=IF(D2<C2,D2 1,D2)-C2或 E1(陣列公式):
={"Working Time";ARRAY_CONSTRAIN(ARRAYFORMULA(IF(D2:D<C2:C,D2:D 1,D2:D)-C2:C),COUNT(D2:D),1)}
| 名稱 | 日期 | 簽到 | 下班 | 作業時間 ” | ={""作業時間"";ARRAY_CONSTRAIN(ARRAYFORMULA(IF(D2:D<C2:C,D2:D 1,D2:D)-C2:C),COUNT(D2:D),1)}" |
|---|---|---|---|---|---|
| 約翰·史密斯 | 2021-11-25 | 19:00 | 2:00 | 7:00:00 | =IF(D2<C2,D2 1,D2)-C2 |
| 約翰·史密斯 | 2021-11-26 | 2:00 | 2:00 | 0:00:00 | =IF(D3<C3,D3 1,D3)-C3 |
| 約翰·史密斯 | 2021-11-27 | 19:00 | 19:00 | 0:00:00 | =IF(D4<C4,D4 1,D4)-C4 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/392697.html
