イクメンデータアナリストのブログ

コンサルのこと/Pythonのこと/Tableauのこと などを備忘録的に書いていこうと思います。

【Tableauでガントチャート】を作る方法をわかりやすく解説!

こんにちはbudouです!

今回はタブローを使って、ガントチャートを作ってみたいと思います。

f:id:budounomizu:20201210225739p:plain
ガントチャート

↑これを作りたいです。

はじめに

今でもプロジェクトの全体像を俯瞰するために使われるガントチャート

エクセルで作ることも出来ますし、プロジェクト管理ツールなんかでもよく出てきます。そんなガントチャートをTableauで作ってみたら超簡単でしたのでご紹介出来ればと思います。

結論、必要なことは、

・列に日付ディメンションを入れて行に表示したいディメンションを入れる
・予定開始日と予定終了日の差を作成し、マークのサイズに入れる
・味付け
です。

今回用意したサンプルデータ

f:id:budounomizu:20201210232945p:plain
サンプルデータ

こんな感じのサンプルデータを用意しました。
よくある感じのWBSです。

列に日付ディメンションを入れて行に表示したいディメンションを入れる

「開始」を列へ、
「タスク」「分類」「担当者」を行へ、それぞれドラック&ドロップで選択します。

f:id:budounomizu:20201215211152p:plain
列と行の指定

予定開始日と予定終了日の差を作成し、マークのサイズに入れる

開始日と終了日の日付の差を作成します。

f:id:budounomizu:20201215211859p:plain
「終了 ー 開始」のフィールドを作成する

DATEDIFF("day", [開始], [終了]) + 1
1を足しているのは、1/1~1/7を"1週間"としたい(7 -1 + 1 = 7日としたい)のとここでは同じです。

f:id:budounomizu:20201215212104p:plain
「終了日 ー 開始日」をサイズへ

ここまででみてみると...

f:id:budounomizu:20201215213429p:plain
だいたい完成!

何とな~くガントチャートっぽくなりましたね!!

ここまで出来たらあとは良しなに改善を~というところですが、使えそうな味付けアイデアを追加でご紹介させて頂ければと思います。

味付け

作ったフィールドを「サイズ」にドロップします。

f:id:budounomizu:20201215212935p:plain
サイズを大きくする

f:id:budounomizu:20201215213026p:plain
超過フラグを作成

IF (TODAY() > [終了]) AND ([進捗] != 1)
THEN "超過してます注意!!!" ELSE "オンスケ"
END

「超過フラグ」を作成します。
(進捗を見て、「終了日を過ぎている」かつ「進捗が100%ではない」ところの判別をしています。)

f:id:budounomizu:20201216063754p:plain
「超過フラグ」を「色」へ

作成した「超過フラグ」を「色」にドロップします。

「日(開始)」をフィルターにつかい、表示される項目を絞り込みます。

f:id:budounomizu:20201216063930p:plain
「日」をフィルターへ

例えば1年前のものが表示されていても使いにくいので、直近のものだけ表示させるようにするためです。
今回は四半期分だけ表示されていればオッケーとします。

f:id:budounomizu:20201216064233p:plain
フィルターを相対日付で見れるように

相対日付で表示されるようになりました。

次に、リファレンスラインを追加して、もっと見やすく整えていきたいと思います。

f:id:budounomizu:20201216064457p:plain
リファレンスラインを追加します

これにリファレンスラインの基準日を設定してあげて、

f:id:budounomizu:20201216064730p:plain
リファレンスラインのパラメータを設定

下を塗りつぶし設定して、

f:id:budounomizu:20201216064758p:plain
リファレンスラインの範囲を塗りつぶしする

パラメーターコントロールを表示して選択できるようにしてあげると、↓のような感じで出来てきます。 もう結構きれいで使えそうな感じになりましたね。

f:id:budounomizu:20201216064836p:plain
パラメータを基準日として使えるようにする

あともう少し、表示されている並び順を何とかしたいです。今の並びはなんだか意図しているものと違います。本当はタスクを作った順番(今回は開始日順と同じ並び)にしたい!
並び替えの際は、「並び替えをさせたい項目」に対して設定を行います。特に表の場合は"一番左側に設定した親項目"さえ並び替えられれば子はその順番に従います。

f:id:budounomizu:20201216065203p:plain
並び替えをしておく

f:id:budounomizu:20201216065359p:plain
並べ替え詳細項目設定

続けて、

f:id:budounomizu:20201216065617p:plain
並び替え詳細項目設定2

これで並び替えは出来ているので、続けて「進捗フラグ」を作成し、「完了したタスク」を表示するかしないか選択できるようにしたいと思います。

f:id:budounomizu:20201216065702p:plain
進捗フラグ作成

IF [進捗] != 1 THEN "未完了"
ELSE "完了"
END

進捗が1(100%)になっていないものを”未完了"とし、1(100%)になっているものを"完了"とします。
最後に、作成した「進捗フラグ」をフィルターに入れて終わり。

f:id:budounomizu:20201216071323p:plain
進捗フラグをフィルターへ

できた~

f:id:budounomizu:20201216071518p:plain
完成図

おわりに

よく使うガントチャートをタブローで表現してみました。 実際にタブローを業務に取り入れられているところは最近増えてきていると思いますので、「一か所管理」の意味でも、タブローガントチャート進捗管理してみるのもありなのではないでしょうか。

Gスプレッドシートなどでデータは管理してチャートを最新にした上で、作ったvizをそのままストーリーに組み込んだり(進捗管理なので頭の方に持ってきたり)みたいな使い方が出来そうです!

以上、よろしくお願いします。