深夜残業時間を計算したい
kintoneでは、勤怠を入力するアプリで計算式を使って、勤務日ごとに深夜残業時間(22時から翌日5時まで)が何時間あるかを算出できます。
設定例
ここでは、1レコードに1か月分の勤怠を入力するアプリを例に説明します。
準備
勤怠を入力するアプリを準備してください。
1レコードに1か月分の勤怠を入力するアプリを作成するには、テーブルに勤務日ごとに入力してほしいフィールドを配置します。
深夜残業時間を算出するために、以下の3つのフィールドを含めてください。
- (1) 時刻フィールド:出勤時刻を入力するフィールド
- (2) 時刻フィールド:退勤時刻を入力するフィールド
- (3) 計算フィールド:深夜残業時間を算出するフィールド
各フィールドの設定
-
(1) 時刻フィールド
このフィールドは、出勤時刻を入力するために使用します。- フィールド名:出勤
- フィールドコード:出勤
-
(2) 時刻フィールド
このフィールドは、退勤時刻を入力するために使用します。- フィールド名:退勤
- フィールドコード:退勤
-
(3) 計算フィールド
このフィールドでは、(1)(2)で入力された勤務時間のうち、深夜残業時間が何時間あるかを算出します。- フィールド名:深夜残業時間
- フィールドコード:深夜残業時間
- 計算式:以下の計算式を設定します。
参考:計算式の解説
IF(出勤=退勤,7*60*60, IF(AND(出勤<=5*60*60, 出勤<=退勤, 退勤<=5*60*60),退勤-出勤, IF(AND(出勤<=5*60*60, 退勤>=5*60*60, 退勤<=22*60*60),5*60*60-出勤, IF(AND(出勤<=5*60*60, 退勤>=22*60*60),(5*60*60-出勤)+(退勤-22*60*60), IF(AND(出勤<=5*60*60, 退勤<=出勤),(5*60*60-出勤)+(2*60*60)+退勤, IF(AND(出勤<=22*60*60, 退勤>=22*60*60),退勤-22*60*60, IF(AND(出勤<=22*60*60, 退勤<=5*60*60),2*60*60+退勤, IF(AND(出勤<=22*60*60, 退勤>=5*60*60, 退勤<出勤),7*60*60, IF(AND(出勤>=22*60*60, 退勤>=出勤),退勤-出勤, IF(AND(出勤>=22*60*60, 退勤<=出勤, 退勤>=22*60*60),(24*60*60-出勤)+5*60*60+(退勤-22*60*60), IF(AND(出勤>=22*60*60, 退勤<=5*60*60),(24*60*60-出勤)+退勤, IF(AND(出勤>=22*60*60, 退勤>=5*60*60, 退勤<=22*60*60),(24*60*60-出勤)+5*60*60,0 ) ) ) ) ) ) ) ) ) ) ) )
- 表示形式:「時間(例:26時間3分)」を選択
計算式の解説
この計算式では、IF関数を使用して、出勤時刻と退勤時刻の入力パターンごとに条件分岐するように記述しています。
これにより、様々な出勤時刻や退勤時刻を入力しても、勤務日ごとに深夜残業時間を算出できます。
この計算式で記載されている条件分岐
(1) 出勤時刻と退勤時刻が同じ場合(24時間勤務)
- 条件式:出勤=退勤
- 計算式:7*60*60
(2) 出勤時刻:0時~5時、退勤時刻:出勤時刻以降~5時の場合
- 条件式:AND(出勤<=5*60*60, 出勤<=退勤, 退勤<=5*60*60)
- 計算式:退勤-出勤
(3) 出勤時刻:0時~5時、退勤時刻:5時~22時の場合
- 条件式:AND(出勤<=5*60*60, 退勤>=5*60*60, 退勤<=22*60*60)
- 計算式:5*60*60-出勤
(4) 出勤時刻:0時~5時、退勤時刻:22時~翌日0時の場合
- 条件式:AND(出勤<=5*60*60, 退勤>=22*60*60)
- 計算式:(5*60*60-出勤)+(退勤-22*60*60)
(5) 出勤時刻:0時~5時、退勤時刻:翌日の0時~出勤時刻以前の場合
- 条件式:AND(出勤<=5*60*60, 退勤<=出勤)
- 計算式:(5*60*60-出勤)+(2*60*60)+退勤
(6) 出勤時刻:5時~22時、退勤時刻:22時~翌日0時の場合
- 条件式:AND(出勤<=22*60*60, 退勤>=22*60*60)
- 計算式:退勤-22*60*60
(7) 出勤時刻:5時~22時、退勤時刻:翌日の0時~5時の場合
- 条件式:AND(出勤<=22*60*60, 退勤<=5*60*60)
- 計算式:2*60*60+退勤
(8) 出勤時刻:5時~22時、退勤時刻:翌日の5時~出勤時刻以前の場合
- 条件式:AND(出勤<=22*60*60, 退勤>=5*60*60, 退勤<出勤)
- 計算式:7*60*60
(9) 出勤時刻:22時~0時、退勤時刻:出勤時刻以降の22時~0時の場合
- 条件式:AND(出勤>=22*60*60, 退勤>=出勤)
- 計算式:退勤-出勤
(10) 出勤時刻:22時~0時、退勤時刻:翌日の22時~0時かつ出勤時刻以前の場合
- 条件式:AND(出勤>=22*60*60, 退勤<=出勤, 退勤>=22*60*60)
- 計算式:(24*60*60-出勤)+5*60*60+(退勤-22*60*60)
(11) 出勤時刻:22時~0時、退勤時刻:翌日の0時~5時の場合
- 条件式:AND(出勤>=22*60*60, 退勤<=5*60*60)
- 計算式:(24*60*60-出勤)+退勤
(12) 出勤時刻:22時~0時、退勤時刻:翌日の5時~22時の場合
- 条件式:AND(出勤>=22*60*60, 退勤>=5*60*60, 退勤<=22*60*60)
- 計算式:(24*60*60-出勤)+5*60*60
アプリテンプレート
この計算式が設定されたアプリのテンプレートを、以下よりダウンロードできます。
アプリテンプレート「latenight_overtime.zip」(日本語のみ) |
---|
リンクをクリックしてテンプレートファイル(zip)をダウンロードしたあと、解凍せずにkintoneで読み込んでください。