関連レコード集計

関連するレコードの数値を自動集計して表示する読み取り専用フィールドです。件数・合計・平均・最小・最大をサポートします。

同じレコード内のサブテーブルを集計したい場合

「関連レコード集計」フィールドは 別アプリの関連レコード を集計するための機能です。 同じレコード内のサブテーブル(明細行など)の合計・平均を出したい場合は、計算フィールドSUM(table.field) / AVERAGE(table.field) / COUNT(table.field) を使用してください。

表示イメージ

入力フォームでの表示

案件数

5 件

合計金額

¥3,500,000

平均単価

¥700,000

最高金額

¥1,200,000

関連レコードから自動計算されます。手動編集は不可です。

設定項目

プロパティパネル

ラベル *

フィールドコード

集計元アプリ

案件管理 ▼

レコードの対応条件

この2つのフィールドの値が一致するレコードを集計します(集計元が範囲型なら「範囲に含まれる」で対応づけます)

顧客コード ▼
顧客コード ▼
このアプリ集計元アプリ

集計方法

合計(SUM) ▼

集計元の集計対象フィールド

金額 ▼
設定項目
ラベル
説明
画面に表示されるフィールド名
設定項目
フィールドコード
説明
API・計算式で使用する識別子
設定項目
集計元アプリ
説明
集計対象レコードが存在するアプリ
設定項目
レコードの対応条件
説明
このアプリと集計元アプリのフィールドを1つずつ選び、値が一致するレコードを集計対象とします。例: このアプリの「顧客コード」= 集計元アプリの「顧客コード」。集計元側に範囲型フィールドを選んだ場合だけは「一致」ではなく「範囲に含まれる」で対応づけます — 例: このアプリの「日付」が集計元アプリの「休業期間」に含まれるレコードを数える。終了日を空にした範囲は「その日以降ずっと」として扱われます。時刻の範囲は指定できません(終了未定を扱えないため)
設定項目
集計方法
説明
COUNT / SUM / AVG / MIN / MAX から選択
設定項目
集計元の集計対象フィールド
説明
SUM/AVG/MIN/MAX の対象となる数値フィールド(COUNTは不要)
設定項目
フィルタ条件(集計元アプリ)
説明
集計対象を絞り込む条件(ステータス=完了 等)。集計元アプリのフィールドに対して =・≠・含む・大小比較を AND/OR で組み合わせられます。「ステータス=完了 かつ(担当部署=営業 または 金額≧10万)」のような条件グループ(入れ子の AND/OR)にも対応しています。集計元アプリでワークフローが有効な場合は、フィールドと並んで「ワークフローのステータス」も条件に選べます(演算子は=と≠の2つ)
設定項目
アプリ結合(上級)
説明
集計前に集計元アプリのレコードを別のアプリとJOINできます。集計元アプリにない値(マスタの単価等)を使って集計したい場合に使用します
設定項目
3桁区切り
説明
ONにすると集計値を1,000のようにカンマ区切りで表示

集計方法

集計方法
件数(COUNT)
説明
関連レコードの件数を数える
集計方法
合計(SUM)
説明
数値フィールドの合計値
集計方法
平均(AVG)
説明
数値フィールドの平均値
集計方法
最小(MIN)
説明
数値フィールドの最小値
集計方法
最大(MAX)
説明
数値フィールドの最大値

集計値の自動更新

集計値はレコードのデータ(record.data)に直接保存されます。 関連レコードが追加・更新・削除されると、集計値は自動的に再計算されます。

  • 関連レコードの変更時に、バックグラウンドで集計値が自動的に再計算・更新されます
  • レコード一覧やスプレッドシートビューでも、再計算済みの集計値がそのまま表示されます
  • 手動でレコードを開き直す必要はありません

使い方

例1: 顧客ごとの受注合計金額を表示する

「顧客管理」アプリに関連レコード集計フィールドを追加し、「受注管理」アプリの受注金額を顧客ごとに合計表示します。

完成イメージ

顧客名受注合計受注件数
山田商事¥3,500,0005 件
田中工業¥1,200,0003 件

「受注合計」「受注件数」が関連レコード集計フィールドです

前提条件

以下の2つのアプリが必要です:

アプリ構成

顧客管理(関連レコード集計フィールドを追加する側)

顧客コードC-001
顧客名山田商事

