見出し画像

Tableau #WOW2023 Week 8 やったよ


WorkoutWednesday の8週目 「Can you build a comet chart as an alternative to a side-by-side bar chart?」をやりました。

色の塗分け部分はADVANCEDなので、下の画像のような色分けの直前まではできている前提で解説します。
ちなみに、列はメジャーバリューではなくSum([Sales])を使います。この部分は課題のダッシュボードを見てみるとSum([Sales])を使っていることがツールヒントからわかる為、寄せているだけです。

ここまではEasy

で、ここから表計算を使うわけですが、表計算とは何か?をちゃんと理解していないとキツそうです。
"表計算とはマーク毎の集計値を使った再計算"です。
この意味が良くわからない場合は、以下の記事が大変参考になるので読んできてください。

つまり表計算の前段階の通常の集計では以下の図のような流れになります。このイメージはTableauを上達するうえで必要になります。

マークで分ける

今回のコメットチャートではサブカテゴリ×オーダー年別に34個のマークにデータが分割されています。Viz上での配置は線の両端……というより2個マークを置いてその間を線で結んでいるといった感じですね。

今回のマークはここ

色の設定が出来るのもマークです。横方向は同じ色を設定しないと、線がグラデーションになってしまいます。

マークの色

さて、データをサブカテゴリ×オーダー年別のマークに分割したので、それぞれのマーク内で集計します。選択したマークに含まれる行だけを使って集計します!この理解が大事です。

マーク内でSum([Sales])する

マーク毎のオーダー年は後で使うので予め求め方を確認します。マークのオーダー年はMAX(year([Order Date]))で同様に求められます。1つのマークには複数行含まれているので、year([Order Date])としてしまうと結果が複数になってしまいます。1つのマークにつき、1つのオーダー年が必要な時はMAX(year([Order Date]))かMIN(year([Order Date]))かATTR(year([Order Date]))を使います。ATTRは可読性は良いのですが、パフォーマンスが結構下がるので自分以外も使うダッシュボードの時は使用をおススメしません。

非集計と集計の違い

ここまでで、マーク内で出来る計算は終了しました。
次にいよいよ表計算です。表計算とはマークを跨った計算です

自分のマーク以外の集計値が必要になるのが表計算

今回のコメットチャートでは同じサブカテゴリの2021年と2022年の売上の金額の大小関係を見ます。マーク内のデータでは足りず、隣のマークの集計値が必要になります。

「ひとつ隣のマークの集計計算結果」…というのは表計算を使った計算式で表すと
LOOKUP(集計計算式,1)
LOOKUP(集計計算式,-1)
で表せます。集計計算式はSum([Sales])なので
LOOKUP(Sum([Sales]),1)LOOKUP(Sum([Sales]),-1)
になります。

”隣”というのは上方向なのか横方向なのか、どっちの方向が隣になるのか?は、Δ表計算の編集で設定します。どのように設定するかわからない場合は簡単な式を使って予め調べておきます。

LOOKUP(,+1)で同じサブカテゴリの翌年の売上が取れるようにする

特定のディメンションOrder Dateの年を指定すると、翌年の値が取れました。同様に-1にすると前年の値が取れます。

以上の内容から色分けの計算式を作ればOKです。

マークが2021年の場合は、
(自身のマークの売上合計)<(+1個隣(翌年)の売上合計)であれば真
マークが2022年の場合は
(ー1個隣(前年)の売上合計)<(自身のマークの売上合計)であれば真
となるような計算式を色にいれれば良いですね。


今回は以上です。
Tableauでは
行毎の計算⇒行を跨ったマーク毎の計算⇒マークを跨った計算
のように計算対象の範囲がどんどん広くなっていきます。
ここの流れがわかるようになると面白くなるんじゃないのかなと思います。



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