kintoneで勤怠管理~データコレクトで月の残業時間を算出してみた~

皆さん、こんにちは。三浦です!
私は2月の下旬からテレワークをしていますが、皆さんの会社でもテレワークをしている方、居るのではないでしょうか?!
その際の勤怠管理はどうされていますか?
弊社では以前から、勤怠管理もkintoneで行っています♪そして、45時間/月 以上残業してはいけないという決まりから、残業時間の管理も徹底して行っています!
残業時間の集計は、kintoneの「表」でも出来ますが、レコードにきちんと保存しておきたいですよね。レコードに保存することで、残業時間の算出だけではなく、残業代の計算が出来たり、検索やCSV書き出しにも対応できるなど、たくさんのメリットがあります。
本日は、先月リリースしたばかりのデータコレクトを使って各月の個人の残業時間算出方法をご紹介致します!
実はデータコレクトは、先日まで時刻の計算には対応してなかったのですが、この度、日付や時刻の計算も可能になりました!今回はそんな最新機能を交えながらご紹介していきますね♪
まず、今回用意したアプリは『勤怠管理アプリ』と『残業時間算出アプリ』の2つになります。
勤怠管理アプリの作成
①登録者のフィールドは作成者フィールドを使う。
②月ごとの合計を出すため、DATE_FORMAT関数を利用し、対象月を出す。
まず、勤怠管理アプリはこんな感じで作成しています。
残業時間の計算ですが、業務時間の合計から通常業務時間の8時間(28800秒)を引いています。
これで、1日の残業時間が出ましたね!
また、ユーザー選択フィールドもデータコレクトの計算式を設定する上で未対応のフィールドとなりますので、登録者は”作成者フィールド”を利用します。(※注意点①)
そして最後に、月ごとで合計を出すため、キーとなるフィールドを用意します。(※注意点②)
今回は、文字列(1行)フィールドの自動計算を利用して、日付フィールドに入っている「2020-04-17」という値を『2020年4月』に自動的に置き換える関数を利用しました。
DATE_FORMAT関数は、こちらのページを参考にしてください。
これで勤怠管理アプリの設定は終わりになります。
残業時間算出アプリの作成
①勤怠管理アプリと紐づけるために、こちらも”作成者”フィールドを用意する。
②残業代を計算するために、算出された残業時間を数値として表示するフィールドを用意(残業時間)
【最終残業時間(数値)】・・・残業時間合計で出した時間を数値として登録する”数値フィールド”(残業代を算出するため)
【最終残業時間(文字列)】・・・残業時間合計出した時間を■■時間▲▲分という形式で登録する”文字列(1行)フィールド”
まず、勤怠管理アプリの作成者と、残業時間算出アプリの作成者が一致したレコードを集計するため、残業時間算出アプリにも”作成者”フィールドを用意します。(※注意点①)
そして、必須ではありませんが、残業時間合計を最終残業時間(数値)のフィールドに数値として登録し、残業代の計算も出来るようにしています。
最終残業時間(文字列)は、残業時間合計が”10:30″のように表示されるので、データコレクトのHOUR,MINUTE関数を利用して、”10時間30分”という見せ方にして登録するフィールドになります。
残業代算出のフィールドは、データコレクトで出した残業時間に今回は時給900円と想定して、以下のような計算式を設定しました。
これで、残業時間算出アプリの設定は終了となります。
それでは、データコレクトに今回作成した2つのアプリを登録します。
データコレクトの基本的な設定はこのブログでは割愛させていただきますので、こちらのページをご確認ください。
データコレクトで関数を設定する
今回は複数の条件を指定して合計値を算出するため、【SUMIFS】の関数を利用します。設定した式は以下です。
上記の式は、勤怠管理アプリの”作成者”と”残業時間算出アプリ”の作成者、対象月が一致しているレコードの勤怠管理アプリの残業時間の合計を算出するという式になっています。
また、残業時間を数値として出す関数は以下となります。
こちらの関数は、(時間):(分)を整数として書き出せる関数です。
例えば今回登録した残業時間が「6:21(6時間21分)」だったのですが、HOUR(残業時間合計) の部分で6を整数として取得。MINUTE(残業時間合計)の部分で21を整数として取得。
更に、21(分)の部分を60で割って、(時間)に単位を合わせます。※30分を60で割ると0.5時間ですからね。
また、今回小数点第2位まで出したいので、ROUND(MINUTE(残業時間合計)/60,2)という式になるわけです!
HOUR(残業時間合計)とROUND(MINUTE(残業時間合計)/60,2)を足すことで、残業時間を数値として出すことができます。
最後に、これはおまけですが「HOUR」と「MINUTE」の関数を利用して、■■時間▲▲分という形式にする方法も試しています。
これでデータコレクト側での設定は完了です。
残業時間算出アプリで、”DataCollectする”をしてみると
作成者が「三浦」のレコードだけの残業時間を合計することができています!残業代も出ていますね。
Excel、スプレッドシートとの比較
データコレクトの式の記述方法は基本的にExcelに準拠しております。こちらのリンク先のスプレッドシートをご確認いただくと、普段触っているExcelやスプレッドシートと、データコレクトの設定方法の近さが分かるかと思います。
さいごに
残業時間算出アプリを見てお分かりかと思いますが、”作成者が一致したレコード”を条件としているため、残業時間算出アプリのレコードも、社員が登録する運用になっています。
ここはレコードを追加してもらうようにお願いする必要がありますが、、(^ ^;
このような設定をすることで時間の計算も1つのアプリで合計することができます!最終残業時間(数値)を出したことによって、kintoneの計算で残業代も簡単に出せますので、是非試してみてくださいね!
データコレクトは30日間の無料トライアルも出来ます^^
それでは本日はこの辺で♪
サンプルアプリをヘルプサイトに追加しました(2020.5.13)
この記事で紹介したアプリをそのままkintone環境に展開できるアプリテンプレートと、サンプルデータをヘルプサイトに追加しました。
【ヘルプサイト】SUMIFS関数を使って残業時間を算出する
https://kintoneapp.zendesk.com/hc/ja/articles/900000880283
無料お試しをお申し込みいただいた際は、こちらも是非ご活用ください。
フィールド式でユーザー選択フィールドが利用できるようになりました!(2020.8.4)
2020年8月4日のバージョンアップにより、フィールド式で「ユーザー選択」を扱えるようになりました。
このバージョンアップにより”作成者”で一致させていたため、残業時間算出アプリのレコードを社員に登録してもらう運用が必須でしたが、CSVでの追加や管理者がレコードを追加する運用もできます!
変更が必要な部分は、ヘルプサイトのSUMIFS関数を使って残業時間を算出するに追記してありますので、ご確認ください♪

トヨクモ編集部
kintoneを便利に活用する情報を発信|サポートチーム全員がkintone資格保有者|【クラウドで、もっと便利に。もっと簡単に。】をモットーに活動