この設定方法は、以下記事で紹介した記事の設定内容の説明となります。
kintoneで勤怠管理~データコレクトで月の残業時間を算出してみた~
※2020年8月4日 フィールド式に「ユーザー選択フィールド」が設定可能になりました。
最下部に追記しています。
まず用意するアプリは、以下2つのアプリです。
①勤怠管理アプリ ②残業時間算出アプリ
※なお、全く同一のアプリを資料お渡しページのテンプレートを展開することで再現可能です。
アプリテンプレートからアプリの作成方法は、テンプレートファイルからアプリを作成するをご覧ください。
・勤怠管理アプリ
・残業時間算出アプリ
今回の設定では、勤怠管理アプリを元に、ユーザーごとの残業時間を残業時間算出アプリで集計します。
それでは設定を説明します。
1、月ごとの残業時間を取得するため、勤怠管理アプリと残業時間算出アプリに"月"のフィールドを用意し、kintone側のDATE_FORMAT関数を設定します。
DATE_FORMAT(日付, "YYYY年M月", "Asia/Tokyo")
上記設定を行うことで、例えば、『2020-04-22』の日付が
2020年4月
となります。
2、勤怠管理アプリで「業務時間」、「残業時間」を出すため、kintoneで計算式を設定します。
業務時間
(休憩の1時間、3600秒を引きます。)
残業時間
(業務時間から通常勤務時間の8時間、28800秒を引きます。)
3、残業時間算出アプリの「残業時間合計」を取得する式をデータコレクトで設定します。
= SUMIFS(勤怠管理!残業時間,勤怠管理!作成者,作成者,勤怠管理!月,対象月)
上記の式は、勤怠管理アプリの”作成者”と”残業時間算出アプリ”の作成者、対象月が一致しているレコードの勤怠管理アプリの残業時間の合計を算出するという式になります。
4、残業代を計算するために、算出した残業時間合計を"数値"として、「最終残業時間(数値)」に登録する式を設定します。
=HOUR(残業時間合計)+ROUND(MINUTE(残業時間合計)/60,2)
こちらの関数は、(時間):(分)を整数として書き出せる関数です。
HOUR(残業時間合計) の部分で"〇〇時"部分を整数として取得。MINUTE(残業時間合計)の部分で"〇〇分"を整数として取得します。
更に、"分"の部分を60で割って、(時間)に単位を合わせます。
この設定を行うことで、例えば、残業時間合計が 6:21 だった場合、6.35 という数値にすることができます。
5、算出した残業時間合計を■■時間▲▲分という形式で「最終残業時間(文字列)」に登録する式を設定します。
= HOUR(残業時間合計)&"時間"&MINUTE(残業時間合計)&"分"
上記の関数を設定することで、データコレクトで算出した「16:55」という形式の値を「16時間55分」という形式で表示することが可能となります。
残業代を算出したい場合は、最終残業時間(数値)に時給を掛けることで計算ができます。
以上、SUMIFS関数を使って残業時間を算出する設定方法を説明しました。
====================================================================
【2020年8月4日 追記】フィールド式でユーザー選択フィールドが利用できるようになりました
====================================================================
2020年8月4日のバージョンアップで、ユーザー選択フィールドを、フィールド式に設定可能となりました。
これにより、残業時間算出アプリのレコードを社員に登録してもらう必要はなくなります。
修正が必要な個所は、以下です。
①”残業時間算出アプリ”の"作成者"フィールドを"ユーザー選択フィールド"に変更
②最終残業時間(文字列)のフィールド式を以下に変更
(バージョンアップ前)
= SUMIFS(勤怠管理!残業時間,勤怠管理!作成者,作成者,勤怠管理!月,対象月)
(バージョンアップ後)
= SUMIFS(勤怠管理!残業時間,勤怠管理!作成者,ユーザー選択,勤怠管理!月,対象月)
※検索条件1を"作成者"から"ユーザー選択"に変更するのみ