krewDataでフィールドを集計するにはグループ化コマンドを使用しますが、集計対象フィールドが時刻や時刻の差分を計算フィールドで求めている場合は、そのままでは集計することができません。このため、以下のいずれかの手順が必要となります。
方法1:入力アプリに計算フィールドを作成して集計に利用する
流れとしては、krewDataの入力アプリとなるkintoneのアプリ側で、集計したい時刻を「数値」で表現した計算フィールドを用意しておき、その計算フィールドをグループ化コマンドで合計して、出力アプリに時間フィールドとして出力させます。
以下に具体例を示します。
- 入力アプリとなるkintoneのアプリ側で次のフィールドを作成しておきます
(a)時刻フィールド(集計対象となる時刻フィールド)
(b)計算フィールド(aを数値で表示させたフィールド)
計算式に(a)の時刻フィールドを設定
「数値(例:1000)」をオンに設定 - 出力アプリとなるkintoneのアプリ側で次のフィールドを作成しておきます
(C)数値フィールド(集計した時刻を数値で出力するためのフィールド)
(d)計算フィールド(集計した時刻を時刻表示するためのフィールド)
計算式に(C)の数値フィールドを設定
「時刻(例:2:03)」か「 時間(例:26時間3分)」をオンに設定 - 入力アプリとして1.のアプリを指定します。
- グループ化コマンドで(b)のフィールドを合計します。
- 出力アプリとして2.のアプリを指定します。
この時、4で合計したフィールドを(C)に出力します。
方法2:入力アプリに計算フィールドを作成せずkrewDataのみで集計する
流れとしては、集計対象となる時刻フィールドをデータ編集コマンドで一旦シリアル値に変更したものをフィールドドタイプ設定コマンドで数値に変換します。こうすることで、グループ化コマンドで合計ができるようになり、この合計した結果を時間(hh:mm)に変換して出力アプリに出力させます。
以下に具体例を示します。
- 入力アプリコマンド
時刻フィールドを持ったアプリを指定します。 - データ編集コマンド
新しいフィールドを作成して、その数式に時刻フィールドをTIMEVALUE関数でシリアル値に変換したものを設定します。
(数式例)=TIMEVALUE(時刻フィールド) - フィールドタイブ設定コマンド
新しいフィールドを作成して、2で作成したフィールドを数値に変換します。 - グループ化コマンド
3で作成したフィールドを「合計」します。
この状態でプレビューを見ると、集計結果をシリアル値で確認できます。 - データ編集コマンド
新しいフィールドを作成して、その数式を使い4の集計結果を時間(hh:mm)に変換します。
(数式例:24時間を超えない場合の集計)
=TEXT( TIME(HOUR(時間合計),MINUTE(時間合計),SECOND(時間合計)),"hh:mm")
(数式例:24時間を超える場合の集計)
=TEXT(INT(時間合計/TIMEVALUE("1:00")),"00")&":"&TEXT(MINUTE(MOD(時間合計,TIMEVALUE("1:00"))),"00") -
出力アプリコマンド出力アプリの文字列(1行)の設定フィールドに、5で集計した文字列を出力します。
コメント
0件のコメント
記事コメントは受け付けていません。