どうもmamma_dsです。エクセル月報をTableau化したいお話をよく聞きます。エクセルは自由すぎますね、手間はかかりますけど。実際に自由すぎるエクセルをTableau化した事例(多少変えてますが)をご紹介していきたいと考えております。2024年4月号は月報の日付処理です。
この記事でお伝えする内容
今月のTableau月報 -Tableauでの日付処理-
指定した月で、売上と利益の推移を確認します。月報月を基準として、過去1年間の月ごとのデータを可視化。また前年同月とも比較をします。
今月の月報ポイント
・自動(月が変わっても)で先月までデータを可視化
・先月から過去2年分のデータをソートして可視化する
活用する機能
・パラメーター:月報月の選択
・datediff:月報月からの月数を確認
・fixed:棒グラフをソートするために活用
・累計:簡易表計算で累計を計算
データに関しての補足説明
サンプルスーパーストアのデータを使っていますが、月報にするためにオーダー日を細工しています。
今日を基準にオーダー日をずらしています。具体的にはオーダー日の最大値と今日との差をオーダー日に足しています。これで、疑似的にデータが日々更新されているかのように見せています。
DATE(DATEADD('day',DATEDIFF('day',{fixed:max([オーダー日])},now()),[オーダー日]))
Viz(Tableau月報)の作り方
パラメーターで月報月を選択できるようにする
パラメーターを活用して、いつの月報を表示するのか指定できるようにします。月報なのでデフォルトで先月を選択するようにします。よって、いつ見ても先月までのデータを可視化できるようにします。
パラメーターの設定
今日(now())との差分を示せるように整数でパラメータを作成します。このようにすることで、今日を基準として、いつの月報を表示したいのか選択できます。さらに、月が替わると、何もしなくても、常に先月の月報が可視化されます。1年前等の古い月報を可視化したいときは、さらにパラメータを追加する必要があります。
月報月から過去2年間の判定
前年同月比較をしていますので、過去2年間の判定が必要となります。先ほどのパラメーター[月報月]が基準となります。
([月報月]-24 < DATEDIFF('month',now(),[オーダー日(月報用)])) and
(DATEDIFF('month',now(),[オーダー日(月報用)]) <= [月報月])
DATADIFFは日時の差分を算出する関数です。[オーダー日(月報用)] - now()(今) の計算をしています。
月報月から過去1年の判定
今年と前年を色分けするために、過去1年の判定を行っています。計算は過去2年の数値が変わるだけです。
([月報月]-12 < DATEDIFF('month',now(),[オーダー日(月報用)])) and
(DATEDIFF('month',now(),[オーダー日(月報用)]) <= [月報月])
売上累計推移(前年同月比較)、利益累計推移(前年同月比較)の可視化
一見、可視化は簡単そうに見えるのですがソートがちょっと難しいです。単順に月でソートすると1月~12月になってしまいます。そうではなく、月報月を基準(月報月が一番右側にくる)とします。
月報月を基準にソートする方法
ちょっと難しいが、以下のような計算フィールドを作成する
{fixed DATETRUNC('month',[オーダー日(月報用)]):
max(DATEDIFF('month', DATEADD('month',[月報月],now()), [オーダー日(月報用)]))}
「月ソート用の確認」シートを見て頂くと結果がわかりやすいと思う。
計算フィールドできたら、オーダー日(月報用)で並び替えを行う
月ソート用で並び替えを行う
売上推移(前年同月比較)、利益推移(前年同月比較)の棒グラフ作成
棒グラフも「月ソート用」でソートすればそれほど難しくなく作成できる