2019年1月26日

複数アイテムをSet Actionを用いて選択する

最終更新: 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


Set Actionを用いて複数アイテムを選択する方法、いかがでしたでしょうか。
 

 
ご質問等はLinkedin、Twitter等によろしくお願いいたします。

#Tableau #SetActions