kintoneの最大値最小値について考えてみた

kintoneについて、職場でもパートナーとしてもよく聞かれることがあります。

キンボウズ
バイタルの最大値(最高値)と最小値(最低値)を出したい

数値の確認や活用をkintoneに期待されること多いんですよね

ってことで、今回は標準機能や連携サービスを使ってメリハリのある数値活用について書いてみます

*今回はkintoneに合わせて最大値 最小値で言葉を統一して書きます

標準機能で最大値 最小値の把握

複数のレコードに数値を入力したとします

kintone標準機能で、複数レコードの中で最大値と最小値を知りたい場合、どういった方法で確認することができるのか?

レコード一覧で確認

一番簡単なのは、レコード一覧で確認することですかね?

レコード一覧の絞り込みで設定すればOKで、新しいレコードが追加されても自動で設定した順番で表示してくれます

いちいち設定しなくても、レコード一覧画面でフィールド名をクリックすれば降順昇順切り替わりながら表示してくれます

bozu
ちょっと知りたい時はクリックでOK!!
でもこれだと最大と最小を一目で確認することはできない・・・

グラフで確認

ってことで、常に一目で確認できるようにグラフを設定しておくことも標準機能でできる設定です

kintoneの標準機能にある集計方法には以下の5つを選択することが可能です

  • レコード数
  • 合計
  • 平均
  • 最大値
  • 最小値

最大値と最小値はグラフで確認できますが、この集計結果を使って計算することができないのでそこについては後程書きます

関連レコードで確認

関連レコードを使っても最大値最小値を確認可能です

レコードのソートを設定しておくことで、最大順最小順で並べることも可能です(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番目のレコードの体温を出力してくれます

初期値を0とかに設定していたら?

予めレコードを作成しておいて、初期値を0とかにしていたら・・・

kintoneで繰り返し曜日条件で予定登録

繰り返し予定&曜日条件でkintoneレコード登録

最小値0がいっぱいある状態になるので、帳票が0だらけになります。クエリで絞り込むか、

体温 > 0 order by 体温 asc limit 1 offset 0

体温 > 0 で0以上と絞り込めばOKですね

レコード一覧のクエリを取得したい場合は、Google Chromeだとでデペロッパーツールを使って、Console画面でkintone.app.getQuery(); を実行すれば確認できます

cybozu developer network Google Chrome 開発者ツールのTips集 -kintone開発特化編-

期間を指定したい場合

bozu
キンボウズさん、出力する記録の期間を指定したいんです

今月とか先月とかであれば(記録作成日のフォールドコードが開始出会った場合)

開始 = THIS_MONTH()
開始 = LAST_MONTH()

先々月の10日から今月の15日までとか自由に期間を設定したい時はどうでしょう?

記録するアプリ
期間を指定するアプリ

上記の様なアプリフォームの場合

ID = {%ID%} and 開始 >= {%開始%} and 開始 <= {%終了%} order by 体温 desc limit 1 offset 0

こんなクエリで

  • IDが同じレコード
  • 開始〜終了の期間に該当するレコード
  • 最大値1レコード

が絞り込めます

最大値って絞り込みをしなければ、絞り込んだ期間に該当するレコードをプリントクリエイターで指定した行数分だけ帳票に反映させることも可能です

bozu
出力したい期間を1つ1つのレコード設定するのが面倒くさい・・・
kintoneの日付を一括変更したい

kintoneのフィールド値を一括変更することで楽したい

bozu
方法としては色々あります。複数ルートあるから考えるのが楽しいっすね〜

動画で説明

シェアどうぞ宜しくお願い致します