コンテキストフィルターの使い方 — 独立した集計の基準を作る
導入
「上位10製品を絞り込んだはずなのに、全製品から数えた10件になってしまう」——Tableauで分析をしていると、こうした意図通りにならない絞り込みに遭遇することがあります。コンテキストフィルターを使うと、この問題をすっきり解決できます。
くわしく知ろう
コンテキストフィルターとは、Tableauが最初に処理する特別なフィルターで、後続のすべての計算や絞り込みが参照する「独立した集計の基準」を確立します。通常のフィルターをコンテキストに昇格させると、Tableau は先にそのフィルターを適用した一時テーブルを生成し、それ以降の処理はすべてこの一時テーブルを対象にして行われるようになっています。
コンテキストフィルターが特に効果を発揮するのは、「上位N件フィルター」や「FIXED LOD計算」と組み合わせるケースです。たとえば「特定カテゴリ内で売上上位5製品」を表示したい場合、カテゴリのフィルターを通常フィルターのままにしておくと、上位5件の判定は全カテゴリのデータを基準に行われます。コンテキストフィルターに昇格させることで、カテゴリ内に絞った範囲で正しく上位5件が選ばれます。
もう一つの重要な用途がFIXED LODとの連携です。フィルター処理の順序上、FIXEDはディメンションフィルターよりも前に評価されますが、コンテキストフィルターよりは後に評価されます。したがって、FIXED式にフィルターの条件を反映させたいときは、そのフィルターをコンテキストに昇格させる必要があります。
なお、コンテキストフィルターを多用すると、一時テーブルの再生成が頻繁に起きてパフォーマンスが低下することがあります。必要最小限の絞り込みのみをコンテキストに設定するのが、実務上の定石として知られています。
具体例
「家具カテゴリの中で売上トップ5の製品を表示したい」という場面を考えます。カテゴリフィルターを通常フィルターのままにすると、全製品のランキングから家具が含まれる5件が選ばれてしまいます。コンテキストフィルターに昇格させると、家具カテゴリだけを対象にしたランキングが計算され、意図通りの結果が得られます。
まとめ・試験ポイント
- コンテキストフィルター=後続の全計算が参照する独立した集計基準を確立するフィルター
- フィルター処理順序で最も早く(データソース直後に)評価される
- 上位N件フィルターとの組み合わせで「絞り込んだ範囲内での上位N件」が正しく機能する
- FIXED LODをフィルター条件に従わせたい場合はコンテキストフィルターが必要
- 多用するとパフォーマンス低下を招くため、必要最小限に絞ること
- 試験では「コンテキストフィルターが必要な状況」の判断を問う問題が出る
学習した内容を模擬試験で確認しよう。Tableau Data Analyst模擬試験で実力を測ろう。
Tableau DA模擬試験を見る