[Tableau] マップレイヤー利用時のセット活用Tips
summary
- 今回の目標は↓のようなViz
- セットを活用することで階層構造を持った選択肢を動的に変化させる
- 「NULL」の消し方はやや強引なので、もっと良い解決法があれば教えてほしい
やりたいこと
ある二つのディメンション(X1, X2)をフィルターとして利用することを考えます。このときX1とX2に階層や順序のような関係性があったとすれば、X1に関連するX2のみフィルターの選択肢に現れてほしいですよね。例えば、
X1 | X2 |
---|---|
Aエリア統括 | A1支部 |
Aエリア統括 | A2支部 |
Aエリア統括 | A3支部 |
Bエリア統括 | B1支部 |
Cエリア統括 | C1支部 |
Cエリア統括 | C2支部 |
のようなデータの場合、X1のフィルターで「Aエリア統括」のみ選択したときX2のフィルターでは「A1支部」「A2支部」「A3支部」が候補として表示されてほしいわけです。今回はこれをマップレイヤー利用時にも適用させることを目標とします。
使用データ
- 【店舗情報】東京23区内のドン・キホーテ/MEGAドン・キホーテの店舗一覧(出典)
※「値」カラムは適当なメジャーを作るためにランダムに割り振った数値であり、意味はありません。 - 【市区町村データ】東京23区の人口データ(出典)
上記二つのテーブルを、[都道府県] + [市区町村]
をキーとしてリレーションで繋ぎました。
Vizの要件
「人口を確認しながら出店戦略を考える」といったユースケースを想定し、ここでは以下の要件を満たすVizを目指して作成していきます。
- 東京23区の人口がマップの濃淡で表現されている
- 選択したカテゴリ(ドン・キホーテ/MEGAドン・キホーテ)の店舗所在区がリストに表示され、対応する店舗の表示/非表示が切り替えられる
フィルターの「関連値のみ」ではマップも一緒に消えてしまう
ここまでの話で、『フィルターの「関連値のみ」の設定を行えばいいのでは?』と思われたかもしれません。
【参考】フィルターの「関連値のみ」を棒グラフで利用
実際に試してみると・・・
【店舗一覧】と【市区町村データ】がリレーションで繋がっているため、フィルター上でチェックを外したカテゴリ/市区町村に対応する市区町村(市区町村データ)の人口マップも消えてしまいました。別の方法を考える必要がありそうです。
代わりにセットを使って店舗の表示/非表示を切り替える
先述の問題を「セット」によって以下のように解決します。
-
カテゴリセット
の作成
データペインの「カテゴリ」>「作成」>「セット」 -
選択カテゴリ内市区町村
の作成
IIF([カテゴリセット], [市区町村], NULL)
-
選択カテゴリ内市区町村セット
の作成
データペインの「選択カテゴリ内市区町村」>「作成」>「セット」 -
選択カテゴリ/市区町村内店舗郵便番号
の作成
IIF([カテゴリセット] AND [選択カテゴリ内市区町村セット], [郵便番号], NULL)
-
[選択カテゴリ/市区町村内店舗郵便番号]
に地理的役割(郵便番号)を設定する
データペインの「選択カテゴリ/市区町村内店舗郵便番号」>「地理的役割」>「郵便番号」 -
店舗位置をプロットするための
[郵便番号]
を[選択カテゴリ/市区町村内店舗郵便番号]
に置き換える
-
二つのセットを表示する
データペインの「カテゴリセット」「選択カテゴリ内市区町村セット」>「セットの表示」
1.〜7.の操作によって、目標としていたVizが完成しました!
(延長戦)「NULL」を消したい
「カテゴリセット」「選択カテゴリ内市区町村セット」のリストを見てみると、「NULL」が含まれていることがわかります。
この原因を「データの表示」から確認してみます。データは以下のように【店舗一覧】と【市区町村データ】が縦にくっついた構造となっており、ここからNULLが発生していることがわかります。
私は以下のような方法でNULLを消す案を考えました。
- 「セット表示用」シートの作成
「カテゴリセット」はコンテキストフィルターとして使い、「選択カテゴリ内市区町村セット」を詳細に入れた上でマークを多角形にした。「選択カテゴリ内市区町村セット」の設定は「コンテキスト内のすべての値」とした。
- ダッシュボード上の「セット表示用」シートからセットの表示
元々作っていたマップのシートと「セット表示用」シートをダッシュボード上に配置。マップのシートから出力されるセットは使わず、「セット表示用」シートからセットを表示した。「セット表示用」は最終的にはタイトル非表示・網掛けなし・サイズ1×1とするなど、目立たせないようにした。
NULLが消えて閲覧者を困惑させないダッシュボードになりました!
今回ご紹介した方法はやや強引にも感じるので、より簡単に作る方法をご存知の方は私のXまでご連絡ください!
Discussion