はじめに
みなさんこんにちは。
Tableau Tips * Tabjo Advent Calendar 2023のDay16として、ちょっとしたTipsを投稿させていただきます。
パラメータ+フィルタによるシート切り替え時に発生するスキマ
Tableau Desktopで古くからあるテクニックで、「レイアウトコンテナ内のシートを、パラメータ+フィルタで切り替える」というものがあります。
※このテクニック自体の説明は、とても分かりやすい記事を上げて頂いている方がいるためその記事を紹介させていただくこととし、本記事では割愛します。
↓こんなん
最近は、Dynamic Zone Visibility(動的ゾーン表示)機能の実装によって使うケースも減ってはきましたが、動的ゾーン表示には「Viz の構造とは関係がない定数値」を用いなければならないという制限もあるので、まだまだパラメータ+フィルタでの切り替えが登場する機会はあるだろうな、と思っています。
さて、このテクニックを使ってシートを切り替えているとき、シートの内容によっては、 片方のシートを非表示にしても、微妙にスキマが残る ことがあります。
(わかりやすくするため各シートとレイアウトコンテナに枠線をつけました)
こっちは大丈夫なのに、、、
こっちを選ぶと下に(配置によっては上に)微妙にスキマが残る
きっちりレイアウトを合わせたいときにこれが起こってしまうと、「なんで消えてくれないんだよ〜」と悲しくなってしまいます。
あまりに悲しかったので、なんでこれが起きるのか調べてみた、というのが本記事の趣旨です。
いきなり結論ですが、これがどのような場合に起きるかというと、
非表示になるのが 行・列シェルフに何もディメンションが設定されていないシートである
ときでした。
例のツリーマップとか、ドーナツチャート(min(0)とかは置くけどディメンションではない)とかが該当します。
では、このようなVizをレイアウトコンテナにおいてパラメータで切り替えたときにスキマが絶対に残ってしまうのかというと、、、防ぐ方法がありました。
解決法
解決法は力技ですが、
なんでもいいので行か列シェルフにピルを置いて非表示にする
です。
手順を見ていきましょう。
まず、ダミーとなるディメンションを計算フィールドで作成します。
例では”Dummy"という文字列にしていますが、なんでもいいです。不連続のディメンションに設定すれば数字でもOKです。
そして、作成したダミー計算フィールドを行or列にぶち込みます。
もちろん、計算フィールドを作成せず直接行or列シェルフをダブルクリックしてフィールドを作成してもOKです(アドホック計算)。
この状態でダッシュボードに戻り、パラメータを切り替えてみます。
スキマが消えてくれました!!!
とはいえ、さすがにツリーマップを表示した時に「スキマ埋め用ダミー」とか出ていると、これはスキマよりカッコ悪すぎるので、こちらをなんとかしましょう。
ツリーマップのシートに戻り、設定したダミーのフィールドを選択して、「ヘッダーの表示」をクリックして、増えてしまった列のフィールドラベルおよびヘッダーを非表示にします。
また、よく見るとツリーマップの上下に余計な罫線ができてしまっているので、「書式設定」から罫線を削除し綺麗にします。
これでツリーマップの見た目が元通りになりました。
もちろん、切り替えてもスキマが出ないようになっています。
めでたしめでたし。
おわりに
というわけで、「行・列シェルフに何もディメンションが指定されていないシートが、パラメータで非表示にしてもスキマとなってしまう」の解消法でした。
とても細かいネタですが、いつかどこかで、誰かの役に立てば幸いです。