VLOOKUP を使用して、あるテーブルから別のテーブルに列を取り込んだことはありませんか? Excel には、テーブル間のリレーションシップを作成できる組み込みのデータ モデルも含まれています。これは、VLOOKUP などの参照関数を使用する代わりに使用できます。 各テーブル内の一致するデータに基づいて、2 つのデータ テーブル間にリレーションシップを作成できます。 その後、テーブルが異なるソースの場合でも、各テーブルのフィールドを含むピボットテーブルやその他のレポートを作成できます。 たとえば、顧客の売上データがある場合は、 タイム インテリジェンス データ をインポートして関連付けて、年と月別の売上パターンを分析できます。
ブック内のすべてのテーブルが [ピボットテーブル フィールド] リストに一覧表示されます。
リレーションシップは、データ モデル内の複数のテーブルからピボットテーブルを作成するときに最も一般的に使用されます。 これにより、関連するデータを 1 つのテーブルに結合せずに分析できます。
注
ブックにデータ モデルが含まれている場合は、[データ] タブからテーブルリレーションシップを管理できます。
リレーショナル データベースから関連テーブルをインポートする場合、多くの場合、Excel はバックグラウンドで構築しているデータ モデルでそれらのリレーションシップを作成できます。 それ以外の場合は、手動でリレーションシップを作成する必要があります。
- ブックに少なくとも 2 つ以上のテーブルがあり、各テーブルには別のテーブルの列にマップできる列があることをご確認ください。
- 次のいずれかの操作を行います。 データをテーブルとして書式設定するか、新しいワークシートで 外部データをテーブルとしてインポート します。
- 各テーブルにわかりやすい名前を付ける: [テーブル ツール] で[デザイン>テーブル名]をクリックし>名前を入力します。
- それらの 1 つのテーブルの列に、重複しない固有のデータ値があることを確認します。 Excel は、1 つの列に一意の値がある場合にだけ、リレーションシップを作成できます。
たとえば、顧客の売上をタイム インテリジェンスと関連付けるためには、両方のテーブルに同じ形式の日付 (2026 年 1 月 1 日など) を含める必要があります。また、少なくとも 1 つのテーブル (タイム インテリジェンス) には、列内の各日付が 1 回だけ一覧表示されます。 - [ Data>Relationships] を選択します。
ブック内にテーブルが 1 つしかない場合は、[リレーションシップ] が淡色表示されます。
- [リレーションシップの管理] ボックスで、[新規] を選択します。
- [リレーションシップの作成] ダイアログ ボックスで [テーブル] の矢印をクリックし、一覧からテーブルを選びます。 一対多リレーションシップでは、このテーブルは "多" の側に当たります。 顧客とタイム インテリジェンスの例では、どの日もたくさんの売上があり得るので、先に顧客売上テーブルを選びます。
- [列 (外部)] で、[関連列 (プライマリ)] に関連するデータを含む列を選びます。 たとえば、両方のテーブルに日付の列がある場合は、ここでその列を選びます。
- [関連テーブル] で、先ほど [テーブル] で選んだテーブルに関連する、少なくとも 1 つのデータ列を含むテーブルを選びます。
- [関連列 (プライマリ)] で、[列] で選んだ列の値と一致する一意の値を含む列を選びます。
- [OK] を選択します。
Excel のテーブル間のリレーションシップについて
リレーションシップについての注意事項
異なるテーブルのフィールドを [ピボットテーブル フィールド] リストにドラッグすると、リレーションシップが存在するかどうかを確認できます。 リレーションシップの作成を求められていない場合、Excel にはデータの関連付けに必要なリレーションシップ情報が既に用意されています。
リレーションシップの作成は VLOOKUP の使用と似ています。一致するデータを含む列が必要です。Excel が 1 つのテーブル内の行を別のテーブルの行と相互参照できるようにする必要があります。 タイム インテリジェンスの例では、Customer テーブルには、タイム インテリジェンス テーブルにも存在する日付値が必要です。
- Excel のデータ モデルでは、リレーションシップは通常、1 対 1 または 1 対多です。 多対多リレーションシップでは、追加のモデリング (ルックアップ テーブルの使用など) が必要です。 多対多リレーションシップでは、"循環依存関係が検出されました" などの循環依存関係エラーが発生します。このエラーは、多対多の 2 つのテーブル間に直接接続する場合、または間接接続 (各リレーションシップ内で一対多であるが、エンド ツー エンドで表示される多対多のテーブル リレーションシップのチェーン) を行う場合に発生します。 リレーションシップについては、「データ モデルのテーブル間のリレーションシップ」を参照してください。
参照式とは異なり、リレーションシップはデータを複製しません。 代わりに、各テーブルのフィールドをピボットテーブルで一緒に使用できるようにテーブルをリンクします。
2 つの列のデータ タイプは、互換性を持っている必要があります。 詳細については、「データ モデルのデータ型」を参照してください。
リレーションシップを作成する他の方法は、特に使用する列がわからない場合に、より直感的になる場合があります。 「Power Pivot のダイアグラム ビューでリレーションシップを作成する」を参照してください。
"テーブル間のリレーションシップが必要になる場合があります"
ピボットテーブルにフィールドを追加すると、ピボットテーブルで選択したフィールドを理解するためにテーブルリレーションシップが必要かどうかが通知されます。
Excel では、リレーションシップが必要なタイミングを示すことができますが、使用するテーブルと列、またはテーブルリレーションシップが可能かどうかを判断することはできません。 必要な答えを得るには、以下の手順を試してください。
手順 1: リレーションシップで指定するテーブルを決定する
モデルにテーブルが少しか含まれていない場合、どのテーブルを使うべきかは一目瞭然です。 ただし、モデルのサイズが大きい場合は、何らかの策が必要になります。 1 つの方法は、Power Pivot アドインのダイアグラム ビューを使うことです。 ダイアグラム ビューは、データ モデル内のすべてのテーブルを視覚的に表現します。 ダイアグラム ビューを使うと、どのテーブルが、残りのモデルから分離しているかをすばやく判別できます。
注
ピボットテーブルで使用すると無効なあいまいなリレーションシップを作成できます。 すべてのテーブルがモデル内の他のテーブルと何らかの形で関連付けられているとしますが、異なるテーブルのフィールドを結合しようとすると、"テーブル間のリレーションシップが必要になる場合があります" というメッセージが表示されます。 最も可能性の高い原因は、多対多のリレーションシップが発生したことです。 使いたいテーブルと関連付けられたテーブル リレーションシップの連鎖をたどると、一対多のテーブル リレーションシップがおそらく 2 つ以上見つかります。 すべてのケースに当てはまる簡単な解決策はありませんが、集計列を作成して、使いたい列を 1 つのテーブルに統合してみることをお勧めします。
手順 2: あるテーブルからその次のテーブルへのパスを作成するときに使用できる列を見つける
モデルの残りの部分から切断されているテーブルを特定したら、その列を確認して、モデル内の別の列に一致する値が含まれているかどうかを判断します。
たとえば、地区別の製品売上データを含むモデルがあり、これに人口統計データをインポートして、地区別の売上と人口動向との相関関係を調べるとします。 人口統計データは別のデータ ソースから取り込まれるため、テーブルはモデルとは分離した状態で用意されます。 人口統計データをモデルの残りの部分と統合するには、既に使用しているテーブルに対応する人口統計テーブルの 1 つに列を見つける必要があります。 たとえば、人口統計データが地域別に編成されており、どの地域で売上が発生しているかが売上データでわかる場合、共通の列 (都道府県、郵便番号、地域など) を見つけることで、2 つのデータセットを関連付け、ルックアップを指定できます。
一致する値以外にも、リレーションシップを作成する際の要件がいくつかあります。
- ルックアップ列のデータ値は固有にする必要があります。 つまり、列に重複を含めることはできません。 データ モデルでは、null 値と空の文字列は、個別のデータ値である空白と同等に扱われます。 つまり、ルックアップ列に複数の null を含めることはできません。
- ソース列とルックアップ列のデータ型は互換性がとれている必要があります。 データ型の詳細については、「データ モデルのデータ型」を参照してください。
テーブル リレーションシップの詳細については、「データ モデルのテーブル間のリレーションシップ」を参照してください。