🌟

Tableauで選択ハイライトを自動解除+応用技の紹介

2024/05/25に公開

概要

例えばこのような簡単なデータをTableauで表示した例で考えてみる。

KPI,実績
売上,2765
受注,640
粗利,1024


それで、どれか行をクリックするとこんな感じになる。

おっと、邪魔な吹き出しが出てしまった。
小ネタだがこの吹き出しを非表示にするにはツールヒントで「コマンドボタンを含める」のチェックを外すと良い(※個人的にはこの吹き出しが必要だと思ったことは一度も無いので常にここのチェックは外すようにしている・・笑)。

改めて、この状態でクリックするとこんな感じだが、

何てことはない。選択行がハイライトされて、それ以外の行のグラフ及び数値の透明度が上がり目立たなくなっているだけだ。
これが特に悪いという事はないのだが、場合によっては
「ちょっと薄くなりすぎるんだが・・・数字は常にはっきり見えててほしい・・」
というケースもないだろうか?
例えばこの例のように主要なKPIがいくつもあり、どれかをクリックすると別のスペースにその選択したKPIの詳細データを表示するみたいな感じで、このグラフを軸に切り換えるような時とか。でもメインの各KPIの数値は常にはっきり見えててほしい!みたいな。。この記事ではそういう時に使えるオプションを紹介しようと思う。

パラメーターを活用する

このオプションでは選択行に対応したパラメーターが必要なので、早速定義してみよう。

とりあえずこんな感じでOKする↑
次に、パラメーターアクションを定義する。

設定はこんな感じでOK↓

そうすると、選んだ行に対応してパラメーターが変わるようになったはずだ。

自動でハイライトを解除する

行を選択した後に同じ行を選択するとハイライトが解除される訳だが、それを自動化してしまおうというのがこのセクションでの話である。
何故そんな事をするか、それはTableauのハイライト機能は使わないで手動でハイライトっぽい演出をする為である。

今から紹介する自動ハイライト解除はちょっと謎のテクニックを使うので、まあ「おまじない」程度に思ってもらえればよいのかなと思う。

①下記の二つの計算フィールドを作成


②それを詳細カードに突っ込む

③フィルターアクションを次のように設定

そうするとどうなったか、行を選択してもハイライトはされないのにパラメーターだけは切り替わる!そんな状態になったのではないかと思う。

色の設定

まずはKPI行を選択している状態とそうでない状態を区別する為に下記の計算式を作成する。

それを色カードに突っ込む。

そして色の設定で好きな色を設定すれば完成!
例えばここではKPI選択行を青、非選択行をグレーにしてみた。

操作してもらうと分かるが、中々切り替えもスムーズでいい感じではないだろうか。
数字をはっきり出しつつ、選択している行とそうでない行の区別も分かりやすくできている。

透明度を設定する

もっと選択行を強調する為に、非選択行に少し透明度が欲しいだろうか?
「標準ハイライトだと薄すぎるけど、その中間ぐらいとか・・」
そういう調整も好きなように可能だ。

まずは色カードから不透明度を設定してみよう。
数値はいくつでもいいがここでは50%にしてみる。

その後は非選択色の色編集画面で「スクリーンの色を取得」をクリックし、非選択行の棒グラフの部分をクリックして、この薄い灰色の色を取得しよう。
※↓の図では「粗利」の棒グラフをクリックしている(赤い十字マークの所)

そうすると今回の例では「#dcd7d5」という色が得られたので、このままOKを押す。

その後不透明度を100%に戻す。

これでグレーの部分だけやや半透明っぽい感じにする事ができた。

その他、やろうと思えば数値のフォントも選択行と非選択行で分ける事も可能だ。
例えば今はTableau Boldを使っているが、非選択行のフォントはTableau Mediumにするとか、フォントサイズを少し小さくしてみるとか。
まあ無理して色々な要素を入れる必要は無いので、ケースバイケースで考えればよい。

トグル機能を実現する

ここまで見てきた方法だと「どれか一つを常に選んでいる状態」は実現できる。しかし「選択行をもう一度押した時に選択を解除する」という事は実装できていない。勿論これはケースバイケースだと思うので前者の実装で十分な場合もある。しかし後者の実装をしたい場合の方法も知っておいた方がよいと思うので、その方法を解説していく。

①下記の計算フィールドを用意

