STEP 15:集計関数(SUM、AVG、COUNT、統計関数)

📊 STEP 15: 集計関数(SUM、AVG、COUNT、統計関数)

データを集計して意味を見出す!集計関数を完全マスター

📋 このステップで学ぶこと

  • 集計関数とは何か、なぜ必要なのか
  • 基本集計関数(SUM、AVG、COUNT、COUNTD)
  • 最小値・最大値(MIN、MAX)
  • 統計関数(MEDIAN、STDEV、PERCENTILE)
  • 集計のレベル(行レベル vs 集計レベル)
  • 集計関数の使い分けとベストプラクティス

ゴール:目的に応じて適切な集計関数を選択し、データを要約できるようになる

📊 1. 集計関数とは

集計関数の定義と役割

集計関数(Aggregate Function)は、複数のデータ行をまとめて1つの値にする関数です。Excelのピボットテーブルと同じように、データを要約・集約します。

ビジネスデータは通常、1行=1取引として詳細に記録されていますが、分析では「合計」「平均」「件数」などの集計した情報が必要です。

📝 身近な例:テストの平均点を計算する

クラス30人のテストの点数から平均点を計算する場合を考えてみましょう。

生徒A: 80点
生徒B: 75点
生徒C: 90点

生徒Z: 85点
────────────────
平均点: 82点 ← 集計関数 AVG() で計算

ポイント:30行のデータを1つの数値(平均点)にまとめています。これが集計です!

📊 行レベル vs 集計レベル
レベル 説明
行レベル 1行ごとの値(元データ) [売上](1取引の売上:10,000円)
集計レベル 複数行をまとめた値 SUM([売上])(合計売上:1,000,000円)

Tableauの動作:メジャーをビューにドラッグすると、自動的に集計されます(デフォルトはSUM)。

💡 なぜ集計が必要なのか

ビジネスデータは詳細レベル(1行=1取引)で記録されていますが、分析では集計レベルの情報が必要です。

質問 必要な集計
渋谷店の1月の売上は? SUM関数で合計
全店舗の平均客単価は? AVG関数で平均
今月の取引件数は? COUNT関数でカウント
何人の顧客が来店した? COUNTD関数でユニーク数

➕ 2. 基本集計関数(SUM、AVG、COUNT)

3大集計関数を使いこなす

SUM、AVG、COUNTは最も頻繁に使う基本の集計関数です。これらを使いこなせば、ほとんどの分析ニーズに対応できます。

📊 SUM(合計)
項目 内容
構文 SUM([フィールド名])
機能 すべての値を足し算して合計を返す
SUM([売上]) → 売上の合計
特徴 メジャーのデフォルト集計方法。NULLは0として扱う
使用場面 総売上、総個数、総利益など「全体の量」を知りたいとき
📊 AVG(平均)
項目 内容
構文 AVG([フィールド名])
機能 すべての値の平均を返す(合計÷件数)
AVG([売上]) → 1取引あたりの平均売上
特徴 NULLは除外して平均を計算
使用場面 平均単価、平均点数など「1件あたりの値」を知りたいとき
📊 COUNT / COUNTD(カウント)
関数 機能
COUNT NULLを除いた行数を返す COUNT([売上]) → 売上データがある取引件数
COUNTD ユニーク(重複除外)な値の数を返す COUNTD([顧客ID]) → ユニークな顧客数
📝 COUNTとCOUNTDの違いを理解する

以下のデータで違いを確認しましょう:

顧客ID: C001, C001, C002, C003, C001

COUNT([顧客ID]) = 5 (全行数:重複含む)
COUNTD([顧客ID]) = 3 (ユニーク数:C001、C002、C003)
関数 いつ使う?
COUNT 「何件あるか」を知りたいとき 取引件数、注文数
COUNTD 「何種類あるか」を知りたいとき 顧客数、商品数、店舗数
⚠️ AVGの注意点:行レベルの平均になる

AVG([売上])は「行レベルの平均」(1取引あたりの平均)を計算します。

例:渋谷店の3取引(120,000円、15,000円、1,800円)の場合
AVG([売上]) = (120,000 + 15,000 + 1,800) ÷ 3 = 45,600円

店舗別の平均売上を求めたい場合:
SUM([売上]) / COUNTD([店舗名]) を使って集計レベルで計算します。

📉 3. 最小値・最大値(MIN、MAX)

データの範囲を把握する

MIN、MAXはデータの最小値・最大値を返します。価格の範囲、期間の特定、異常値の発見に役立ちます。

📊 MIN / MAX の基本
関数 構文 機能
MIN MIN([フィールド名]) 最小値を返す MIN([売上]) → 最低売上
MAX MAX([フィールド名]) 最大値を返す MAX([売上]) → 最高売上
✅ MIN/MAXの活用例
活用場面 計算式 結果例
価格の範囲 MIN([売上]) 〜 MAX([売上]) 1,800円 〜 120,000円
データ開始日 MIN([日付]) 2024/01/05
データ終了日 MAX([日付]) 2024/02/28
データ期間(日数) DATEDIFF(‘day’, MIN([日付]), MAX([日付])) 54日間

