レッスン 3 15分

データ整理とテーブル設計

フラットテーブル、データバリデーション、クリーニングの技法で分析に耐えるデータ基盤を構築する。

誰にも使えなかったスプレッドシート

その売上レポートは、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をマスターする。異なるテーブルやシート間のデータを結びつける「接着剤」の役割を果たす関数群だ。

理解度チェック

1. データを「フラットテーブル」形式にすべき理由は?

2. データバリデーション(入力規則)とは何か?

すべての問題に答えてから確認できます

まず上のクイズを完了してください

関連スキル