Excel のテーブル間にリレーションシップを作成する

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021

VLOOKUP を使用して、あるテーブルから別のテーブルに列を移動したことがありますか? Excel には、テーブル間のリレーションシップを作成できる組み込みのデータ モデルも含まれており、これは VLOOKUP などの検索関数の代わりに使用できます。 2 つのデータ テーブル間に、各テーブル内の一致するデータに基づいてリレーションシップを作成できます。 その後、ソースが異なるテーブルであっても、各テーブルのフィールドを使用してピボットテーブルやその他のレポートを作成できます。 たとえば、顧客の売上データがある場合、 タイム インテリジェンス データを インポートして関連付け、年別および月別の売上パターンを分析したい場合があります。

ブック内のすべてのテーブルが [ピボットテーブル フィールド] の一覧に表示されます。

リレーションシップが最もよく使用されるのは、データ モデル内の複数のテーブルからピボットテーブルを作成する場合です。 これにより、関連するデータを 1 つのテーブルに結合せずに分析できます。

ブックにデータ モデルが含まれている場合は、[データ] タブからテーブルのリレーションシップを管理できます。

リレーショナル データベースから関連テーブルをインポートする場合、Excel は多くの場合、バックグラウンドで構築しているデータ モデルでこれらのリレーションシップを作成できます。 それ以外の場合は、リレーションシップを手動で作成する必要があります。

  1. ブックに少なくとも 2 つ以上のテーブルがあり、各テーブルには別のテーブルの列にマップできる列があることをご確認ください。
  2. データを テーブルとして書式設定するか、外部データを新しいワークシートの テーブルとしてインポート します。
  3. 各テーブルにわかりやすい名前を付ける: [テーブル ツール] で、[デザイン] >[テーブル名] をクリックし>名前を入力します。
  4. それらの 1 つのテーブルの列に、重複しない固有のデータ値があることを確認します。 Excel は、1 つの列に一意の値がある場合にだけ、リレーションシップを作成できます。
    たとえば、顧客の売上をタイム インテリジェンスに関連付けるには、両方のテーブルに同じ形式の日付を含める必要があり (たとえば、2026 年 1 月 1 日)、少なくとも 1 つのテーブル (タイム インテリジェンス) で各日付が列内で 1 回だけ一覧表示されます。
  5. [ データ>リレーションシップ] を選択します。

ブック内にテーブルが 1 つしかない場合は、[リレーションシップ] が淡色表示されます。

  1. リリレーションシップの管理」ボックスで、「新規」を選択します。
  2. [リレーションシップの作成] ダイアログ ボックスで [テーブル] の矢印をクリックし、一覧からテーブルを選びます。 一対多リレーションシップでは、このテーブルは "多" の側に当たります。 顧客とタイム インテリジェンスの例では、どの日もたくさんの売上があり得るので、先に顧客売上テーブルを選びます。
  3. [列 (外部)] で、[関連列 (プライマリ)] に関連するデータを含む列を選びます。 たとえば、両方のテーブルに日付の列がある場合は、ここでその列を選びます。
  4. [関連テーブル] で、先ほど [テーブル] で選んだテーブルに関連する、少なくとも 1 つのデータ列を含むテーブルを選びます。
  5. [関連列 (プライマリ)] で、[] で選んだ列の値と一致する一意の値を含む列を選びます。
  6. [OK] を選択します。

Excel のテーブル間のリレーションシップについて

