記事番号:010213
kintoneでは、勤怠を入力するアプリで計算式を使って、勤務日ごとに深夜残業時間(22時から翌日5時まで)が何時間あるかを算出できます。
ここでは、1レコードに1か月分の勤怠を入力するアプリを例に説明します。
○準備
勤怠を入力するアプリを準備してください。
1レコードに1か月分の勤怠を入力するアプリを作成するには、テーブルに勤務日ごとに入力してほしいフィールドを配置します。
深夜残業時間を算出するために、以下の3つのフィールドを含めてください。
(1)「時刻」フィールド:出勤時刻を入力するフィールド
(2)「時刻」フィールド:退勤時刻を入力するフィールド
(3)「計算」フィールド:深夜残業時間を算出するフィールド
○各フィールドの設定
(1) 「時刻」フィールド
フィールド名/フィールドコード:出勤
(2) 「時刻」フィールド
フィールド名/フィールドコード:退勤
(3) 「計算」フィールド
フィールド名/フィールドコード:深夜残業時間
計算式:
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関数を使用して、出勤時刻と退勤時刻の入力パターンごとに条件分岐するように記述しています。
これにより、様々な出勤時刻や退勤時刻を入力しても、勤務日ごとに深夜残業時間を算出できます。
補足
- kintoneでは、日付、時刻、日時のフィールドの値はUNIX時刻として扱われます。このため、日付や日時は秒単位で扱い、計算式も秒単位で指定します。たとえば、1分間を「60」、1時間を「3600」または「1*60*60」と入力します。
この計算式で記載されている条件分岐
(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」(日本語のみ)を添付しています。
テンプレートファイルをダウンロードしたあと、解凍せずにkintoneで読み込んでください。
テンプレートファイルからアプリを作成する
<関連ページ>