概要
エクセルでデータを管理することは多いと思います。
その状態では、データを入力・使用するときの作業の手間が増えてしまいます。
- 情報のまとまりごとに、 テーブルを分割 する。
- 分割したテーブルを連結して、使い勝手の良いテーブルを作成する。
これは VBAなしで、エクセルの標準搭載機能のみ で実現できます。
本記事では、
- 1つのテーブルにデータを詰め込んだときに何が問題なのか。
- どのような解決策があるか。
- どうやってエクセルで実装するのか。
について説明します。
エクセルのバージョン
本記事は、エクセル2024を基に作成しています。
環境によっては、UIなどの細かな点が異なる可能性があります。
課題:1テーブルに詰め込むと管理しにくい
管理しにくい例
問題点
解決策
情報量の多いデータは、1つのテーブルにすべてを詰め込まず、
テーブルの分割と結合について、詳細を以降で述べます。
手順1. 情報のまとまりごとにテーブルを分割する
テーブルのフィールド(列)の中で、
分割後のテーブルは、基本的に以下のいずれかのタイプになります。
タイプM. 基礎情報テーブル
基礎情報をまとめたテーブルで、
情報を書き換えたときの変更履歴を記録しておきたい場合は、
タイプT. 記録情報テーブル
日々発生するイベントを記録するテーブルで、
手順2. 連結して使い勝手の良いテーブルを作成する
分割したテーブルは、
エクセルでの実装方法
エクセルでVBAを使わず、上記を実装することができます。
使用するエクセル機能
- テーブル :基礎情報テーブルと記録情報テーブルで個別にデータを格納
- リレーションシップ :複数のテーブルデータを結合
- ピボットテーブル :結合したデータを出力
実装手順
1. テーブルを複数作成する
基礎情報テーブルと記録情報テーブルの2種類のテーブルを作成します。
それぞれのテーブル名は、わかりやすいものに変更しておくのがオススメです※1。
※1 テーブル名の先頭には、わかりやすく M_(マスターテーブル)や T_(トランザクションテーブル)のようにテーブルタイプをつけることも多い。
基礎情報テーブル では、
参照に使う文字列・値を格納する列(= 主キー )が必須です。
記録情報テーブル では、
基本的に「記入日(時)」の列が入ります。
※2 連番入力で、=A2+1や=ROW()-ROW(A$2)のような位置関係に依存する数式を使用すると、
2. 異なるテーブル間でフィールドの紐づけをする
記録情報テーブルから、基礎情報テーブルの情報を参照するために、
のウィンドウ画面「リレーションシップの作成」から設定できます ※3。
設定画面では以下のように選択し、OKを押します。
- テーブル: 記録情報テーブル
- 列(外部): 記録情報テーブルの中で、基礎情報テーブルの主キーを参照している列
- 関連テーブル: 基礎情報テーブル
- 関連列: 基礎情報テーブルの主キー
リレーションシップの管理画面で、設定ができていることを確認し、閉じる ボタンを押します。
3. ピボットテーブルで出力する
2でリレーションシップの設定が完了すると、
ピポットテーブルの作成手順は、
挿入 > ピボットテーブル > データモデルから を押し、
作成後は、見やすいテーブルになるように設定します。
ピボットテーブルのフィールドでは、
テーブルを単純に結合するとき
- 行: (下記の順に追加)
- 記録情報テーブルの記入日
- 記録情報テーブルの重要項目
- 登録情報テーブルの重要項目
- 値: 登録情報テーブルで「数値」を記入している列(「金額」や「個数」など)
- → 集計に使用する計算の種類: 合計
日々の増減を集計するとき
- 行: 記録情報テーブルの記入日
- 列: 登録情報テーブルの代表的項目(「名称」「製品名」など)
- 値: 登録情報テーブルで「数値」を記入している列(「金額」や「個数」など)
- → 集計に使用する計算の種類: 合計
エクセルで実装後の使い方
上記で作成したエクセルファイルは、以下のようにしてデータの追加、編集、閲覧ができます。
データの追加、編集
ピボットテーブルは閲覧用で、
- 元テーブルのデータ追加・データ編集
- データ > すべて更新ボタンを押す
- ピボットテーブルが更新される
元のデータの編集は、主キーで検索すると楽
ピボットテーブルを見ているときに、データを修正したくなることがあると思います。
元のデータテーブルを見て、すぐに修正箇所が見つかればよいですが、
データ数が多いと見つけづらいこともあります。
そのときは、主キー(または重複のない列)で検索するのがオススメです。具体的な手順は
- ピボットテーブルの集計値をダブルクリック → ドリルダウンで詳細を表示
- 編集したい行の主キーの値をコピー
- 元のデータテーブルの主キー列で、2の値を検索(Ctrl + f)
データの閲覧・集計
ピボットテーブルの機能を使うと、
フィルタリング、並び替え
ピボットテーブルのヘッダーセルにある ▼ ボタンを押すと、
表示項目の追加・削除・並び替え・集計値の変更
ピボットテーブルのフィールド欄の項目を操作することで、
- 追加: 上部にあるテーブルのフィールド名を、下部にある列/行/値にドラッグ&ドロップ。
- 削除: 下部にある列/行/値から、ピボットテーブルのフィールド外へ項目をドラッグ&ドロップ。
- 並び替え: 下部にある列/行/値の中の項目をドラッグで並び替える。
- 集計値の変更: 下部にある値の項目をクリック > 値フィールドの設定 > 集計方法タブで目的の計算方法を選択 > OK。
集計に使用されたデータの詳細表示
ピボットテーブルのフィールドの値に入れた項目は、
まとめ
フィールド(列)数、情報量が多いデータを1つのテーブルに詰め込むと
この問題は、
次のステップ:複数ファイル構成との比較
本記事では、元データや閲覧用テーブル(ピボットテーブル)が
このタイプのメリットは、
- ✅ 影響範囲がわかりやすい(1ファイル内に限定)。
一方で、次のようなデメリットがあります。
- ❌ データ数が増えると遅くなる 。 操作性が悪くなる 。 管理しづらくなる 。
データ数が膨大(数十万行以上)になる場合や、シート数が増えすぎて見づらい場合は、