見出し画像

Tableauを操作しながらクエリパイプラインを復習してみる➁

こちらの記事のつづきで
クエリパイプラインに出てくるフィルターについて、それぞれTableauを操作してみることでクエリパイプラインを理解したいと思います。


1.はじめに

もう一度、公式サイトの図に、自身で注釈を加えてたクエリパイプラインの図を載せておきたいと思います。

参考:Tableauの操作の順序

今回はワークブック内でのフィルターとなるコンテキストフィルター以降についていくつかピックアップして見ていきたいと思います。

なお、データソースはTableauの学習でおなじみ、サンプルスーパーストアを利用しています。(ですので顧客名もサンプルデータ上の名称です)

2.コンテキストフィルターとディメンションフィルター

1)コンテキストフィルター

コンテキストフィルターは、他のメジャーフィルターやディメンションよりも優先して処理される、つまりワークシート内で一番最初に処理されるフィルターです。

他のフィルターより優先されるだけでなく、LOD計算についても、コンテキストフィルターを通過したデータのみが対象となります。

データソースからは除外できないがワークブック内ではこの条件は「絶対」という場合には便利そうです。

2)実際にTableauで試してみる

では、実際にコンテキストフィルターとディメンションフィルターの処理順序の差をTableauを操作してみてみたいと思います。

まず、何も考えずにあるひとつの市町村でフィルターをかけ、顧客別の売上グラフを出し、売上高の降順で並べてみます。

ここにさらに、売上上位15名の顧客に絞りたく、以下の条件で顧客フィルターを追加します。

結果がこちらです。
先ほどのグラフの上位者とこちらのグラフでは顧客が変わっていることが分かります。

先ほど4位にいた芦田さんなどがいなくなってます

これは「売上トップ10」がいわき市における顧客別売上のみを対象としているのではなく顧客ごとの総売上でトップ10を決めているからです。

売上4位に食い込んだ東原さんはいろんな自治体にいらっしゃるようです
(サンプルデータならではですが…)

クエリパイプライン通り、上位N位の計算はディメンションフィルターよりも優先されているのが分かりました。

では「市区町村」でのフィルターが上位N位の計算よりも優先されるようにコンテキストフィルターに入れてみます。

最初に「市区町村(いわき市)」でフィルターした時のトップ10と同じ顧客になりました。

コンテキストフィルターに変更するとフィルターがグレーになります
【参考】元のいわき市の顧客売上別グラフ


3.メジャーフィルターと表計算フィルター

1)メジャーフィルター

まずメジャーフィルターはメジャーの集計(合計、平均、中央値、カウントなど)結果に対するフィルターです。

なので
「売上高がxx円以上」であったり「購入回数がX回からY回の間」というような条件を指定できます。

2)表計算フィルター

そしてこのメジャーの集計結果に対して表計算を追加することができます。
この表計算結果に対するフィルターが「表計算フィルター」です

表計算の追加は「簡易表計算」または「表計算を追加」から行います

なので表計算フィルターとしては「累計X円以上」や「利益ランクY位以内」といったフィルターをすることが可能です。

3)実際にTableauで試してみる

先ほどの「いわき市における売上トップ10」のデータを使ってさらにフィルターをかけます。

今回は以下の条件でフィルターをかけたいと思います
・メジャーフィルター:数量が8以上
・表計算フィルター:利益ランクが5位以内

最初に確認用として、先ほどの15名について利益ランクのグラフを並べたものを2種類貼っておきます。これをベースに、動きを見ていきたいと思います。なお、数量8以上の顧客を青で、それ以外の顧客を赤で表しています。

ではまず、メジャーフィルター「数量8以上」の条件だけを入れます。

※グラフの右側の数字は利益ランキングです

もとのグラフの15人からから数量が8以上の顧客のみが抜きだされます。

次に、表計算フィルター「利益ランクが5位以内」のみを入れます。

利益ランク5位以内の顧客のみが抜き出されており、数量8未満の顧客も含まれています。

最後に、ここに先ほどのメジャーフィルター「数量8以上」の条件を追加し、両方のフィルターを入れてみます。

「数量8個以上の顧客のうち利益ランクが5位以内の顧客」が抜き出されています。(=「数量」のフィルターが先に適用されている)

つまり、数量によってフィルターされた後の状態に対して表計算が行われている(メジャーフィルター>表計算>表計算フィルターの順で処理されている)ことが分かります。

4.まとめ

このnoteに取り組むまでは、クエリパイプラインを「わかったようなわかっていないような…」と思っていましたが、実際にTableauを使って操作してみて、これまでかなりぼんやりした理解だった(=きちんと理解しきれていなかった)と実感しました。

フィルターを使う場合に限らず、どういった計算順序でTableau内で処理が行われているのかを理解しないまま取り組んでいると「フィルターを入れたら出てくるデータが変わった!」「思った動きをしない!」などと困ることが出てくる気がするので、きちんと理解することはとても重要だと感じています。

今回試していないLOD計算の計算位置などについてもきちんと理解し、今後のViz作成の際には操作順序を意識、そしてフィルターもより適切に活用していきたいと思います。

お読みいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?