データ集計
キーごとに値をまとめます。店舗別の売上合計、顧客ごとの注文件数、日別の平均単価といった小計を作ります。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | キーの組み合わせごとに 1 行にまとめたデータ |
Spark エンジンでも動きます。
キー列と、集計した列だけが残ります。 集計の対象にしなかった列は出力から消えます。残したい列は、キー列に入れるか、データの値を列に挿入で後からくっつけてください。
設定項目
- キー列を選択必須
- まとめる単位になる列。複数選べます。「キー列を指定する」を off にすると、この項目は消えて全体が 1 行になります。
集計の設定
関数と対象列の組です。いくつでも足せます。
- 関数を選択必須
- 合計 / 平均 / 中央値 / 最小値 / 最大値 / 標準偏差 / カウント / ユニークカウント。選んだ関数によって、次の「集計対象列を選択」で選べる列の型が変わります。
- 集計対象列を選択
- 集計する列。複数選べます。カウントのときは「カウントする列を指定する」を on にしたときだけ出ます。1 列も選ばないと「対象の列が選択されていません。」で止まります。
- カウントする列を指定する
- 関数がカウントのときだけ出ます。既定は off です。off なら行数、on なら選んだ列に値が入っている行の数を数えます。
オプション
- 集計後の列名に関数名を付与する
- 既定は on。
売上_合計のように、元の列名のうしろに関数の名前が付きます。off にすると元の列名のままです。 - 数値型の集計対象列の欠損値を置換して処理する
- 数値を入れると、集計する前に数値型の列の空欄をその値に置き換えます。空のままなら空欄は無視されます。
- キー列を指定する
- 既定は on。off にすると「キー列を選択」が消え、データ全体を 1 行に集計します。
関数ごとの違い
選んだ関数によって、集計対象に選べる列の型が変わります。
関数と、選べる列の型
| 関数 | 選べる型 | 空欄の扱い |
|---|---|---|
| 合計 | 数値 | 無視する |
| 平均 | 数値 / 時間 | 無視する |
| 中央値 | 数値 | 無視する |
| 最小値 | 数値 / 日付 / 日付時間 / 時間 | 無視する |
| 最大値 | 数値 / 日付 / 日付時間 / 時間 | 無視する |
| 標準偏差 | 数値 | 無視する |
| カウント | すべての型。「カウントする列を指定する」が off のときは列を選びません | 行数は空欄も数える。列を指定したときは空欄を無視する |
| ユニークカウント | すべての型 | 無視する |
カウントの 2 通り
- 行数を数える(既定)
- キーごとの行数。空欄の行も数えます。出力の列名は
行数カウントです。 - 列を指定して数える
- 選んだ列に値が入っている行の数。出力の列名は
住所_カウントのようになります。
「注文件数」は行数、「住所が登録されている人数」は列を指定、と使い分けます。
出力の形
- キー列 + 集計した列が並びます
- キーの組み合わせごとに 1 行になります
- 集計した列は元の列ごとにまとまって並びます。同じ列に合計と平均を掛けると
売上_合計売上_平均が隣り合います
列名には日本語の関数名が付きます。
| 関数 | 「集計後の列名に関数名を付与する」が on のときの列名 |
|---|---|
| 合計 | 売上_合計 |
| 平均 | 売上_平均 |
| 中央値 | 売上_中央値 |
| 最小値 | 売上_最小値 |
| 最大値 | 売上_最大値 |
| 標準偏差 | 売上_標準偏差 |
| カウント(行数) | 行数カウント |
| カウント(列を指定) | 住所_カウント |
| ユニークカウント | 顧客ID_ユニークカウント |
行数カウント だけは例外で、「集計後の列名に関数名を付与する」を off にしても名前が変わりません。
同じ列に複数の関数を掛ける場合は on のままにしてください。 off だと同じ名前の列ができてしまいます。
キー列が空欄の行
捨てられません。 キーが空欄の行はひとまとめにされ、出力でもキーは空欄のまま 1 行として並びます。「未入力が何件あるか」をそのまま数えられます。
エラーと対処
集計の設定がない
集計の設定を 1 つも作っていないとき。
集計設定を入力してください。追加ボタンを押すと設定項目が表示されます。
直し方 — 「追加」を押して、関数と対象列を指定してください。
関数を選んでいない
設定を作ったが、関数が空のとき。
集計関数が選択されていません。
直し方 — 関数を選んでください。
列の型に使えない関数を指定した
文字列の列に合計、日付の列に平均、のように型が合わない組み合わせのとき。
列:
{{col}}は{{dtype}}のため{{funcs}}の計算は出来ません。
直し方 — 関数ごとの違いに合う関数へ変えるか、列の型変更で列の型を変えます。
同じ組み合わせを 2 回設定した
同じ列に同じ関数を 2 回設定したとき。別々の設定にまたがっていても見ます。
集計設定に重複があるため処理を中断しました。お手数ですが設定が単一になるように入力してください。 対象:
直し方 — メッセージに出ている列と関数の組を、どちらか 1 つ消してください。
集計対象列を選んでいない
関数を選んだあと、「集計対象列を選択」で 1 列も選ばずに実行したとき。
対象の列が選択されていません。
直し方 — 集計対象列を選んでください。関数がカウントで行数を数えたいだけなら、「カウントする列を指定する」を off にします。
数値でない列を集計しようとした
合計や平均の対象に、数値として読めない値が入っているとき。
集計列に数値以外のデータが含まれています。データを確認してください。
直し方 — 列の型変更で数値にしてください。数値にできない値が混ざっている場合は、先に取り除くか置き換えます。
選んだ列が見つからない
キー列を選択や集計対象列を選択で指定した列が入力データにないとき、またはどの条件にも 1 列も当たらないとき。前の処理で列名が変わった場合にも出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。列名が変わりうるデータでは、名前に頼らない選び方(型で選ぶ・前方一致)に変えると壊れにくくなります。
よく使う例
1. 店舗別の売上合計
お題 — 店舗ごとの売上を知りたい
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 220000 |
| 渋谷 | 200000 |
| 新宿 | 310000 |
設定 — キー列 店舗、関数「合計」、集計対象列 売上
出力
| 店舗 | 売上_合計 |
|---|---|
| 渋谷 | 420000 |
| 新宿 | 310000 |
2. 顧客ごとの注文件数
お題 — 何回注文したかを数えたい
入力
| 顧客ID | 注文番号 |
|---|---|
| C001 | 1001 |
| C001 | 1002 |
| C002 | 1003 |
設定 — キー列 顧客ID、関数「カウント」、「カウントする列を指定する」は off
出力
| 顧客ID | 行数カウント |
|---|---|
| C001 | 2 |
| C002 | 1 |
3. 2 つのキーでまとめる
お題 — 店舗と月の両方でまとめたい
入力
| 店舗 | 年月 | 売上 |
|---|---|---|
| 渋谷 | 2024-01 | 120 |
| 渋谷 | 2024-01 | 80 |
| 渋谷 | 2024-02 | 140 |
| 新宿 | 2024-01 | 98 |
設定 — キー列に 店舗 と 年月 の 2 つ、関数「合計」、集計対象列 売上
出力
| 店舗 | 年月 | 売上_合計 |
|---|---|---|
| 渋谷 | 2024-01 | 200 |
| 渋谷 | 2024-02 | 140 |
| 新宿 | 2024-01 | 98 |
4. 複数の集計を一度に出す
お題 — 店舗ごとに、売上の合計・平均・件数が欲しい
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 220000 |
| 渋谷 | 200000 |
| 新宿 | 310000 |
設定 — 集計の設定を 3 つ作ります。合計と平均は集計対象列 売上、カウントは「カウントする列を指定する」を off
出力
| 店舗 | 売上_合計 | 売上_平均 | 行数カウント |
|---|---|---|---|
| 渋谷 | 420000 | 210000 | 2 |
| 新宿 | 310000 | 310000 | 1 |
5. 全体の合計を出す
お題 — 全体で 1 行の集計が欲しい(比率の計算に使う)
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 420000 |
| 新宿 | 310000 |
設定 — 「キー列を指定する」を off、関数「合計」、集計対象列 売上
出力
| 売上_合計 |
|---|
| 730000 |
1 行のデータになるので、データの値を列に挿入で明細の各行にくっつけて比率を出せます。
6. 空欄を 0 として平均を出す
お題 — 未入力を 0 とみなして平均したい
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 400 |
| 渋谷 | 500 |
| 渋谷 |
設定 — キー列 店舗、関数「平均」、集計対象列 売上、「数値型の集計対象列の欠損値を置換して処理する」に 0
出力
| 店舗 | 売上_平均 |
|---|---|
| 渋谷 | 300 |
空のままにすると空欄の行が分母から外れ、450 になります。
7. 何種類あるかを数える
お題 — 店舗ごとに、何人の顧客が来たか
入力
| 店舗 | 顧客ID |
|---|---|
| 渋谷 | C001 |
| 渋谷 | C001 |
| 渋谷 | C002 |
設定 — キー列 店舗、関数「ユニークカウント」、集計対象列 顧客ID
出力
| 店舗 | 顧客ID_ユニークカウント |
|---|---|
| 渋谷 | 2 |
同じ顧客が複数回来ても 1 と数えます。
8. 縦持ちにしてからまとめて集計する
お題 — 月ごとに列が分かれた表を、月別に集計したい
入力
| 店舗 | 1月 | 2月 |
|---|---|---|
| 渋谷 | 120 | 140 |
| 新宿 | 98 | 110 |
設定 — 先に縦持ち変換でキー列 店舗、列名の挿入先 月、値の挿入先 売上 にしてから、キー列 月、関数「合計」、集計対象列 売上
出力
| 月 | 売上_合計 |
|---|---|
| 1月 | 218 |
| 2月 | 250 |
月の列が増えても、集計の設定を足さずに済みます。
エラーと対処
集計設定が重なっている
Hyper nehanで実行したとき、同じ列に同じ集計方法を 2 回設定していると止まります。
集計設定に重複があるため処理を中断しました。お手数ですが設定が単一になるように入力してください。
直し方 — 重なっている行を消してください。同じ列でも、集計方法が違えば並べられます。