リレーションシップについての注意事項

  • リレーションシップが存在するかどうかは、異なるテーブルのフィールドを [ピボットテーブルのフィールド] リストにドラッグしたときに確認できます。 リレーションシップを作成するように求められない場合、Excel にはデータの関連付けに必要なリレーションシップ情報が既に存在しています。

  • リレーションシップの作成は VLOOKUP の使用と似ています。Excel があるテーブルの行を別のテーブルの行と相互参照できるように、一致するデータを含む列が必要です。 タイム インテリジェンスの例では、Customer テーブルの日付値もタイム インテリジェンス テーブルに存在する必要があります。

    • Excel のデータ モデルでは、通常、リレーションシップは一対一または一対多です。 多対多リレーションシップには、追加のモデリング (ルックアップ テーブルの使用など) が必要です。 多対多リレーションシップでは、"循環依存関係が検出されました" などの循環依存関係エラーが発生します。このエラーは、多対多の 2 つのテーブル間に直接接続、または間接接続 (各リレーションシップ内では 1 対多であるが、エンド ツー エンドで表示すると多対多のテーブル リレーションシップのチェーン) を作成する場合に発生します。 リレーションシップについては、「データ モデルのテーブル間のリレーションシップ」を参照してください。
  • 検索式とは異なり、リレーションシップはデータを複製しません。 代わりに、テーブルをリンクして、各テーブルのフィールドをピボットテーブルで一緒に使用できるようにします。

  • 2 つの列のデータ タイプは、互換性を持っている必要があります。 詳細については、「データ モデルのデータ型」を参照してください。

  • リレーションシップを作成する他の方法は、特にどの列を使用するべきかわからない場合に、より直感的に作成することもできます。 「 Power Pivot のダイアグラム ビューでリレーションシップを作成する」を参照してください。

"テーブル間のリレーションシップが必要な場合があります"

ピボットテーブルにフィールドを追加すると、ピボットテーブルで選択したフィールドを理解するためにテーブル リレーションシップが必要かどうかが通知されます。

リレーションシップが必要な場合に [作成] ボタンが表示される

Excel では、リレーションシップが必要なタイミングを通知することはできますが、使用するテーブルと列、またはテーブル リレーションシップが可能かどうかすら通知することはできません。 必要な答えを得るには、以下の手順を試してください。

手順 1: リレーションシップで指定するテーブルを決定する

モデルにテーブルが少しか含まれていない場合、どのテーブルを使うべきかは一目瞭然です。 ただし、モデルのサイズが大きい場合は、何らかの策が必要になります。 1 つの方法は、Power Pivot アドインのダイアグラム ビューを使うことです。 ダイアグラム ビューは、データ モデル内のすべてのテーブルを視覚的に表現します。 ダイアグラム ビューを使うと、どのテーブルが、残りのモデルから分離しているかをすばやく判別できます。

分離したテーブルを示すダイアグラム ビュー

ピボットテーブルで使用すると無効なあいまいなリレーションシップが作成される可能性があります。 すべてのテーブルが何らかの形でモデル内の他のテーブルに関連付けられているが、異なるテーブルのフィールドを結合しようとすると、"テーブル間のリレーションシップが必要な場合があります" というメッセージが表示されるとします。 最も可能性の高い原因は、多対多の関係に遭遇したことです。 使いたいテーブルと関連付けられたテーブル リレーションシップの連鎖をたどると、一対多のテーブル リレーションシップがおそらく 2 つ以上見つかります。 すべてのケースに当てはまる簡単な解決策はありませんが、集計列を作成して、使いたい列を 1 つのテーブルに統合してみることをお勧めします。

手順 2: あるテーブルからその次のテーブルへのパスを作成するときに使用できる列を見つける

モデルの残りの部分から切断されているテーブルを特定したら、その列を調べて、モデル内の別の場所にある別の列に一致する値が含まれているかどうかを確認します。

たとえば、地区別の製品売上データを含むモデルがあり、これに人口統計データをインポートして、地区別の売上と人口動向との相関関係を調べるとします。 人口統計データは別のデータ ソースから取り込まれるため、テーブルはモデルとは分離した状態で用意されます。 人口統計データをモデルの残りの部分と統合するには、既に使用しているものに対応する人口統計テーブルのいずれかで列を見つける必要があります。 たとえば、人口統計データが地域別に編成されており、どの地域で売上が発生しているかが売上データでわかる場合、共通の列 (都道府県、郵便番号、地域など) を見つけることで、2 つのデータセットを関連付け、ルックアップを指定できます。

一致する値以外にも、リレーションシップを作成する際の要件がいくつかあります。

  • ルックアップ列のデータ値は固有にする必要があります。 つまり、列に重複を含めることはできません。 データ モデルでは、null 値と空の文字列は、個別のデータ値である空白と同等に扱われます。 つまり、ルックアップ列に複数の null を指定することはできません。
  • ソース列とルックアップ列のデータ型は互換性がとれている必要があります。 データ型の詳細については、「データ モデルのデータ型」を参照してください。

テーブル リレーションシップの詳細については、「データ モデルのテーブル間のリレーションシップ」を参照してください。

ページの先頭へ