データ整理とテーブル設計
フラットテーブル、データバリデーション、クリーニングの技法で分析に耐えるデータ基盤を構築する。
誰にも使えなかったスプレッドシート
その売上レポートは、3列にまたがるセル結合があった。地域名は列ではなく行ヘッダーに入っていた。月名は「1月」と「Jan」が混在。2つの商品名は末尾にスペースが紛れ込み、見た目は同じなのにデータ上は別物。すべての数式が壊れ、ピボットテーブルも機能しなかった。
データ自体はすべて揃っていた。構造が使い物にならなかったのだ。
🔄 前のレッスンでIF、SUMIF、テキスト関数をマスターした。SUMIFが条件に一致する値を合計するのを覚えているだろうか?もしその範囲に「北海道」「北海道 」「ほっかいどう」が混在していたら、正しく集計されない。今日はそうした問題を元から断つ方法を学ぶ。
正しいデータ構造の4つのルール
ルール1:1行 = 1レコード
すべての行は1つの観測値・トランザクション・エントリを表す。行をまたぐセル結合はNG。データ行と集計行を混在させない。
悪い例:
| 地域 | Q1売上 | Q2売上 |
|---|---|---|
| 北海道 | ¥5,000,000 | ¥6,200,000 |
| 東北 | ¥4,500,000 | ¥5,100,000 |
良い例:
| 地域 | 四半期 | 売上 |
|---|---|---|
| 北海道 | Q1 | ¥5,000,000 |
| 北海道 | Q2 | ¥6,200,000 |
| 東北 | Q1 | ¥4,500,000 |
| 東北 | Q2 | ¥5,100,000 |
行数は増えるが、SUMIF、ピボットテーブル、フィルター、グラフ——すべてのツールで正しく動作する。
ルール2:1列 = 1属性
各列には1種類の情報だけを入れる。名前と役職を1つのセルに混ぜない。市区町村と都道府県を1つのセルにしない。
ルール3:空白行・空白列なし
空白行はデータ範囲、テーブル参照、ピボットテーブルを壊す。視覚的な区切りが欲しいなら、空白行ではなく書式(罫線、色)を使う。
ルール4:ヘッダーは1行目のみ
1行の明確なヘッダー。複数行ヘッダーやセル結合ヘッダーはNG。ヘッダーは一意で、簡潔で、わかりやすく。
✅ Quick Check: 月が列に並び(1月、2月、3月…)、商品が行にあるスプレッドシートを受け取った。なぜ分析に問題があるか?どう再構成すべきか?
テーブル変換
ExcelにもGoogleスプレッドシートにも正式な「テーブル」機能がある:
Excel: データ選択 → 挿入 → テーブル(Ctrl+T) Googleスプレッドシート: データ選択 → 書式 → 交互の背景色
テーブルのメリット:
- 新しい行を追加すると自動で範囲が拡張される
- 構造化参照が使える(
=SUM(売上[金額])のように列名で参照) - フィルタリングとソートが組み込み
- 書式が新規データにも自動適用
- 名前付き範囲が自動更新
以下の構造のデータがあります:
[現在の構造を説明]
次の点を確認してください:
1. 構造上の問題を特定
2. 正しいフラットテーブル形式を提案
3. データを再構成する手順または数式
4. 適切な列ヘッダーとデータ型の推奨
5. 各列のデータバリデーションルールの提案
データバリデーション(入力規則)
入力時点で不正データを防ぐ仕組み。
ドロップダウンリスト
固定選択肢の列(ステータス、部門、地域)に:
Excel: データ → データの入力規則 → リスト → カンマ区切りで入力 Googleスプレッドシート: データ → データの入力規則 → プルダウン
数値範囲
一定範囲の数値が入るべき列(年齢:18〜100、評価:1〜5)に:
共通: データの入力規則 → 数値 → 次の範囲内 → 最小値・最大値を設定
日付制約
日付列(開始日は2020年以降であるべき)に:
共通: データの入力規則 → 日付 → 以降 → 日付を設定
✅ Quick Check: 「部門」列に誰でも何でも入力できる状態だと、SUMIFやピボットテーブルにどんな問題が起きるか?データバリデーションでどう防げるか?
データクリーニングの基本
現実のデータは汚い。分析前のクリーニングが必須。
重複の削除
Excel: データ → 重複の削除 Googleスプレッドシート: データ → データのクリーンアップ → 重複を削除
テキストの標準化
分析前に数式でクリーニング:
=TRIM(A2)—— 余計なスペースを除去=PROPER(A2)—— 大文字小文字を標準化=SUBSTITUTE(A2, " ", " ")—— 全角スペースを半角に変換
日本語データでは特に全角・半角の混在に注意。=ASC(A2)で全角英数字を半角に変換できる。
不整合データの修正
部門名を標準化したい列があります。
ユニークな値は以下です:
[「営業」「えいぎょう」「営業部」「Sales」「営業 」など]
すべてのバリエーションを正しい標準名に変換する
数式を書いてください。TRIM、ASC、IF/SWITCHを
必要に応じて使ってください。
Key Takeaways
- 正しいデータ構造(1行=1レコード、1列=1属性)がすべてのスプレッドシート分析の土台
- セル結合、空白行、複数行ヘッダーは数式、ピボットテーブル、フィルタリングを壊す
- 正式なテーブル(ExcelではCtrl+T)で自動拡張、構造化参照、組み込みフィルタが使える
- 入力時のデータバリデーションが、後工程の分析エラーを未然に防ぐ
- 分析前に必ずクリーニング:TRIMでスペース除去、ASCで全角半角統一、重複削除
- AIにデータ構造を説明すれば、構造上の問題点の特定とクリーニング数式の作成を任せられる
Up Next
レッスン4:検索関数では、VLOOKUP、INDEX-MATCH、XLOOKUPをマスターする。異なるテーブルやシート間のデータを結びつける「接着剤」の役割を果たす関数群だ。
理解度チェック
まず上のクイズを完了してください
レッスン完了!