Googleスプレッドシートでガントチャートを自動生成するアドオンを作ってみた

会社にG Suite(Googleグループウェアツール)が導入されたこともあって、Googleドキュメントを使用することが増えてきました。そこで、ガントチャートを生成するツールを自作してみました。有り難いことに、GoogleスプレッドシートJavaScriptで制御が可能です。

※2018/2/20更新: "親タスクの自動反映"機能を実装しました。

※2018/3/26更新: "ガントチャートの表示期間変更"機能を実装しました。

※2021/02/20更新: プレミアム会員用の機能を追加開発しました。

 

f:id:takuya0206:20171223222331g:plain

Gantt Chart Generator (ガントチャートジェネレーター)

WBS (*Work Breakdown Structure) をベースにガントチャートを自動生成してくれます。小規模から中規模のプロジェクトの進行管理や、大規模プロジェクトの叩き台のスケジュールを引くときなどに活用できると思います。以下、仕様や活用法を記述します。

 

インストール

Gantt Chart Generator - Google Sheets add-on

上記にPCからアクセスして、Googleアカウントにログインし、「インストール」をクリック。

※ アドオンをアップデートした際に、システム的な理由でURLが変わってしまいました。ご不便をおかけして申し訳ありません。

プレミアム機能

 プレミアム会員専用に新たに機能開発をしております。興味のある方はこちらよりお申し込みください。 → Gantt Chart Generator Premium

Gantt Chart Generatorで出来ること

  • タスクを5階層までブレイクダウン
  • 入力した日付に合わせてガントチャートの自動色塗り
  • 親タスクに紐づく工数の合計を自動計算
  • 入力した進捗に合わせてガントチャートにバーを自動反映
  • 親タスクの進捗を工数のウエイトに合わせて自動計算
  • プログラムによる自動計算と自身が入力する関数の共存
  • 祝日の自由設定

 

仕様

アドオンメニュー
目次 動作結果
ガントチャートの作成 scheduleシート、holidayシートを作成
サイドバーの表示 サイドバーを表示

 

scheudleシート
目次 入力 動作結果
階層別 タスク一覧 文字列 IDが付与
予定開始
予定終了
日付 ガントチャートに青色で反映
予定終了 日付 ガントチャートにオレンジ色で反映
実際開始
実際終了
日付 ガントチャートに緑色で反映(*デフォルト非表示)
工数(予) 数字 親タスクへ自動集計(子タスクの工数を合計する)
進捗 数字 ガントチャートにバーが反映
工数(予)に数字があれば親タスク進捗が自動計算

 

holidayシート
目次 入力 動作結果
A列 日付 ガントチャートに縦ラインがピンクで反映

 

サイドバー
目次 動作結果
ガントチャートの操作

ガントチャートの始まる日付を変更

ガントチャートの表示期間を週単位で変更

ガントチャートの表示単位を「日」「週」で変更 ※プレミアム会員のみ

ガントチャートの手動更新

全ての親タスクの値を再計算

全てのタスクのガントチャートを更新

進捗別の色表記 完了を青色、進行中を黄色、遅れを赤色で表す
親タスクの自動反映 子タスクの総期間を自動で表示
アサインの空き状況の確認 ガントチャートを担当者ごとにソート ※プレミアム会員のみ
ガントチャートの初期化 scheduleシートとholidayシートを初期化

 

お薦めの活用法

  • プロジェクト名を一番上の階層に置き、全てのタスクを紐付ける(プロジェクト全体の進捗が自動計算できる)
  • タスクは親タスク・子タスク・孫タスクと細かくブレイクダウンする
  • 日次もしくは週次で進捗を追いかけるタスクに予定開始 / 終了を入れる
  • 総合的に進捗を見たいときに「親タスクの自動反映」を使う。*普段はオフ
  • 日付入力はworkday関数を使う(holidayシートA列と工数(予)を参照する)
  • 工数は人日で入れる
  • 進捗は「実際開始 / 終了」もしくは「進捗」を使って追いかける
  • 「進捗」を使う場合、「進捗別の色表記」をオンにする
  • 数式を使って「進捗」の数字を更新すると、ガントチャートへは自動反映されないので、そのときは「ガントチャートの手動更新」を行う(自動反映はセルを編集したとき、もしくは日次の自動更新に行われる)

 

制約

  • シート名を変更しない
  • 1行目より上に行の挿入をしない
  • 開始日と終了日の行の間に行を挿入しない
  • 非表示の2行目を編集 / 削除しない
  • 「進捗」より右に列を挿入しない
  • ガントチャートの日付を編集しない

 

よくある質問

 

  • 色塗り機能が急に動かなくなりました

このアドオンは通知なしでアップデートされることがあります。 多くの場合、ガントチャートの開始日を変更することによって新しいバージョンをアクティベートできますのでお試しください。それでも色塗り機能が動かない場合、新しいスプレッドシートを作成し、アドオンを1から動かしてみてください。恐れ入りますが、データは旧シートからコピー&ペーストで復旧をお願いします。

 

  • サイドバーを使おうとしたらsystem errorとなるのですが...

権限に関する問題が発生している可能性があります。同様の事例がいくつかあったのですが、①ブラウザのキャッシュを削除する、②複数のグーグルアカウントが同時にブラウザで使われている場合は一つを除いてログアウトする、③シークレットブラウザ(キャッシュのない状況下)で開き直してみる、などで回復したと聞いています。一度お試しください。

 

  • 祝日が ”2017/12/31 07:00 元旦“ のように表示されるのですが...

既知のバグです。アドオンメニューから何度か「ガントチャートの作成」をして頂くと直ります。もしそれでも直らない場合は、手動で日付を編集をして頂けますか?その際、”2018/1/1 00:00 元旦“ のように時間を0時に設定してください。ご迷惑をおかけしますがよろしくお願いします。

 

PCのタイムゾーンスプレッドシートタイムゾーンが一致していない可能性があります。同じタイムゾーンに揃っていることを確認して頂けますか。※スプレッドシートのタイムゾーンの確認の仕方

 

サイドバーから表示期間が週単位で任意設定できるようになっています。ただし、列数が多いとスプレッドシートの処理速度が遅くなるため、期間を極端に長くするのはお薦めしません。

 

現状、色を自由に変える機能はありません。既存機能で色に関わるものでは、サイドバーの「進捗別の色表記」にチェックを入れることによって、下記のように色を自動で切り替えることができます。

・達成度100% or タスク開始日前 ... 青色
・タスク開始日後かつ進捗オンスケ ... 黄色
・タスク開始日後かつ進捗遅延 ... 赤色

 

  • 親タスクの進捗が0のままになります

親タスクの進捗は子タスクの工数の加重平均を基に算出します。つまり、工数を入力しない限り、親タスク進捗は常に0を表示します。また、工数には「予」と「実」の2列があります。「実」に関しては、プログラムと関わっておらず、プロジェクト終了後に振り返りをするために、実工数を記録しておくスペースです。「予」が親タスク進捗の加重平均を出すための役割をしています。 

 

以上です。ソースコードGithubに公開しているので興味がある人はどうぞ。ただし、プレミアム会員用に追加開発した部分は公開していないため、ソースコードは最新の状態ではないことにご注意ください。どうガントチャート・ジェネレーターを引き続きよろしくお願いします。