フィルター処理の順序 — なぜLODとフィルターが干渉するのか
導入
LOD計算を使ったのに、フィルターで絞り込んだらなぜか値がおかしくなった——そんな経験はないでしょうか。Tableauにはフィルターが適用される順番が厳密に決まっており、この順序を知ることが正確な分析の出発点になります。
くわしく知ろう
Tableauのフィルター処理は、6段階の順序で適用されます。最初に処理されるのが「データソースフィルター」で、データベースから取り込む行そのものを制限します。次いで「コンテキストフィルター」が働き、後続のすべてのフィルターが参照する独立した集計基準を確立します。
3番目に「固定LODフィルター(FIXED)」が評価されます。FIXEDはビューのディメンションに依存しないため、コンテキストフィルターの影響は受けますが、通常のディメンションフィルターには左右されません。4番目が「通常のディメンションフィルター(標準フィルター)」です。このフィルターはビューに配置されたフィールドを基準に絞り込みを行います。
続いて5番目に「INCLUDE/EXCLUDEのLODフィルター」が処理されます。INCLUDEとEXCLUDEはビューのディメンションを参照するため、4番目までのフィルターの結果を受けた後に評価されます。最後の6番目が「テーブル計算フィルター」で、集計が終わってから結果を絞り込む仕組みになっています。
この順序が特に重要になるのはFIXEDとディメンションフィルターの関係です。FIXEDはディメンションフィルターより前に評価されるため、ディメンションフィルターで特定の地域を除外しても、FIXEDによる値はその除外を反映しないことがあります。コンテキストフィルターを使うとFIXEDをそのコンテキスト内に閉じ込められるため、意図通りの計算が実現します。
具体例
たとえば「各顧客の全期間売上」をFIXEDで計算しているとき、ディメンションフィルターで「2023年のみ」と絞り込んでも、FIXEDの値は全期間を参照したままになります。コンテキストフィルターに昇格させると、FIXEDも2023年の範囲内で計算し直すことができます。
まとめ・試験ポイント
- フィルター処理の順序=データソース → コンテキスト → FIXED → ディメンション → INCLUDE/EXCLUDE → テーブル計算
- FIXEDはディメンションフィルターより前に評価される
- FIXEDをディメンションフィルターで制御したい場合はコンテキストフィルターを使う
- テーブル計算フィルターは集計後に働くため、他の集計結果に影響しない
- 試験では「このフィルター操作でLODの値がなぜ変わらないか」という理由を問う問題が出る
学習した内容を模擬試験で確認しよう。Tableau Data Analyst模擬試験で実力を測ろう。
Tableau DA模擬試験を見る