【Tableau】 フィルターをパラメータと連動させる方法を分かりやすく解説!

filter_parameter Tableau

Tableauは、データの視覚化に特化したBIツールです。データ分析の経験や知識がなくても、簡単にデータの意味を理解することができます。

Tableauのフィルター機能は、データの表示範囲を絞り込むことができる便利な機能です。しかし、フィルターを固定してしまうと、データの傾向や変化を把握しにくくなることがあります。

そこで、フィルターをパラメータと連動させ、指定したフィルターを動的に適用させる方法があります。これにより、データの表示範囲を自由に変更できるようになり、データの傾向や変化をより簡単に把握することができます。

この方法については以下のTableauの公式ページにもまとめられていますが、最初は理解に苦しむ方が多いのではないでしょうか?

Tableau公式

本記事では、Tableau初心者の方でもわかりやすく、表現を工夫してフィルターをパラメータと連動させる方法を解説します。

今回解説の際に作成するvizは以下のリンクからご確認いただけます。

Tableau_public

フィルターとパラメータの概要

フィルターとは、データの表示範囲を絞り込むことができる機能です。例えば、売上データの月別推移を表示する際に、特定の月のみ表示したい場合にフィルターを使用します。

パラメータとは、ユーザーが入力する値を変数として保存しておく機能です。分かるようで分からないのではないでしょうか?私も最初はそうでした。私は以下のようにイメージしています。

その都度プルダウンなどで選択して値を決められる箱

このようにイメージすれば分かりやすいのではないでしょうか?

例えば、ユーザーに「表示する月を選択してください」という選択肢を表示し、ユーザーが選択した月のみ表示したい場合にパラメータを使用します。この際は何月であるかという選択を行って最終的には1つに選んでパラメータという箱に格納するイメージです。

フィルターをパラメータと連動させる方法を徹底解説!

今回はTableauにデフォルトで入っているサンプルスーパーストアのサンプルデータを用いて説明します。このデータはECサービスの顧客データや販売データです。

今回扱うグラフと想定シチュエーションは以下のようになっています。

あなたはデータアナリストで、クライアントであるECサービスのマネージャーに売上の大きさでフィルターを掛けて商品の売上を分析したいと言われました。また、そのフィルターを掛ける売り上げの大きさは20000以上,15000~20000の二つです。また、マネージャーはTableauに疎いです。

フィルターを掛ける前のグラフは以下のようになっています。

before-filter

こんな時、自分で分析するなら売上というメジャーをフィルターに置いて値段を設定すれば大丈夫だけど、Tableauのこと分からない人が使うならボタン一つでフィルターを掛けられるように作成する必要があるな、、、という思考になるはずです!こんな時にパラメータとフィルターを連動させます。

フィルターをパラメータと連動させるのは、以下の手順イメージです。

  1. パラメータとして変動させたいフィルターたちを計算フィールドで作成する
  2. フィルター名をリストとしてもつパラメータを作成する
  3. 1で作ったフィルターと2で作ったパラメータを紐づける計算フィールドを作成し、フィルターシェルフへ設置
  4. 完成!

パラメータとして変動させたいフィルターたちを計算フィールドで作成する

まずはパラメータで変動させたいフィルターを作成します。

今回は売上(sales)の大きさで判別するフィルターを作成する必要があります。以下のような2つの計算フィールドを作成します。

sale15000
oversale20000

ちなみに左にあるデータタブからメジャーをドラックアンドドロップすることで計算フィールドに反映させることが出来るので便利です!また、sumを使っているのは、フィルターを掛けたい値が商品別に合計を集計した値であるからです。

計算フィールドに以上のように条件式を記載すると、True or Falseの値を返してくれるので、作成した計算フィールド(sale15000 to 20000,oversale20000)をフィルターシェルフに置くと売上の値でフィルターを掛けることが出来ます。

フィルター名をリストとしてもつパラメータを作成する

パラメータを作成します。左のタブの上の方にある▼を押してパラメータの作成を選択します。

その後下画像のように入力します。

make-parameter

この画面では、sale15000 to 20000,oversale20000という二つの値をもつパラメータという箱を作成しているイメージです。

※今回は説明の都合上データ型を文字列にしていますが、本来であれば数値型にした方が処理上の負荷は少ないらしいです。

1で作ったフィルターと2で作ったパラメータを紐づける計算フィールドを作成

実は先ほど作成したパラメータはこの時点ではただの文字列のリストであってTableau上では何の意味も持たせられていないです。(パラメータという箱に文字列を2個入れただけのイメージ)

そこで必要になってくるのが、

パラメータの2つの値の意味をTableauに指定してあげる

以上のような作業です。

パラメータへの意味付けは計算フィールドで行います。

fil_param_sale

case文というものを使います。

英語で「~の場合」という意味があるのでイメージが付きやすいと思いますが、

「Xが10より大きいならover10という名前をX付けて、10より小さいならunder10という名前をXに付けたい」

以上のような「Xというものを場合によって名前を分けたい」という際にcase文を使います。

写真の計算式を日本語に直してみます、

[param_sale]という2つの文字列を持つ箱(パラメータ)の値を場合分けしたい、(case)

sale15000 to 20000 という文字列の時はTableauで作成した計算フィールドsale15000 to 20000を値として返す(when ~ then)

oversale20000 という文字列の時はTableauで作成した計算フィールドoversale20000を値として返す(when ~ then)

終了!(end)

大体のイメージが付けられたのではないでしょうか?

このcase文によってパラメータの値がただの文字列だったのがTableauで作った計算フィールドに変換されたと言うことが出来ます!

では、fil_param_saleという計算フィールドには最終的にはどのようなものを表すのか分かりますか?

結論:計算フィールドであるsale15000 to 20000 または oversale20000 

1でも述べたようにsale15000 to 20000などの計算フィールドはTrue or Falseを返すものでフィルターとして使えるんでしたね。

ということはfil_param_saleをフィルターシェルフに置けば売上にフィルターを掛けることができそうですね、、、

しかし、fil_param_saleという箱にsale15000 to 20000 または oversale20000 のどちらが入るのかはどうやって決まるのでしょうか?

それを決めるのが先ほど作ったparam_saleパラメータということです。

完成!

pre-last-shape

デフォルトではパラメータがsale15000 to 20000を選択する設定にパラメータ選択画面で設定を行っています。ちゃんと、売上が15000~20000の商品のみにフィルターが掛けられていますね

続いて、右上のパラメータの値をoversale20000に変えてみましょう!

last-shape

ちゃんと20000以上の売上の商品のみに絞られました。

完成です!!

まとめ

今回はフィルターをパラメータと連動させる方法を私なりのイメージをもとに解説してみました!

私なりにかみ砕いてイメージをお伝えしたつもりです、参考にしていただけたら幸いです。

他にも、ダッシュボードのシートを動的に切り替える方法などについても解説しています。

【Tableau】 ダッシュボードのシート切り替えを実現する機能がある!?徹底解説します!

解説してほしいものがございましたら、以下のリンクから問い合わせをお願い致します!!

お問い合わせ

コメント

タイトルとURLをコピーしました