②それを詳細カードに突っ込む

③パラメーターアクションのソースフィールドに「KPI選択状態」を設定

たったこれだけである。
同じ行を選択したら全て灰色になり、他の行を選択して色が変わるという機能はそのまま生きている。やりたい事が全て実現できた。

ヘッダーも強調表示する

ここからは応用編であり、使用用途も限られるので無理して覚える必要は無い。しかし表現のオプションを一つでも多く持つ事は大きな武器になる。それに今から紹介する技は他の目的にも使える応用範囲の広い技である。余裕のある方は是非見て行ってほしい。

で、ここでは何をしたいかというと、ゴールはこうだ。

こんな感じでグラフだけでなくヘッダー部分も強調させたいと、そこまでこだわりたい場合に使えるテクニックになる。先程は応用範囲の広い技と言ったが、このテクニックを使えば例えばパネルボタン、ラジオボタン、チェックボックス等も実現できる。
(今回は解説しないが、むしろこれらの解説の方が需要あるか?笑)

それでは早速実装手順を解説しよう。

ワークシートの実装

①新しいシート「KPIヘッダー」を作り、下記のように設定する

・行シェルフに「KPI」を配置
・詳細カードに「TRUE」、「FALSE」を配置
・グラフを「棒グラフ」に設定
・ビュー表示を「ビュー全体」にする

・そして現在のシート「KPIヘッダー」に対しても新規でフィルターアクションを作り、前回と同様に「KPIハイライト解除」のアクションを作っておく。

②書式設定を整える
・「行のフィールドラベルを非表示」にして「KPI」というヘッダー文字を消す

・書式設定で不要な線を消す

★枠線の書式設定に切り換える(罫線アイコン)
[1]行の境界線をなしにする

[2]列のセルの線を消す

★線の書式設定に切り換える(罫線アイコンの一つ右)
[3]行タブでグリッド線、ゼロライン、軸線をなしにする

[4]列タブでグリッド線、ゼロライン、軸線をなしにする

※但しこれらの書式設定はあくまで例なので、状況に応じて好きなように設定しても勿論よい。

③メジャー版ヘッダーを作る
・列シェルフをダブルクリックして「Min(1)」と入力してEnterを押す

・ビュー下部の目盛り部分を右クリックして「軸の編集」を選択

・範囲を「カスタム」にして、
開始値を固定⇒ 0 を入力
終了値を固定⇒ 1 を入力
設定できたら右上の×で閉じる。

・目盛り部分をもう一度右クリックで「ヘッダーの表示」を選択してヘッダーを非表示にする

・棒グラフのサイズを最大にする

・色を白にして枠線をなしにする

・行シェルフを右クリックで「ヘッダーの表示」を押してヘッダーを非表示にする

・「ツールヒントの表示」のチェックを外してツールヒントを消す

・計算フィールド「KPIヘッダー (選択中)」を定義

・計算フィールド「KPIヘッダー (非選択)」を定義

・その二つをテキストカードに突っ込む

・ラベルの編集で下記のように一列に並べ、選択中の方だけ太字で設定する
※ここら辺は好きなように設定してもらって構わない。

・計算フィールド「KPI選択状態」を詳細カードに追加する

ダッシュボードシートで合体する

・「シート 1」の行シェルフを右クリックで「ヘッダーの表示」を選択してヘッダーを非表示にする

・ダッシュボードシートを新規作成し、水平コンテナを配置して「KPIヘッダー」を左側、「シート 1」を右側にセットする
※その他、座標やサイズなど細かい設定は任意

・「KPIヘッダー」、「シート 1」それぞれの設定で外部パディングを四隅全て 0 に設定

・ダッシュボードアクションを設定する

・ラジオボタンで「このシート」を選ぶ(表示を分かりやすくする為なので必須ではない)

そうすると、このダッシュボードシートにおいてフィルターアクションはそのまま生きているが、パラメーターアクションは消えた事が分かる。なのでパラメーターアクションを再度設定する必要がある。

・「アクションの追加」から「パラメーターの変更」を選ぶ

・パラメーターアクションを定義する

これで完成!
まるで一つのシートであるかのように自然に、ヘッダー文字も強調表示させる事ができた。