📈 4. 統計関数(MEDIAN、STDEV、PERCENTILE)

より高度な統計分析を行う

平均だけでなく、中央値、標準偏差、パーセンタイルなどの統計指標を使うと、データの特性をより深く理解できます。

📊 MEDIAN(中央値)
項目 内容
構文 MEDIAN([フィールド名])
機能 データを小さい順に並べたときの真ん中の値を返す
特徴 外れ値(極端に大きい/小さい値)の影響を受けにくい
💡 中央値 vs 平均値:どちらを使う?
データ: 1万円, 3万円, 5万円, 7万円, 100万円

平均値 = (1+3+5+7+100) ÷ 5 = 23.2万円 ← 外れ値に引っ張られる
中央値 = 5万円 ← 真ん中の値で安定
場面 推奨 理由
給与データ 中央値 一部の高給取りに引っ張られない
不動産価格 中央値 豪邸の影響を受けない
テストの点数 平均値 ほぼ正規分布で外れ値が少ない
売上(一般) 平均値 合計を件数で割った値が意味を持つ
📊 STDEV(標準偏差)
項目 内容
構文 STDEV([フィールド名])(標本標準偏差)
機能 データのばらつき(散らばり具合)を数値化
解釈 小さい→データが平均付近に集中(安定)、大きい→ばらつきが大きい(変動)
データA: 10, 10, 10, 10, 10 → STDEV = 0(ばらつきなし)
データB: 5, 10, 15, 20, 25 → STDEV = 7.91(ばらつき大)
📊 PERCENTILE(パーセンタイル)
項目 内容
構文 PERCENTILE([フィールド名], パーセンタイル値)
機能 データを小さい順に並べたとき、指定した割合の位置にある値を返す
パーセンタイル 計算式 意味
25%(Q1) PERCENTILE([売上], 0.25) 第1四分位数(下から25%の位置)
50%(Q2) PERCENTILE([売上], 0.50) 中央値(= MEDIAN)
75%(Q3) PERCENTILE([売上], 0.75) 第3四分位数(下から75%の位置)
90% PERCENTILE([売上], 0.90) 上位10%のボーダーライン

🔢 5. よく使う計算パターン

実務で役立つ計算フィールド

集計関数を組み合わせることで、さまざまなビジネス指標を計算できます。

📊 よく使う計算パターン一覧
指標 計算式 説明
客単価 SUM([売上]) / COUNTD([顧客ID]) 1人あたりの平均購入額
平均取引金額 AVG([売上]) 1取引あたりの平均額
購入頻度 COUNT([取引ID]) / COUNTD([顧客ID]) 1人あたりの平均取引回数
店舗あたり売上 SUM([売上]) / COUNTD([店舗名]) 1店舗あたりの平均売上
商品あたり個数 SUM([個数]) / COUNTD([商品名]) 1商品あたりの平均販売個数
変動係数 STDEV([売上]) / AVG([売上]) 平均に対する標準偏差の割合(安定性の指標)

⚙️ 6. 集計関数の使い分けと注意点

目的に応じた関数の選択

集計関数を正しく使い分けることが、正確な分析の鍵です。

✅ 集計関数の選び方ガイド
目的 使う関数
合計を知りたい SUM 総売上、総個数、総利益
平均を知りたい AVG 平均売上、平均点数
件数を知りたい COUNT 取引件数、注文数
種類数を知りたい COUNTD 顧客数、商品数、店舗数
最大/最小を知りたい MAX/MIN 最高売上、最低価格
外れ値を避けたい MEDIAN 給与の中央値、不動産価格
ばらつきを知りたい STDEV 売上の変動、成績のばらつき
上位X%を知りたい PERCENTILE 上位10%の売上ライン
⚠️ よくある間違いと対策
間違い 問題点 正しい方法
店舗別平均にAVG使用 行レベルの平均になる SUM([売上]) / COUNTD([店舗名])
顧客数にCOUNT使用 重複カウントされる COUNTD([顧客ID])
外れ値ありでAVG使用 極端な値に引っ張られる MEDIAN([売上])
💡 NULL値の扱いを理解する
関数 NULL値の扱い
SUM NULLを0として扱う
AVG NULLを除外して平均を計算
COUNT NULLを除外してカウント
MIN/MAX NULLを無視

📝 STEP 15 のまとめ

✅ このステップで学んだこと
  • 集計関数:複数行を1つの値にまとめる
  • SUM:合計(最も基本的)
  • AVG:平均(行レベルの平均に注意)
  • COUNT:件数、COUNTD:ユニーク数
  • MIN/MAX:最小値/最大値
  • MEDIAN:中央値(外れ値に強い)
  • STDEV:標準偏差(ばらつき)
  • PERCENTILE:百分位数(上位X%)
  • 集計のレベル:ビューの粒度で変化
💡 最重要ポイント

