テーブルのデータを店舗ごとにスッキリ集計する方法

テーブルのデータを店舗ごとにスッキリ集計する方法

kintoneのテーブル(子レコード)に入力された情報を、特定の項目(店舗など)ごとにグループ化して、住所をまとめたり、氏名を重複なく連結したりしたいことはありませんか?

「rex0220 計算式プラグイン」の TLTABLE 関数 を使うと、複雑な集計も一つの式でスマートに実現できます。

実現したいこと

「従業員情報」テーブルから、以下の条件で集計を行い、別のテーブル(店舗別集計)に結果をセットします。

  • 配属店舗 ごとにグループ化する
  • 対応する 店舗住所 を取得する
  • 所属する 氏名 を、重複を除いて(ユニークな状態で)カンマ区切りで連結する

アプリの構成

あらかじめ、計算結果を格納するためのテーブルを準備しておきます。

フィールド名 フィールドコード 項目タイプ
従業員情報(元テーブル) 従業員情報 テーブル
店舗別集計(先テーブル) 店舗別集計 テーブル
配属店舗(結果用) 配属店舗A 文字列(1行)
店舗住所(結果用) 店舗住所A 文字列(1行)
氏名(結果用) 氏名A 文字列(1行)

計算式の設定

集計先の「店舗別集計」テーブル自体に、以下の計算式を設定します。

// 店舗別集計 SUBTABLE
// 配属店舗ごとに集計し、住所を取得、氏名を重複なしで連結する
TLTABLE(
  従業員情報,
  TPFILTER(AND(氏名, 配属店舗)), // 氏名と配属店舗が入力されている行のみ対象
  TPKEY(配属店舗, 店舗住所),     // グループ化のキー(配属店舗と住所)
  TPVAL(氏名, "uniq"),          // 集計する値(氏名を重複排除して連結)
  TPOUT(配属店舗A, 店舗住所A, 氏名A) // 出力先のフィールド指定
)

ポイント解説

  • TPFILTER: 集計対象を絞り込みます。未入力行を除外することで、綺麗な集計結果が得られます。
  • TPKEY: ここに指定した項目が「同じもの」としてまとめられます。
  • TPVAL: 第2パラメータに "uniq" を指定することで、同じ名前が複数あっても一つにまとめて連結してくれます。
  • TPOUT: 集計した結果を、どのフィールドに出力するかを順番に指定します。

Qiita記事