
Tableau 8つのハードルを越える⑮「クエリパイプライン その4 コンテキストフィルター前編(セット、コンディショナルフィルター、Top Nフィルター解説)」

前号に続き「クエリパイプライン」の解説となります。
前号は、こちらです。
今回は「コンテキストフィルター前編(セット、コンディショナルフィルター、Top Nフィルター解説)」です。長い題名ですいません。
(Tableau Desktop Version 2019.1、およびそのサンプルスーパーストアデータを使用しています。)
コンテキストフィルター(Context Filters)は、下図、クエリパイプラインの図で赤丸の部分にあります。「Context」という単語には、「状況、環境」といった和訳があります。コンテキストフィルターは、これからワークシートでデータを扱う上で前提となる「状況、環境」を決めるものと考えると理解しやすくなります。そのような事を意識しながら、読んで頂けると幸いです。

このコンテキストフィルターの説明をする前に、
上図、青四角の、セット(Sets)、コンディショナルフィルター(conditional filters)、Top Nフィルター(top N)について簡単に説明します。
「セット」というのは、「データをある条件で分ける」というものです。
例えば、
・サブカテゴリを、売上上位5位と、それ以外
・サブカテゴリを、合計利益がプラスのものと、それ以外のもの
などです。
上記の、サブカテゴリ売上上位5位の「セット」を設定する方法は、下図のようにサブカテゴリを右クリック

「作成」→「セット」と進み、

このように設定します。これで、サブカテゴリの中で売上上位5位のものが、セットの中のものとして「In」、それ以外のものが「Out」に区分されます。
試しに一つ、Vizを作ってみましょう。
今、列に「合計(売上)」、行に先ほど作ったセット「サブカテゴリ上位5位」と「サブカテゴリ」を置いてみました。

サブカテゴリの中で売上上位5位に入っているものが「In」、それ以外のものが「Out」となっているのが分かります。
また、同様に
下図のように条件を指定すると、「サブカテゴリのうち、合計利益が正(0含む)のものと、負、つまり赤字のものに分ける」、というセットになります。

また、Vizを作ってみましょう。
「合計(売上)」を列に、行にセット「サブカテゴリ 利益が黒字」と「サブカテゴリ」を置いて、合計(利益)で色分けしました。

どうやら、テーブルだけが「Out」つまり合計利益が負、他は「In」つまり合計利益は正のようです。
さて、この「セット」、ポイントは設定した条件に当てはまり「In」となったもの、条件に当てはまらず「Out」となったもの、両方ともVizに表示されている事です。
どちらかのデータに限定しているのではなく、データを区分けして両方を表示させています。
つづいて説明する「コンディショナルフィルター」、「Top Nフィルター」は、設定方法はセットと非常に似ているのですが、条件に合致したものだけを保持し、合致しなかった場合は除外してしまう。そのようなフィルターです。
例として、サブカテゴリ売上上位5位に限定するTop Nフィルターの設定方法を見てみましょう。
サブカテゴリをフィルターにドラッグ&ドロップします。

表示された設定画面で、

この設定で、サブカテゴリの売上上位5位だけを保持し、他は除外する
というフィルターになります。
もう一つの例として、
サブカテゴリの中で合計利益が正のもののみを保持し、負のものは除外というコンディショナルフィルターを設定してみましょう。先ほどと同様に、サブカテゴリをフィルターにドラッグ&ドロップし、

こちらで設定可能です。
セットと、コンディショナルフィルター、Top Nフィルターの設定方法はとても似ていますが、整理すると
・セットは条件に合うもの、合わないもの、に区分するが、両方のデータを利用してVizを表示
・コンディショナルフィルター、Top Nフィルターは、条件にあうもののみ保持しVizに表示、そうでないものは除外している
という違いがあります。
この違いを模式図にすると、

このようなイメージといえます。
この、セット、フィルター、もっともっと様々な設定方法もあります。いろいろ設定画面を触りながら試してみて下さい。
*補足
蛇足ですが、もしかしたらこれまでセットを使った事がある方で「あれ、グループを作るのと似ている気がする。」と感じた方がいらっしゃるかもしれません。
そこで、グループとセットの違いも整理したいと思います。
グループは、ディメンションの要素を指定して、データをグループ分けします。
例えばサブカテゴリの、紙、封筒、クリップ、ラベル、文房具、バインダーをまとめて「文具類」などです。
このグループの設定内容は、元データが更新されても変わる事はありません。
一方、セットはグループのように、ディメンションの要素を指定して区分けすることも可能ですが、売上上位何位や、合計利益正負など、データを利用した条件で区分けする事が可能です。
例えば、サブカテゴリに対しある条件でセットを作成している場合、元データが更新され条件にあてはまるサブカテゴリが変化した場合には、セットのIn/Outに含まれるサブカテゴリも変化します。(このことを「動的に変化する」と表現したりします。)
なお、セットはデータをIn/Outの2つに区分けします。(応用として、複合セットというものを利用すると、もう少し幅が広がりますが、今回は説明割愛させて下さい。)
グループは2つに限らず、幾つにもグループ分け出来ます。
次号、ここまで紹介してきたセットとフィルターの中から、サブカテゴリ売上上位5位だけを表示させるフィルター「Top Nフィルター」を用いながら、コンテキストフィルターの説明をしていきたいと思っています。
ご精読ありがとうございます。
コンテキストフィルター後編は下記になります。
*連載記事すべてへのリンクは、こちらのマガジンにまとめています。
By ritz_Tableau
2020-2023 Tableau Zen Master | 2019-2021,2023 Tableau Public Ambassador |2021 certified as Tableau Certified Professional | DATA Saber
X(Twitter) : @ritz_Tableau
Tableau Public : https://public.tableau.com/profile/satoshi.ganeko#!/
*記事の中に不正確な点などありましたら、是非、X(Twitter) Direct Messageでお知らせ下さい。よろしくお願いします。m(__)m

おことわり
当記事のコンテンツについて、商用利用でない場合は許可なく転載して頂いて構いません。(ハードル画像および他のサイトから引用している画像は除く)
転載の際は、当記事へのリンクを掲載し転載であることを明記してください。商用利用の場合は許可なく転載しないで下さい。
当記事のコンテンツについて、可能な限り正確な情報を掲載するよう努めていますが、誤情報が含まれたり、情報が古くなっている可能性があります。当記事に掲載された内容、および、当記事からリンクやバナーによって移動したサイトに掲載された内容によって生じた、損害等の一切の責任を負いかねますのでご了承ください。よろしくお願いします。