Tableau

ダイナミックハイド、なにそれおいしいの?

ダイナミックハイドと呼ばれるTableauのTipsをご存じでしょうか。
名前だけ聞いても使い方自体は検討もつきませんが(実際私がそうだった)
Tableauユーザーにとって知っておくと便利なTips、それがダイナミックハイドです。


よって、タイトルの「ダイナミックハイド、なにそれおいしいの?」に対する答えは

知っておくとおいしいよ(・ω<)」が個人的な見解です。笑

どういうときに使うの?

次のようなケースを考えてみましょう。(データ:サンプルスーパーストア)
地域を売上の大きい順に並べると、ランク順に関西(1)→関東(2)→中部(3)→…→北海道(8)
と以下のように並びます。


地域でフィルターをかけると、選択された地域のみで再度1位から3位が振り分けられています。
(全地域の中では、九州は4位、中国地方は5位、四国は7位だった。)

今回はフィルターをかけてもランクが変わらない以下のようなVizにしたいとしましょう。

この時に使えるのがダイナミックハイドです!

どうするの?

①ダイナミックハイドの計算フィールドを作成

LOOKUP(MIN([地域]),0)

※MIN関数は、MAX関数でもATTR関数でもOK
※MIN関数内に、フィルターしたいディメンションを入れる

②ディメンションフィルターとダイナミックハイドの計算フィールドを入れ替える

以上。これだけです!

ダイナミックハイドって結局なに?

(もう少し詳しく知りたい方は、どうぞ。)
ダイナミックハイドの計算フィールドにより何が起きたのかというと、
ディメンションが表計算で表現されました。

なぜ、表計算にする必要があったのか。
これはTableauで避けては通れない、クエリパイプラインが関係しています。

[画像引用元] Tableau公式:Tableauの操作の順序

今回のカギは、[地域]のディメンションフィルターとランクの表計算です。
上の図のクエリパイプラインを参照すると、表計算(Table Calcs)は
ディメンションフィルター(Dimension Filters)よりも後に処理されます。つまり、、
ケースに当てはめると、地域でフィルターをかけてから、そのうえでランクが振り分けられるため
冒頭のような状態になってしまったわけです。

ではどうすればよいのか。
ランクを振り分けてから、地域フィルターをかけたい!と思うはずです。
再度クエリパイプラインを見ると、表計算の後に処理されるのは、、、表計算フィルター!!

ディメンションフィルターを表計算フィルターにしたかった理由はここでした。

 

Madoka
平日は頭を動かし、休日は身体を動かす、Snow Manが好きな自由人。ダンスとバク転を特訓中。