私の場合...WOW2024 Week48
今回は、できるだけ計算式を作らずに(直接書かずに)Tableau にデフォルトで備わっている機能を活用することをテーマに取り組みました。
★完全に自己満足です★
なので、本当に「私の場合」の手順で、数ある解き方のOne Of Themです。
恐らく、2023年と2024年の売上合計の計算式を作って、それらから差分と年間成長率を求める、といった手順が一般的かと思います。
なので、ぜひぜひ他の人のVizも参考にされることをおススメします。
今回のお題はこちら
https://workout-wednesday.com/2024w48tab/
1.全体を眺める
・折れ線グラフと棒グラフの組み合わせ
・途中から始まる棒グラフ→ガントチャート
・3つのフィルータ
・ツールヒントで差分が+とーで文字色が違う
2.データを読み込む
今回は、2024年とその前年の2023年の比較なので、それ以外のデータは読み込みの時点で省いておきます。
「データソース」の画面で画面右上にある「フィルター:追加」をクリックします。
「データソースフィルターの編集」画面で「追加」ボタンをクリックし、「Order Date」を選んで「OK」をクリックします。
「年」を選んで「次へ」をクリックし、「2023」と「2024」にチェックを入れて「OK」をクリックします。もう一度「OK」を押して、データの読み込み完了です。
3.売上合計の折れ線グラフを作る
左側のデータペインから[Order Date]を「行」に「不連続」の「年」として入れます。(青色/[年(Order Date)])
「行」にある[年(Order Date)]のピルの先頭にある「+」をクリックすると右側に[四半期(Order Date)]が追加されます。続けて[四半期(Order Date)]の先頭にある「+」をクリックして、[月(Order Date)]を追加します。
今回は月別の折れ線グラフなので、真ん中にある[四半期(Order Date)]を削除します。これで横軸が2023年と2024年の1月~12月に設定されました。
次にデータペインから[Sales]を「列」に入れます。(自動で合計になる)
2023年と2024年の売上の折れ線グラフができます。
4.2023年と2024年の売上合計の差分を求める
計算式を作らずに、Tableauの簡易表計算機能を使います。
「行」にある[合計(Sales)]をキーボードの「Ctrl」を押しながら隣にドラッグ&ドロップして複製します。
「行」の右側にある[合計(Sales)]をクリックして「簡易表計算を追加」を選びます。
表計算で以下のように設定します。
・計算タイプ:次との差
・次を使用して計算:特定のディメンション
・「Orde Date(年)」にのみチェック
2023年と2024年の1月に黄色の網掛けがされ、どの場所の差分かが表示されます。
5.前年比成長率を求める
ここでもTableauの表計算機能を使います。
「行」にある左側の[合計(Sales)]をキーボードの「Ctrl」を押しながら同じ「行」にドラッグ&ドロップして複製します。
※3つ目の[合計(Sales)]
新しく作った[合計(Sales)]をクリックして「簡易表計算」から「前年比成長率」を選びます。
再び同じ[合計(Sales)]をクリックして今度は「簡易表計算の編集」を選びます。
表計算で以下のように設定します。
・計算タイプ:次との差の割合
・次を使用して計算:特定のディメンション
・「Orde Date(年)」にのみチェック
これでグラフ作成、ツールヒントに必要な数値は出そろいました。
6.2024年でフィルターする
通常だと「フィルター」に「Orde Date」の年を入れて2024年でフィルターをするところですが、今回は表計算で差分と年間成長率を算出しているので、シンプルに「Order Date」でフィルターすると差分と年間成長率が消えてしまいます。
これは、Tableauの操作には順番があるからです。
いわゆるクエリパイプラインといわれるヤツです。
クエリパイプラインについては、いろんな人が分かりやすく解説しているので、ここでは割愛します。
Tableauの公式ヘルプもあります。(https://help.tableau.com/current/pro/desktop/ja-jp/order_of_operations.htm)
差分と年間成長率(ともに表計算)が「Order Date」(メジャー)のフィルターで消えてしまうのは、Tableauの操作順が、表計算よりも先にメジャーフィルターをすることになっているからです。
表計算をする段階では2023年がフィルターされてしまっていて、差分の対象となるデータが存在しないため空白になってしまいます。
こんな場合は、表計算よりも操作順が後の表計算フィルターの出番です。
DATA Saberにチャレンジ中の方はOrd9で類似問題があるのでピンときた方もいるのではないかと思います。
「Order Date」の年を表計算として表すための計算式をつくります。
ここは手動です。
「計算フィールドの作成」で新しく計算フィールドを作成し[Orde Date for Filter]と名付けます。
//Orde Date for Filter
LOOKUP ( MIN(DATEPART ( 'year', [Order Date] ) ) , 0 )
<計算式の意味>
LOOKUP関数は、指定したデータについて、現在の位置から指定した場所のデータを返す関数です。
今回だと
指定したデータ:「Orde Date」の年
指定した場所:0
となるので、結果として「Orde Date」の年と同じ内容を表します。
これの計算式をフィルターとして使うことで、差分と年間進捗率を出した後に、2024年だけをフィルターできるようになります。
データペインの[Orde Date for Filter]をクリックして「不連続に変換」しておきます。(緑色→青色に変わる)
続いて[Orde Date for Filter]を「フィルター」に入れます。
「2024」を選んで「OK」をクリックします。
すると、差分と年間成長率が残ったまま2024年だけのグラフになります。
今回、差分と年間成長率は折れ線グラフでは使わないので、計算式として左側のデータペインに移動させていきます。
「行」にある一番右側の[合計(Sales)△](年間成長率)をドラッグ&ドロップでデータペインに移動させます。
計算フィールドの名前を[Dif%]に変更します。
※この時点で「行」にあるピルも同じ名前に変更されます。
続いて、「行」にある真ん中の[合計(Sales)△](差分)も同様にデータペインへ移動させ名前を[Dif]に変更します。
「行」にある[Dif]と[Dif%]を削除します。
7.ガントチャートを作る
ガントチャートは、データの位置(スタート地点)とデータの量(棒の長さ)を持ったグラフです。
今回の場合、スタート地点は2024年の売上合計、棒の長さは2024年と2023年の売上合計の差分になります。
「行」の[合計(Sales)]を「Ctrl」を押しながら一つ横にドラッグ&ドロップします。
[合計(Sales)]が複製されて2つ並んだ状態になります。
「マーク」で「合計(Sales) (2)」を選びグラフの種類を「ガントチャート」にします。
すると、下の方の棒グラフが横線に変化します。
この時、横線の位置がスタート地点=2024年の売上合計になっていることを確認します。
ここをスタート地点としてデータの量=売上合計の差分を表示していきます。
「マーク」で「合計(Sales) (2)」の「サイズ」に[Dif]をいれます。
横棒を起点に差分の分だけ棒グラフが上下に現れます。
これでカントチャートが完成です。
8.グラフの見た目を整える
線グラフとガントチャートを合体させる
下の方のグラフの縦軸を右クリックし「二重軸」を選びます。
左側の縦軸を右クリックし「軸の同期」を選びます。再び左側の縦軸をクリックして「ヘッダーの表示」のチェックを外します。
グラフ上部にある「Order Date」を右クリックして「列のフィールドラベルの非表示」を選びます。続けて「2024」を右クリックし「ヘッダーの表示」のチェックを外します。
線を消す
お題のVizを観察してみると、うっすらと目盛り線だけが残っています。
上部メニューバーの「書式設定」をクリックし「枠線」を選びます。
「行の境界線」と「列の境界線」を「なし」にします。
続いて「線」の書式設定で「ゼロライン」を「なし」にします。
色とサイズを調整する
今回、折れ線とガントチャートに色の指定がありました。
「マーク」の「合計(Sales)」(線グラフの方)を選び、「色」で「その他の色」を選んで「#819898」を設定します。
ガントチャートの方は、差分が「+」と「ー」とで色分けが必要です。
色分け用の計算式を作りたくなるところですが、Tableauのデフォルト機能で乗り切ります。
「マーク」で「合計(Sales) (2)」(ガントチャートの方)を選び、「色」に[Dif]を入れます。※サイズの[Dif]はそのまま
グラデーションになった状態で「+」と「ー」が塗分けされます。
「マーク」の「色」をクリックし「色の編集」ボタンをクリックします。
「色の編集」画面で左右の色を変更し(左:#ff5342、右:#1C284E)、「ステップドカラー」を「2」にします。
「詳細」ボタンを押して「中央:0」にチェックをいれ「OK」をクリックします。
「合計(Sales) (2)」(ガントチャートの方)の「マーク」で「サイズ」を小さくして整えます。
9.ツールヒントを整える
今回のお題は、ツールヒントの文字の使い分けがポイントのひとつだったと思います。
対処しないといけないのは、以下の3点です。
①差分:「+」と「ー」が先頭についている
②年間成長率:「ー」の時だけ「ー」がつく & ( )で囲む
③文字色:「ー」の時は差分と年間成長率が赤字、「+」の時は黒字
先に③の対処
データペインにある[Sales]を右クリックして「既定のプロパティ」から「数値形式」を選びます。
「既定の数値形式」画面で、「通貨(カスタム)」を選び、「プレフィックス」を「$」に上書きします。
ツールヒントの文字色の使い分けは、それぞれの文字色用の計算式をつくってそれらを並列にならべることで実現します。
今回は、差[Dif]と年間進捗率[Dif%]の2つについて、「+用」と「ー用」の計算式をつくります。
ここは計算式を作る以外の方法が思いつきませんでした…
新しく4つの計算式を作り以下のように名付けます。
[Dif+]
//Dif+
IF [Dif]>=0 THEN [Dif] END
[Dif-]
//Dif-
IF [Dif]<0 THEN [Dif] END
[Dif%+]
//Dif%+
IF [Dif%]>=0 THEN [Dif%] END
[Dif%-]
//Dif%-
IF [Dif%]<0 THEN [Dif%] END
<計算式の解説>
IF関数を使って、「+」の時だけ、「ー」の時だけ[Dif]や[Dif%]を表示するようにしています。
①の対処
データペインにある[Dif+]を右クリックして「既定のプロパティ」から「数値形式」を選びます。
「既定の数値形式」画面で、「通貨(カスタム)」を選び、「プレフィックス」を「$」に上書きします。続いて、「カスタム」を選び以下のように
書き換えます。(先頭に+を追加)
※2段階にすることで「カスタム」を開いた時に空白でなくベースになる書式が表示されて編集しやすいです
+"$"#,##0;-"$"#,##0
[Dif-]についても同様に書式設定します。
※カスタムの書式設定については過去の記事で詳しく書いているので時間のある時にそちらを参照してみてください。
https://note.com/vast_cosmos21/n/nfa782c38455a
②の対処
データペインにある[Dif%+]を右クリックして「既定のプロパティ」から「数値形式」を選びます。
「既定の数値形式」の「パーセンテージ」で「小数点:1」に変更します。続いて「カスタム」を選び、以下のように書き換えます。
[Dif%-]についても同様に書式設定します。
※「+」と「ー」と「()」がつくように設定
(+0.0%);(-0.0%)
データペインにある[Dif+][Dif-][Dif%+][Dif%-]を「マーク」の「すべて」の「ツールヒント」に入れます。
「マーク」の「すべて」で「ツールヒント」をクリックし以下画像のように設定します。
「ー用」は赤字にします。
最後に[Region][Category][Segment]を「フィルター」に入れます。(3つとも「すべて」を選ぶ)
これでグラフは完成です。
シート名を「candle line」に変えます。
9.ダッシュボードを作る
今回のレイアウトは、タイトル、フィルター群、グラフのシンプルな3段です。
新しくダッシュボードを開き、「ダッシュボード」の「サイズ」で「固定サイズ」の「カスタム」を選び、幅:1000px、高さ:800pxに設定します。
左側メニューの「オブジェクト」から「テキスト」をダッシュボードに配置し、お題を見ながらタイトルを作ります。
次に「シート」から「candle line」をタイトルの下に配置します。
シート名を右クリックして「タイトルの非表示」を選びます。
「candle line」のシートをクリックすると表示されるグレーのタブの「▼」をクリックして、「フィルター」で[Region][Category][Segment]を選びます。
自動で右側のコンテナに配置されます。
タイトルとグラフの間に「水平コンテナ」を配置して、3つのフィルターを横並びで配置します。
デフォルトだとお題のVizとフィルターの見た目が異なるので変更します。
「Region」をクリックして表示されるグレーのタブの「▼」をクリックします。「単一値 ドロップダウン」を選びます。
フィルターの値を「すべて」に変更します。
「Segment」「Category」も同様の設定をします。
右側に色凡例等の不要なコンテナが残っている場合は削除します。
高さのバランスを調整します。
最後に「ダッシュボード」の名前を「WOW2024 W48」に変更して完成です。
Tableau Publicにパブリッシュしたら、WOWのトラッカーに登録するのも忘れずに!
▼WOWトラッカー
<追記>
今回は指定のフォントを使用しないといけない、という指定があったのを忘れていました。
自由にフォントは選べますが、世界中のどの環境でも自分と同じように表示されるいわゆる「Tableau Safe Font」には限りがあります。
Tableau 2024.2 の新機能として、いくつかの Google Font が追加になりました。厳密には現時点で完全に「Safeか?」というと違うのですが、限りなく「Safe」に近い状態です。
今回はその中のひとつ「Poppins」を使いましょう、ということでした。
ワークブック全体のフォントを一気に変更するには、上部メニューバーの「書式設定」から「ワークブック」を選んで変更できます。
「Tableau Safe Font」に関しては、Flerlage Twinsの以下ブログに詳しく書かれています。
https://www.flerlagetwins.com/2020/08/fonts.html?m=1
シリーズものとして以下情報も非常に参考になります。
https://public.tableau.com/app/profile/ken.flerlage/viz/Tableau-SafeFonts/Compare