集計関数はデータ分析の心臓部です。詳細データを要約して意味を見出します。

特にSUM(合計)、AVG(平均)、COUNTD(ユニーク数)の3つを使いこなせば、ほとんどの分析ニーズに対応できます。

判断基準:
・外れ値がある場合 → MEDIAN(中央値)
・ばらつきを知りたい → STDEV(標準偏差)
・上位X%を知りたい → PERCENTILE

📝 実践演習

演習 1 基礎

店舗別の売上合計(SUM)、売上平均(AVG)、取引件数(COUNT)を表示するビューを作成してください。

【手順】
1 「店舗名」を行シェルフにドラッグ
2 「売上」を列シェルフにドラッグ(自動的にSUM)
3 「売上」をもう一度列シェルフにドラッグ
4 2つ目の「売上」をクリック→「メジャー」→「平均」
5 「売上」をもう一度列シェルフにドラッグ
6 3つ目の「売上」をクリック→「メジャー」→「カウント」

結果:店舗ごとに、売上合計・平均・件数が3列で表示される

演習 2 応用

「客単価」という計算フィールドを作成してください。計算式は「売上合計 ÷ ユニーク顧客数」とし、店舗別の客単価を表示してください。

【手順】
1 データペイン右上の▼→「計算フィールドの作成」
2 名前:客単価
3 計算式:SUM([売上]) / COUNTD([顧客ID])
4 「OK」をクリック
5 「店舗名」を行シェルフ、「客単価」を列シェルフにドラッグ
6 書式設定:通貨、小数点以下0桁

結果:店舗別の客単価(1人あたりの平均購入額)が表示される

チャレンジ 発展

売上の「平均値」「中央値」「標準偏差」「第1四分位数(Q1)」「第3四分位数(Q3)」を計算し、それぞれを計算フィールドとして作成してください。これらの統計値をテキストテーブル(表)で表示してください。

【計算フィールドの作成】
名前 計算式
売上平均値 AVG([売上])
売上中央値 MEDIAN([売上])
売上標準偏差 STDEV([売上])
売上Q1 PERCENTILE([売上], 0.25)
売上Q3 PERCENTILE([売上], 0.75)
【表示手順】
1 すべての計算フィールドを「メジャーバリュー」にドラッグ
2 マークカードで「テキスト」を選択
3 書式設定で通貨形式に変更

結果:売上の統計サマリーが表形式で表示される

❓ よくある質問

Q1: SUM([売上])とAVG([売上])の違いがよくわかりません。
SUMは合計、AVGは平均です。

例:渋谷店の3取引(10万円、5万円、3万円)の場合
・SUM = 18万円(すべて足し算)
・AVG = 6万円(18万円 ÷ 3件)

売上分析では通常SUMを使い、客単価などはAVGまたはSUM/COUNTで計算します。
Q2: COUNTとCOUNTDの使い分けがわかりません。
重複を含むか含まないかの違いです。

COUNT:全行数(重複含む)→「何件あるか」
COUNTD:ユニーク数(重複除外)→「何種類あるか」

判断基準:顧客数を数えるならCOUNTD([顧客ID])、取引件数を数えるならCOUNT([取引ID])。
Q3: NULLがある場合、集計関数はどう動作しますか?
関数によって異なります。

SUM:NULLを0として扱う
AVG:NULLを除外して平均
COUNT:NULLを除外してカウント
MIN/MAX:NULLを無視

ほとんどの集計関数はNULLを「存在しないもの」として扱います。
Q4: 中央値と平均値のどちらを使うべきですか?
外れ値があるかどうかで判断します。

外れ値あり(給与、不動産価格など)→ 中央値(MEDIAN)
外れ値なし(テストの点数など)→ 平均値(AVG)

中央値は「真ん中の値」なので、極端な値の影響を受けません。
Q5: 店舗別の平均売上を計算したいですが、AVG([売上])では正しくありません。
SUM([売上]) / COUNTD([店舗名]) を使ってください。

AVG([売上])は「行レベル」の平均(1取引あたりの平均)を計算します。

店舗別の平均売上を求めるには、まず店舗ごとの合計を出し、それを店舗数で割る必要があります。これを「集計レベルの平均」と言います。
Q6: 標準偏差が何を意味するのかわかりません。
データのばらつき(散らばり具合)を表す指標です。

標準偏差が小さい→ データが平均の近くに集まっている(安定)
標準偏差が大きい→ データがばらついている(変動が大きい)

例:売上のSTDEVが10万円なら、ほとんどのデータは平均±10万円の範囲にあると解釈できます。
Q7: パーセンタイルはどんな場面で使いますか?
「上位X%」や「下位X%」を知りたいときに使います。

活用例:
・上位10%の顧客を特定(VIP顧客)
・下位25%の商品を特定(低パフォーマンス商品)
・箱ひげ図の作成(Q1、Q2、Q3を使用)

PERCENTILE([売上], 0.90) で上位10%のボーダーラインがわかります。
📝

学習メモ

BIツール入門 - Step 15

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE