データモデルのためのクリーンなテーブルの準備
メニューを表示するにはスワイプしてください
これまでにExcelテーブルを扱った経験があります。フィルターや並べ替え、ピボットテーブルの作成方法もご存知でしょう。それでは、なぜクリーンなデータに特化した章が必要なのでしょうか?
その理由は、データモデルは標準のピボットテーブルよりも厳格だからです。Power Pivotにテーブルを読み込み、リレーションシップを定義すると、元データの構造上の問題がすべてモデルの問題となります。タイトル行があるとテーブルが正しく読み込まれません。データ内の空白行はリレーションシップを混乱させます。テキストとして保存された日付は、時間ベースの計算を完全に壊します。テキスト形式の数値列は合計がゼロになります。
これらの問題は、読み込む前に修正すればすぐに解決できます。しかし、モデル構築後に見つけて修正するのは時間がかかり、非常に面倒です。本章では、データモデリング前に特に重要となるクリーニング手順に絞って解説します。
動画で使用されているワークブックは、タスクで使用するワークブックとは異なります。 レッスン中に講師と一緒に手順を追いたい場合は、開始前に動画下部にある動画用ワークブックをダウンロードしてください。
テーブルがデータモデルに適しているためには、以下のすべての条件を満たしている必要があります:
このリストを暗記する必要はありません。データモデルにテーブルを読み込む前のチェックリストとして活用してください。
Excelの名前付きテーブルへの変換
データがクリーンになったら、最後のステップは範囲を正式なExcelテーブルに変換し、名前を付けることです。これは必須です — Power Pivotは名前付きExcelテーブルのみを扱い、通常の範囲は使用できません。
- クリーンなデータ範囲内の任意のセルをクリック;
- 挿入 → テーブル を選択;
- 先頭行をテーブルの見出しとして使用する にチェックが入っていることを確認し、OK をクリック;
- テーブルデザイン タブの一番左にある テーブル名 フィールドを見つける;
- デフォルト名(Table1、Table2など)を意味のある名前に変更 — 例:Sales, Customers, または Products。
命名規則:
- 可能な限り単語1つで説明的な名前を使用:
Sales(SalesData2025ではなく); - スペースは使用しない。2語必要な場合はパスカルケースを使用:
SalesOrders(Sales Ordersではなく)。 - Table1 や Sheet2 のような汎用的な名前は避ける — Power Pivotのフィールドリストでは意味を持ちません。
名前付きテーブルは新しい行が追加されると自動的に拡張されるため、データを更新しても範囲を調整する必要なくモデルに反映されます。
タスク
提供された乱雑なエクスポートデータを、データモデルに読み込む準備ができた、単一でクリーンな名前付き Excel テーブルに変換。
ステップ 1 — 構造の修正
Messy_Export シートを開き、以下の構造上の問題を修正:
- タイトル行や実際のヘッダー行より上の空白行を削除し、1 行目が列ヘッダー行となるように調整。
- データ内の空白行を検索して削除。素早く見つけるには
Ctrl+G/Fn+F5→ ジャンプ → 空白セル を使用。 - データの一番下にある TOTAL 行を削除。
完了後、シートにはヘッダー行が 1 行、その下に注文ごとのデータが 1 行ずつ並び、データの上にも下にも余分な行がない状態となる。
ステップ 2 — データ型の修正
- Order Date 列を選択し、統一された短い日付形式(
DD/MM/YYYY)を適用。書式設定後も左揃えの値はテキストとして保存されているため、DATEVALUE()関数や 区切り位置(データ → 区切り位置 → 完了) を使って修正。 - Quantity, Unit Price, および Total 列を確認。左揃えの値はテキストとして保存されているため、形式を選択して貼り付け → 1 で乗算 または
VALUE()関数で修正。
完了後、すべての日付は右揃えで統一された書式となり、数値列もすべて右揃えとなる。
ステップ 3 — 名前付き Excel テーブルへの変換
- クリーンなデータ範囲内の任意のセルをクリック。
- 挿入 → テーブル を選択。「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認し、OK をクリック。
- テーブルデザイン タブで、テーブル名をデフォルト(Table1 など)から
Salesに変更。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください