2019年1月26日
最終更新: 2019年3月30日
今回のテーマは、あるディメンションの複数アイテムを、Set Actionを用いて選択できるようにすることです。
以下のViz作成を通して解説します。
Lindseyの以下のブログを参考にしました。
http://www.lindseypoulter.com/2018/12/04/select-multiple-items-using-set-action-menus/
使用したワークブックは以下からダウンロードできます。使用データはSample Super Storeです。
https://public.tableau.com/profile/yoshitaka6076#!/vizhome/SetActions-SelectingMultipleItems/Dashboard2
【モチベーション】
今回のテーマについて「別にCtrl + Click (windows)でいいじゃないか」と思われる方、正解です。
しかしながら、もしアイテム数がとても多い場合(スクロールバーをけっこう引っ張らないといけない場合)には、ちょっと選択が大変かなと思います。
また、Set Actionの方がVizの作り方に幅が出ます。モチベーションとしてはこのあたりでしょうか。
【作り方】
まず初めに、下記の計算フィールドを用意します。
Brand
TRIM( SPLIT( [Product Name], " ", 1 ) )
要はProduct Nameからブランド名を抜き出して、それでデータをグルーピングしたいということです。
一方で明らかにブランド名じゃない結果も帰ってきますが、そのデータは除外して頂ければ幸いです。
次にBrandでセットを作成します。一旦はHonのみ選択します。
そして下記の計算フィールドを作成します。
Measure
Sales
RANK
RANK(SUM(Measure))
Selected Dot
IF [Brand Set 1] THEN "●" ELSE "○" END
そして下記のようにワークシートにそれぞれ配置して下さい。
次にワークシートのSet Actionを以下のように設定します。
これで、ワークシート内のドットをクリックすると、そのBrandをセットに含めるかどうかのメニューが出てきます。このあたりの操作は特に変哲はないですね。
ここまでが今回の大筋です。ここから複数アイテムを選択できるようにしていきます。
初めに、Brandでさらにセットを2つ作成します。2つ目のセットにはGlobal、3つ目のセットにはCanonを選択します。
次に、Selected Dotの中身をアップデートします。
Selected Dot
IF [Brand Set 1] OR [Brand Set 2] OR [Brand Set 3]
THEN
"●
Click on circle.
Then select which slot to add the selected manufacturer to"
ELSE
"○
Click on circle.
Then select which slot to add the selected manufacturer to"
END
ここで文字列を足しているのはオマケのようなもので、Set Action選択時のメニュー画面をわかりやすくしよう、という程度です。
文字列の改行については以下がReferenceです。
https://kb.tableau.com/articles/howto/adding-a-line-break-in-a-calculated-field
ここでTipsなのですが、Tableauの行/列シェルフの文字って
1.Vertical AlignmentをTopにして
2.適当な文字サイズと行/列ヘッダーの幅では
文字列の1行目だけを表示するようにできるのですね。裏技感がたっぷりですが。
次に、下記の計算フィールドを作成します。
In Set
[Brand Set 1] OR [Brand Set 2] OR [Brand Set 3]
Slot
[Brand]
+
"
"
+
IF [Brand Set 1] THEN "SLOT 1"
ELSEIF [Brand Set 2] THEN "SLOT 2"
ELSEIF [Brand Set 3] THEN "SLOT 3"
END
上記を用いた以下のワークシートを用意します。
(ところで僕のTableau Publicは英語設定にしているのに、True/Falseは日本語になるんですね)
最後に作成したワークシートをダッシュボードにまとめて、ダッシュボードアクションをまとめれば完成です。
【おまけ】
このテクニックを用いて、カラーホイールVizを作成しました。
https://public.tableau.com/profile/yoshitaka6076#!/vizhome/ColorPaletteCircleinprogress/HSVColorCircle