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