キントーンの最大値と最小値を取得する方法
kintoneについて、職場でもパートナーとしてもよく聞かれることがあります。
数値の確認や活用をkintoneに期待されること多いんですよね
ってことで、今回は標準機能や連携サービスを使ってメリハリのある数値活用について書いてみます
*今回はkintoneに合わせて最大値 最小値で言葉を統一して書きます
kintone標準機能で最大値 最小値の把握
複数のレコードに数値を入力したとします
kintone標準機能で、複数レコードの中で最大値と最小値を知りたい場合、どういった方法で確認することができるのか?
kintoneレコード一覧で確認
一番簡単なのは、レコード一覧で確認することですかね?
レコード一覧の絞り込みで設定すればOKで、新しいレコードが追加されても自動で設定した順番で表示してくれます
いちいち設定しなくても、レコード一覧画面でフィールド名をクリックすれば降順昇順切り替わりながら表示してくれます
kintone標準機能のグラフで確認
ってことで、常に一目で確認できるようにグラフを設定しておくことも標準機能でできる設定です
kintoneの標準機能にある集計方法には以下の5つを選択することが可能です
- レコード数
- 合計
- 平均
- 最大値
- 最小値
最大値と最小値はグラフで確認できますが、この集計結果を使って計算することができないのでそこについては後程書きます
kintone関連レコードで最大値と最小値を確認
関連レコードを使っても最大値最小値を確認可能です
レコードのソートを設定しておくことで、最大順最小順で並べることも可能です(1つのレコードで)
一覧もグラフも集計した数値をそのまま利用することができない(書き出すことができるけど)ので、標準機能では数値を確認するだけ
集計結果を活用したい!!
最大値と最小値を連携サービスを使って出力してみました
Customineを使って最大値と最小値を知るには?
まずコード書けないので、Customineを使います
色々な方法があると思いますが、今回は関連レコード一覧の条件でレコードを取得して、そのレコード中のフィールドの最大値(最小値)を別のフィールドにセットする(以下画像参照)
そうすることで、以下の様に別のフィールドに数値として最大値や最小値が保存されます
このデータを使って計算したり、プリントクリエイターなどの帳票出力サービスで報告書に記載することもできますよね?
今月のバイタル最高値と最低値
では、プリントクリエイターしか契約していない場合はどんな方法があるのか考えてみました
プリントクリエイターで出力帳票に最大値と最小値を反映
プリントクリエイターだけでも最大値や最小値を帳票に反映させることは可能です
プリントクリエイターアプリ連携という便利な機能がある
プリントクリエイターのプレミアムコースにはアプリ連携という便利な機能があります
例えば、Aアプリで期間を指定します。
- 開始日(日付フィールド)
- 終了日(日付フィールド)
アプリ連携を使って、開始日から終了日までにあたるレコードだけの情報を帳票に記載する
先月の訪問リハビリの記録だけを帳票に出力することも可能です
最大値は降順? 最小値は昇順?
では、最大値と最小値だけを帳票に出力したい!!
こちらも方法は色々あると思いますが、僕はプリントクリエイターのアプリ連携 連携クエリを使って帳票に反映させています
- 連携元アプリ→出力する対象を指定するアプリ
- 連携先アプリ→日々記録するアプリ
こんなイメージですw
例えば体温の最大値だけを表示させたい時は以下の様なクエリを書きます
order by 体温 desc limit 1 offset 0
これで、連携先アプリのレコードの体温を降順(order by 体温 desc)でレコード先頭から1レコードだけ出力(limit 1)レコード0番目から出力(offset 0)
書き方に関しては、cybozu developer networkのレコード取得(GET)を参考にしています
昇順にすれば最小値が1番目に出力されると考えれば
order by 体温 asc limit 1 offset 0
で昇順の1番目のレコードの体温を出力してくれます
レコード一覧のクエリを取得したい場合は、Google Chromeだとでデペロッパーツールを使って、Console画面でkintone.app.getQuery(); を実行すれば確認できます
cybozu developer network Google Chrome 開発者ツールのTips集 -kintone開発特化編-
出力する帳票に対して、期間を指定したい場合
今月とか先月とかであれば(記録作成日のフォールドコードが開始出会った場合)
開始 = THIS_MONTH()
開始 = LAST_MONTH()
先々月の10日から今月の15日までとか自由に期間を設定したい時はどうでしょう?
上記の様なアプリフォームの場合
ID = {%ID%} and 開始 >= {%開始%} and 開始 <= {%終了%} order by 体温 desc limit 1 offset 0
こんなクエリで
- IDが同じレコード
- 開始〜終了の期間に該当するレコード
- 最大値1レコード
が絞り込めます
最大値って絞り込みをしなければ、絞り込んだ期間に該当するレコードをプリントクリエイターで指定した行数分だけ帳票に反映させることも可能です