WOW2022 | Week21 | Let’s Build a Trellis Chart!


はじめに

2022年は、私がSalesforce Japanに入社した年です。
当時は資格の取得や社内トレーニングで必死でWOW(Workout Wednesday)が道半ばになってしまいましたが、Data Saberへのチャレンジと共に再会してみようと思います!
と言うことで、まずは以前のチャレンジの続きで、Week21です。

Workout Wednesdayとは?

解説

要件は以下をご覧ください。

使用するのは、OECDによる各国の失業率のデータです。難しそうなのは、

  1. LODを使わずに月別の分散値と国別の中央値を比較すること

  2. トレリスチャートを作ること

といったところでしょうか。

LODを使わずに分散と中央値を比較する

まずチェックすべきはデータの粒度。どうやら、各国各月、1レコードずつのようです。
まずは中央値の計算フィールドを作りましょう。

Median
WINDOW_MEDIAN(SUM([Unemployement Rate]))

中央値は月別です。Vizの中で計算の範囲を指定してもいいですが、「規定の表計算」で事前に設定も可能です。

続いて、最大値と最小値を設定

Max Unemployment Rate
WINDOW_MAX(MAX([Unemployement Rate]))

Min Unemployment Rate
WINDOW_MIN(MAX([Unemployement Rate]))

これも、「規定の表計算」で事前に設定しておきます。

つづいて、分散は簡単です。各月・各国の値がどれだけ中央値から離れているかを計算させます。

Variance
SUM([Unemployement Rate]) - [Median]

トレリスチャートをつくろう

上記の動画のとおりですが、列と行を表す計算フィールドが肝になります。

Column
(INDEX()-1) % (INT(SQRT(SIZE())))

Row
INT((INDEX()-1) / (INT(SQRT(SIZE()))))

今回の国数は、36(=SIZE())です。
これをSQRT()で平方根を取ると、6。
INDEX()-1は、0〜35まで順番に並べてくれます。
0〜35を平方根の6で割った余りは、0〜5を繰り返します(これがColumn)。
0〜35を平方根の6で割って整数値を表すと、000000, 111111, 222222…と、繰り返します(これがRow)。

なお、この行列は国ごとに計算させたいので、以下の通りです。

この行列の値を使うことで行列のパネル状に表現することができるんですね。なるほど。

その他注意ポイント

  1. 取り込んだ状態では日付の「月」と「日」が入れ替わってしまうので、計算フィールドで正しい日付をつくろう

  2. UPPER関数で国名をすべて大文字にしよう

  3. 国名などのテキストは、以下のようにポジションを決める計算項目を使って2重軸で配置してあげよう

IF INDEX() = INT(SIZE()/2) THEN 20 END

ワークブック

Tableau Publicに投稿したものは下記になります。

ぜひわからないところがあれば、リエンジニアリングしてみてください!

終わりに

ご覧いただきありがとうございました。

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