Tableauで期間進捗率を表現したい!【Tableau DATA Saberへの道】
プロジェクトや業務の進捗管理に便利なのが「期間進捗率」。これを使えば、プロジェクトの期日に対してどれくらいの日数が経過したかを把握でき、進捗の状況を一目で確認できます。
たとえば、期間進捗率が20%進んでいるのに対し、現在の売上が目標の15%であれば、目標達成が難しいことがすぐにわかります。これにより、必要な戦略を見直すための貴重な情報となります。
Tableauを使えば、この期間進捗率を視覚化し、ダッシュボードに組み込むことが可能です。今回は、そんな「期間進捗率」をTableauで表現する方法を見ていきましょう。ダッシュボードに追加してプロジェクトや売上の進捗率と並べると、一目で進行度合いを確認することができて便利ですよ。
今回は、こんな感じのvizを作成していきます。
3つの計算フィールドを作成する
手順1:総日数を計算するフィールドを作成する
今回のVizは今月の期間進捗率のため、まずは今月の日数を計算するためのフィールドを作成します。
DAY(DATEADD('month', 1, DATETRUNC('month', TODAY())) - 1)
TODAY(): 現在の日付を返します。
DATETRUNC('month', TODAY()): 今日の日付を月の初日で切り捨てた日付を返します。例えば、今日が2024年10月9日であれば、これにより2024年10月1日が得られます。
DATEADD('month', 1, DATETRUNC('month', TODAY())): 月の初日(例えば2024年10月1日)に1か月を加えた日付を返します。この場合、2024年11月1日になります。
DATEADD('month', 1, DATETRUNC('month', TODAY())) - 1: 上記の結果から1日を引きます。つまり、2024年11月1日から1日引くことで、2024年10月31日が得られます。
DAY(...): 最後に、上記で得られた日付の「日」を返します。この場合、2024年10月31日から日を取得するので、結果は31になります。
2024年10月の場合、この式を実行すると 31 が返されます。
手順2:月初から昨日までの日数を計算するフィールドを作成する
期間進捗率は、消化日数/総日数で求められるので、続いて消化日数を計算するためのフィールドを作成します。
DATEDIFF('day', DATETRUNC('month', TODAY()), DATEADD('day', -1, TODAY()))
DATETRUNC('month', TODAY()):現在の日付(例:2024年10月9日)から月初の日付を取得します。結果は2024年10月1日です。
DATEADD('day', -1, TODAY()):今日の日付から1日引きます。例では2024年10月8日になります(昨日の日付)。
DATEDIFF('day', ..., ...):月初の日付から昨日の日付までの日数を計算します。この場合、2024年10月1日から2024年10月8日までの日数を返します。結果は8になります。
手順3:期間消化率を計算するフィールドを作成する
手順1と2で作成した計算フィールドを用いて、消化率を求めるフィールドを作成します。
ATTR([月初から昨日までの日数])/ATTR([今月の総日数])
消化率は%で表したいのですが、のちほど書式設定でパーセント表記にしするので、一旦100をかけずにこのままにしておきます。
ここまできたら、準備は完了です。もう完成といってもいいくらい。
作成した計算フィールドをVizで表現する
いよいよ期間消化率をVizで表現していきます。
まず、「今月の総日数」と「期間消化率」を列に追加します。
次に、今月の総日数を右クリックして、簡易表計算から「合計に対する割合」にします。すると、総日数の軸が100%の表記になります。また、ここで期間消化率の書式設定をパーセントにしておきましょう。
次に、この二つを「二重軸」にして、「軸の同期」を行います。
マークが「自動」になっているので、「棒」に変更します。
すると、以下のように無事に期間消化率をvizで表現することができました!
お好みで、不要なヘッダーを消したりラベルを表示したりすると、より分かりやすいvizになります。
簡単にできるぞ!と思いながら書いてみたのですが文字に起こしてみるとなんだかとっても長くなってしまいました…。
おそらくもっともっと簡単にできる方法があると思うので、もしご存知の方がいれば教えていただけると嬉しいです!