これだけで十分という場合もあるだろうが、
一応ヘッダーの背景も合わせて変更する方法も解説しておこう。
しかしこれが驚くほど簡単に終わる。
・「KPIヘッダーの色」という計算フィールドを作成する

・それを色カードに突っ込む

・後は真の色、偽の色を好きな色に変えるだけである

偽を白にするとして、真をどうするか、
オリジナルを完全に模倣したい場合は次のような方法を取ればよい。
まず適当なシートを新規に作り、行シェルフに適当なのを入れ、行をクリックしてみる。

そうすると行の色が変わると思うが、この色をスクリーン指定から取得すればよい。
「#8cc4d3」という色が得られたので、これを真の色に設定する。

そうすると冒頭のGIFと同じ仕上がりになった。

メジャーバリューのディメンション対応版を作る

これも応用編なので余裕のある方だけ見てもらえれば⭕

例えばの話、
「いや、そもそも受注とか粗利とか売上とか、計算フィールド(または初めからあるフィールド)では定義されてるけど、KPIというディメンションでは持ってないのだが・・」
という事もあり得る。

もう一度ここまで使ってきたデータを表示してみよう。

KPI,実績
売上,2765
受注,640
粗利,1024

これが、こうなってるケースも多いという話である。

売上,受注,粗利
2765,640,1024

つまり縦持ちではなく横持ちで持っているケースという事だ。
これがピボットとか使ってデータソースを縦持ちに変換できる状況ならそうすればいい訳だが、そう簡単にはできないケースもあるだろう。

その場合に使える簡単なテクニックを紹介する。

まずはメモ帳にこのように書いてみてほしい。

今回の技ではこれをデータソース化したいので、テキストファイルで保存して読み込ませる・・でも全然構わないのだが、より簡単な方法としては、これをCtrl+Aで全選択⇒Ctrl+Cでコピーした後、

Tableau Desktop(またはTableau Public)をクリックしてウィンドウをアクティブな状態にしてから、Ctrl+Vを押す。

すると、なんとクリップボードの内容がデータソースとして追加できる!
(あとついでに新しいシートも自動追加された。。)

自動で付加された「Clipboard_****」という名前を変えたい場合は右クリック⇒名前の変更で好きなように変えればよい。

そして、この新しいシートで「KPIヘッダー」と全く同じ設定(アクションの含め)を作り、「棒グラフのシート」とダッシュボードシートで水平コンテナを使って結合すればよい。

ようはこのシートで期待する仕事はパラメーターの切替だけなので、それさえやってくれればデータソースが分かれていようが関係ないのである(パラメーターはどのデータソースでも共通で使える為)。

ちょっとまって!この方法使う場合「棒グラフのシート」はどう実装すれば・・?

そう、肝心な事を教えていなかった。
一番簡単に浮かぶのは「メジャーバリュー&メジャーネーム」を使う方法だろう。

しかしこの方法には色々と問題というか、不十分な点が多々ある。
一番の大問題は、メジャーバリュー&メジャーネームは計算フィールド上で使えないという事である。計算フィールドで使えないという事は即ち、パラメーターの値によって棒グラフの色を動的に変える事もできないし、ツールヒントの内容を細かく分けて表示する事もできないなど、痒い所に全然手が届かないのである。

ではどうすればよいか?
実は策を凝らせば手はあるのである。
しかしこのテーマは中々大きい内容なので、別記事にまとめておいた。
https://zenn.dev/t_katsumoto/articles/2bbb740a4bf1de
この記事の内容を組み合わせれば、横持ちデータでも最初に示した完成品GIFと同じようなものを作る事ができる。その完成品を見たい方は、この記事の最後にTableau Publicのリンクを載せているのでそちらの「KPI横持ち版」、「メジャーバリューのディメンション対応版棒グラフ」シートをご参照いただければと思う。

終わり

どうだっただろうか。今回のテクニックを使えばラジオボタンやチェックボックス、あるいは独自の色設定が可能なハイライト表(こちらは主にMin(1)を使ったテクニック)など様々な事が実現できる。是非色々な可能性にトライしてみてほしい。

ここまで解説した内容の実装はTableau Publicにも上げておいた。
https://public.tableau.com/app/profile/takashi.katsumoto/viz/Tableau_17166150581390/KPI_1
ブックを見て解析したい方はこちらからダウンロードも可能なので、記事と合わせて参考にしてもらえたらよいかなと思う。

Discussion