ピボットテーブルは、従来、OLAP キューブや、テーブル間に豊富な接続があるその他の複雑なデータ ソースを使用して構築されてきました。 ただし、Excel では、複数のテーブルを自由にインポートし、テーブル間に独自の接続を作成できます。 この柔軟性は強力ですが、関連していないデータをまとめやすく、奇妙な結果につながることにもなります。
このようなピボットテーブルを作成したことがありますか? 地域別に購入の内訳を作成する予定だったので、[購入金額] フィールドを [値 ] 領域にドロップし、[販売地域] フィールドを [ 列ラベル] 領域にドロップしました。 しかし、結果は間違っています。
解決するにはどうすればよいでしょうか。
問題は、ピボットテーブルに追加したフィールドが同じブック内にあるとしても、各列を含むテーブルが関連していないことです。 たとえば、各販売地域をリストするテーブルと、すべての地域の購入をリストする別のテーブルがあるとします。 ピボットテーブルを作成して正しい結果を得るには、2 つのテーブル間のリレーションシップを作成する必要があります。
リレーションシップを作成すると、ピボットテーブルは購入テーブルのデータと地域の一覧を正しく結合し、結果は次のようになります。
Excel には、このような関係の問題を自動的に検出して修正するために Microsoft Research (MSR) によって開発されたテクノロジが含まれています。
自動検出の使用
自動検出では、ピボットテーブルを含むブックに追加した新しいフィールドをチェックします。 新しいフィールドがピボットテーブルの列ヘッダーと行ヘッダーに関連していない場合は、ピボットテーブル上部の通知領域に、リレーションシップが必要であることを知らせるメッセージが表示されます。 また、Excel は新しいデータを分析して、潜在的なリレーションシップを見つけます。
引き続きメッセージを無視してピボットテーブルを操作できます。ただし、[ 作成] をクリックすると、アルゴリズムが動作し、データが分析されます。 新しいデータの値、ピボットテーブルのサイズと複雑さ、既に作成したリレーションシップによっては、この処理に数分かかることがあります。
このプロセスは、次の 2 つのフェーズで構成されます。
- リレーションシップの検出。 分析が完了すると、推奨されるリレーションシップの一覧を確認できます。 キャンセルしない場合、Excel は自動的にリレーションシップを作成する次の手順に進みます。
- リレーションシップの作成。 リレーションシップが適用されると、確認ダイアログが表示され、[ 詳細] リンクをクリックすると、作成されたリレーションシップの一覧が表示されます。
検出処理を取り消すことができますが、作成処理を取り消すことはできません。
MSR アルゴリズムは、モデル内のテーブルを接続するために、"可能な限り最良の" リレーションシップのセットを検索します。 アルゴリズムは、列名、列のデータ型、列内の値、およびピボットテーブル内の列を考慮して、新しいデータに対して考えられるすべてのリレーションシップを検出します。
次に、Excel は、内部ヒューリスティックによって決定された最も高い "品質" スコアを持つリレーションシップを選択します。 詳細については、「 リレーションシップの概要 」および 「リレーションシップのトラブルシューティング」を参照してください。
自動検出で正しい結果が得られない場合は、リレーションシップを編集、削除、または手動で新規作成できます。 詳細については、「2 つのテーブル間のリレーションシップの作成」または「ダイアグラム ビューでのリレーションシップの作成」を参照してください
ピボット テーブルの空白行 (メンバー不明)
ピボットテーブルは関連するデータ テーブルをまとめるため、キーまたは一致する値で関連付けることができないデータがテーブルに含まれている場合は、何らかの方法でデータを処理する必要があります。 多次元データベースで、一致しないデータを処理する方法は、値が一致しないすべての行を Unknown メンバーに割り当てることです。 ピボットテーブルでは、不明なメンバーは空白の見出しとして表示されます。
たとえば、売上を店舗別にグループ化するはずのピボット テーブルを作成していて、売上テーブルのレコードの一部に店舗名が掲載されていない場合、有効な店舗名がないすべてのレコードがグループ化されます。
行が空白になった場合、2 つの選択肢があります。 複数のテーブル間にリレーションシップのチェーンを作成することによって機能するテーブル リレーションシップを定義するか、空白行が発生する原因となっているフィールドをピボットテーブルから削除することができます。