ピボットテーブルでのリレーションシップの操作

適用先
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

ピボットテーブルは、従来、OLAP キューブや、テーブル間に豊富な接続があるその他の複雑なデータ ソースを使用して構築されてきました。 ただし、Excel では、複数のテーブルを自由にインポートし、テーブル間に独自の接続を作成できます。 この柔軟性は強力ですが、関連していないデータをまとめやすく、奇妙な結果につながることにもなります。

このようなピボットテーブルを作成したことがありますか? 地域別に購入の内訳を作成する予定だったので、[購入金額] フィールドを [値 ] 領域にドロップし、[販売地域] フィールドを [ 列ラベル] 領域にドロップしました。 しかし、結果は間違っています。

ピボットテーブルの例

解決するにはどうすればよいでしょうか。

問題は、ピボットテーブルに追加したフィールドが同じブック内にあるとしても、各列を含むテーブルが関連していないことです。 たとえば、各販売地域をリストするテーブルと、すべての地域の購入をリストする別のテーブルがあるとします。 ピボットテーブルを作成して正しい結果を得るには、2 つのテーブル間のリレーションシップを作成する必要があります。

リレーションシップを作成すると、ピボットテーブルは購入テーブルのデータと地域の一覧を正しく結合し、結果は次のようになります。

ピボットテーブルの例

Excel には、このような関係の問題を自動的に検出して修正するために Microsoft Research (MSR) によって開発されたテクノロジが含まれています。

ページの先頭へ

自動検出の使用

自動検出では、ピボットテーブルを含むブックに追加した新しいフィールドをチェックします。 新しいフィールドがピボットテーブルの列ヘッダーと行ヘッダーに関連していない場合は、ピボットテーブル上部の通知領域に、リレーションシップが必要であることを知らせるメッセージが表示されます。 また、Excel は新しいデータを分析して、潜在的なリレーションシップを見つけます。

引き続きメッセージを無視してピボットテーブルを操作できます。ただし、[ 作成] をクリックすると、アルゴリズムが動作し、データが分析されます。 新しいデータの値、ピボットテーブルのサイズと複雑さ、既に作成したリレーションシップによっては、この処理に数分かかることがあります。

このプロセスは、次の 2 つのフェーズで構成されます。

  • リレーションシップの検出。 分析が完了すると、推奨されるリレーションシップの一覧を確認できます。 キャンセルしない場合、Excel は自動的にリレーションシップを作成する次の手順に進みます。
  • リレーションシップの作成。 リレーションシップが適用されると、確認ダイアログが表示され、[ 詳細] リンクをクリックすると、作成されたリレーションシップの一覧が表示されます。

検出処理を取り消すことができますが、作成処理を取り消すことはできません。

MSR アルゴリズムは、モデル内のテーブルを接続するために、"可能な限り最良の" リレーションシップのセットを検索します。 アルゴリズムは、列名、列のデータ型、列内の値、およびピボットテーブル内の列を考慮して、新しいデータに対して考えられるすべてのリレーションシップを検出します。

次に、Excel は、内部ヒューリスティックによって決定された最も高い "品質" スコアを持つリレーションシップを選択します。 詳細については、「 リレーションシップの概要 」および 「リレーションシップのトラブルシューティング」を参照してください。

自動検出で正しい結果が得られない場合は、リレーションシップを編集、削除、または手動で新規作成できます。 詳細については、「2 つのテーブル間のリレーションシップの作成」または「ダイアグラム ビューでのリレーションシップの作成」を参照してください

ページの先頭へ

ピボット テーブルの空白行 (メンバー不明)

ピボットテーブルは関連するデータ テーブルをまとめるため、キーまたは一致する値で関連付けることができないデータがテーブルに含まれている場合は、何らかの方法でデータを処理する必要があります。 多次元データベースで、一致しないデータを処理する方法は、値が一致しないすべての行を Unknown メンバーに割り当てることです。 ピボットテーブルでは、不明なメンバーは空白の見出しとして表示されます。

たとえば、売上を店舗別にグループ化するはずのピボット テーブルを作成していて、売上テーブルのレコードの一部に店舗名が掲載されていない場合、有効な店舗名がないすべてのレコードがグループ化されます。

行が空白になった場合、2 つの選択肢があります。 複数のテーブル間にリレーションシップのチェーンを作成することによって機能するテーブル リレーションシップを定義するか、空白行が発生する原因となっているフィールドをピボットテーブルから削除することができます。

ページの先頭へ