ブログ

kintone の関連レコードを集計して月次稼働時間レポートを作ってみよう!②計算プラグイン設定

kintoneで関連レコードにある時間を集計したいけど方法が分からないとお悩みのあなた。その悩み、計算プラグインで解決できます。この記事では、前回に引き続き日報アプリ(子アプリ)に記録された日々の稼働時間を、月次レポート(親アプリ)で正確に合計する方法を、詳しく解説します。

<この記事のゴール>

  • 日報アプリで入力した稼働時間を、月次レポートアプリで自動集計する
  • 「28:21」のように、24時間を超える合計稼働時間を正しく表示させる。

 

1. 日報アプリ(子アプリ)

計算プラグインで日付、時刻の集計を行う場合、シリアル値を使用します。
そのため、以下の設定を行ってください。

1.1. アプリの小数点設定

アプリの設定->高度な設定で

・[小数部の桁数]を5桁(またはそれ以上)にする
・[丸めかた]を"切り上げ"にする

保存したら、アプリを更新します。

1.2. 追加フィールド定義

前回の記事で稼働の開始時刻と終了時刻を説明しています。開始と終了の時間をTIMEVALUE関数を用いてタイムスタンプ化し、タイムスタンプの差を計算し、数値フィールドに格納します。まずは、既存の日報アプリに以下のフィールドを追加します。

フィールド名 フィールドタイプ 設定内容 補足
実働時間シリアル値 数値 フィールドコードもフィールド名と同一 既存アプリに追加してください

以下のようになります。

フィールドを追加したらアプリの更新をします。

1.3. 計算プラグイン設定

計算プラグインを有効にし、計算式設定フィールドに先ほど追加した実働時間シリアル値フィールドを指定します。計算式には以下の設定を入れます。


TIMEVALUE(終了時刻) - TIMEVALUE(開始時刻)

丸め込み設定を以下のようにします。

  • 丸め込み方法:  切り上げ
  • 小数点以下桁数: 6

以下のようになります。

設定を保存しアプリを更新してください。

1.4. 差分の計算実行

一覧から、鉛筆の編集ボタンを押して、「保存する」を押す、を繰り返すことで全レコードの実働時間シリアル値を計算することが出来ます。

 

2.  月次レポートアプリ(親アプリ)

2.1. 追加フィールド定義

親アプリに当たる月次レポートアプリに、時刻合計フィールドを追加します。フィールドタイプは文字列(1行)にします。

フィールド名 フィールドタイプ 設定内容 補足
時刻合計 文字列(1行) フィールドコードもフィールド名と同一 kintoneの時刻フィールドは24時以上を表現できないため「文字列(1行)フィールド」で文字列として保存します。

時刻合計は以下のようになります。

2.2.  計算プラグイン設定

最後に、関連レコード一覧にある実働時間シリアル値の値を HOUR 関数MINUTE 関数を用いて合算します。以下の関数をセットしてください。


(INT(SUM(実働時間シリアル値.関連レコード一覧))* 24+HOUR(SUM(実働時間シリアル値.関連レコード一覧))) & ":" & TEXT(MINUTE(SUM(実働時間_シリアル値.関連レコード一覧)), "00")

補足:計算プラグインのHOUR関数はシリアル値の小数点以下を処理します。24時間でシリアル値が1となるため、上記計算式ではINT関数で取得した日数*24時間を足しています。また、分の部分は桁数を固定にするためTEXT関数を用いてゼロ埋めしています。

以下のようになります。

3. 設定後

月次レポートアプリの各レコードを改めて保存しなおすことで、再計算が行われ関連レコードのシリアル値が合算され合計時間が算出されます。

いかがだったでしょうか。関連レコードと計算プラグインを用いることで24時間を超える合計時間が計算出来ていることが分かるかと思います。

 

ブログ一覧に戻る