[TableauTips]小計・累計のマークに色を付ける方法

やりたいこと:小計・累計のマークに色を付けたい

Vizを作る時に小計・累計にだけ色を付けて表現したいことがある。
しかしながら、これが意外と分からない。
例えば背景を書式設定で変えることはできるが、
マーク(棒グラフ)に対して色を付けるのがぱっとできない。

こういうVizだと合計(小計)は違う要素なので、色で分けて表現したくなる

しかしちょっと工夫すれば以下のように色付けが出来る。
このように小計(や累計)に対して色を付けるテクニックを紹介する。
今回は色んな方法を書いたのでぜひ勉強がてら見てほしい。

合計だけ色を変えている

やり方:表計算を使った計算式を使う

まず割と簡単で応用が効く方法から。
①計算式で「size()」を入れる
不連続にして色を入れる(連続だとうまくいかない)
先ほどの作例ならばこんな感じになる

不連続にするのがポイント。表計算は既定のままでいい。

sizeとは本来は要素数を返してくれる表計算である。
詳しい仕組みは分からないが、小計に対して適用すると小計の数を返す。
なので普通の要素は「48」、小計は「4」と数の違いが出るため、
違う色を塗り分けることができる。
なお本Vizでは出てないが累計ならば「1」になるので違う色にもできる。

他のやり方:違う表計算を使う

基本的に上記の方法でいいだろうが、別解がいくつかある。
このViz以外では他のやり方の方がいいかもしれない。
頭の体操がてら、4つやり方を紹介しよう。

①Window関数を使う

size()とほぼ同じことがWindow関数(1)で出来る

理屈はほとんど同じ。1はおまじない(特に意味はない)。

②Max関数、Min関数を使った計算式を使う

最大値と最小値が一致しない、というちょっと不思議な計算式を使う。
これは小計の時の最大値・最小値が一致しない仕様を突いたものである。

max(DATEPART('month', [オーダー日]))!=min(DATEPART('month', [オーダー日]))

Tableauコピペ用計算式
ラベル上がmax(オーダー月)、ラベル下がmin(オーダー月)。小計では一致しないのが分かる。

③ディメンションをそのまま持ってくる

列にある「月(オーダー日)」をCtrlキーで複製しながら色に持ってくる。
すると月と合計の塗り分けが出来る。後は色を要望に応じて変えてほしい。
note書くために検証して気が付いたが、これが一番直観的な方法かなぁ・・

計算式で作るのではなく、列に入ってるものを持ってくるのがポイント

④公式の実装方法について(非推奨)

公式のナレッジベースではこういうやり方を推奨している。
①各要素と合計を切り分ける計算式を作る
②色と「」に入れる(列に入れないと失敗する)。
なお列に入れたものはヘッダー非表示にしてもいい。

列に入れないとうまく行かないので要注意

しかしこの計算式を作らずとも、「カテゴリ」が色と列にあれば
色を塗り分けられるので、このやり方を個人的にはおススメできない。

余談:この記事をかいたきっかけ

この記事を書くきっかけになったのは、あるTwitterの投稿である。

このTweetに寄せられた意見をまとめたのがこのnoteである。
(僭越ながら私もアイディア投稿させていただいた)
私一人ではやり方は全然思いつかなかったし、いい勉強になった。
何より、こういう謎解きや交流はすごく楽しい。
これがコミュニティ活動の効用なのだと思った。

もしもっと他にいい方法があればTwitterで連絡いただけると助かります。
ご意見・ご感想もお待ちしています。どうぞお手柔らかに・・
ついったーはこちら⇒https://twitter.com/minoru_tech


この記事が気に入ったらサポートをしてみませんか?