受注管理(集計元のアプリ)

顧客ルックアップC-001(山田商事)
受注金額500,000

※ 受注管理に顧客管理へのルックアップフィールドが必要です

1顧客管理にフィールドを追加

顧客管理アプリのフォーム設定で、「関連レコード集計」フィールドを追加します。

2関連レコード集計フィールドのプロパティを設定

以下の項目を設定します:

受注合計フィールドの設定

ラベル受注合計
集計元アプリ受注管理
レコードの対応条件
顧客コード顧客ルックアップ
(このアプリ)(集計元アプリ)
集計方法合計(SUM)
集計元の集計対象フィールド受注金額

3件数フィールドも追加(任意)

同様に「件数(COUNT)」の関連レコード集計フィールドを追加すると、受注件数も表示できます。COUNTの場合は「集計元の集計対象フィールド」の選択は不要です。

4動作確認

受注管理にレコードを追加・更新・削除すると、顧客管理の集計値がバックグラウンドで自動的に再計算されます。 レコード一覧やスプレッドシートビューでもリアルタイムで最新の集計値が表示されます。

例2: アプリ結合を使って商品マスタの単価で集計する(上級)

集計元アプリにはない値を別のアプリから結合して集計することもできます。 「受注明細」アプリには数量だけがあり、単価は「商品マスタ」アプリで管理されている場合、 受注明細と商品マスタを結合してから顧客ごとの合計金額を計算します。

3つのアプリの関係

顧客管理(このアプリ)

顧客コードC-001
顧客名山田商事
受注金額合計関連レコード集計フィールド

受注明細(集計元アプリ)

顧客C-001
商品コードP-100
数量3

※ 単価の情報がない

商品マスタ(結合先アプリ)

商品コードP-100
商品名ウィジェットA
単価¥5,000

※ 単価はここにある

受注明細の「商品コード」= 商品マスタの「商品コード」で結合 → 商品マスタの「単価」で集計

設定例: 受注金額合計フィールド

集計元アプリ受注明細
レコードの対応条件
顧客コード顧客
(このアプリ)(集計元アプリ)
集計方法合計(SUM)
アプリ結合(上級)
結合先アプリ商品マスタ
結合条件
商品コード商品コード
(集計元アプリ)(結合先アプリ)
集計対象フィールド単価(商品マスタのフィールド)

この設定により、受注明細の各レコードが商品マスタと結合され、商品マスタの「単価」フィールドを使って顧客ごとの合計金額が計算されます。

ヒント

  • フィルタ条件を設定すると「ステータスが完了の案件だけの合計金額」のような条件付き集計ができます。条件はフォームの本番反映時に有効になります
  • 集計元アプリでワークフローが有効な場合、フィルタ条件の項目に実フィールドと並んで「ワークフローのステータス」が選べます(演算子は=と≠の2つ)。「申請中の件数を数える」「承認済みの金額だけを合計する」といった集計に使えます。複数のステータスを許すときは=の条件を2つ用意し、条件グループで OR(または)に結びます。ただし表の条件(サブテーブルの行に対する絞り込み)の枠の中では、このステータス条件は使えません。また、集計列の条件で使っているステータスはワークフロー設定から削除できません(削除しようとすると、使っている集計列の名前が表示されます)。先に集計列の条件を変更してください
  • 集計元アプリでレコードのステータスが遷移する(承認・却下などの操作が行われる)と、ステータスを条件にした集計値も自動的に再計算されます。再計算はできるかぎりその操作の中ですぐに行い、間に合わないときはその直後にバックグラウンドで行います。そのため、遷移の直後は一時的に少し前の集計値が表示されることがあります
  • 集計元アプリでワークフローが無効(または一度も有効にされていない)場合、すべてのレコードは「ステータスなし」として扱われます。この状態ではステータス条件の=はどのレコードにも一致せず(集計対象は0件扱い)、≠は常にすべてのレコードに一致します
  • レコードの対応条件にルックアップフィールドを指定した場合、画面に表示される値ではなく、紐づけキーの値(顧客コード等)で照合されます
  • 集計値はレコードのデータに直接保存されるため、一覧表示やソート・フィルタで高速に利用できます
  • 関連レコードが大量にある場合、再計算がバックグラウンドで処理されるため、反映に少し時間がかかることがあります