Googleスプレッドシートでガントチャートツールを作成しました

# １．はじめに
プロジェクト管理で利用することを想定したガントチャートツールをGoogleスプレッドシートで作成しました。

小規模な案件を管理する際に「自分にとって使い勝手がよいものを利用したい」と思ったのがツール作成のきっかけです。

ある程度、汎用的に作ったのでニーズがあればと思い、公開に至りました。

活用の場があればぜひ使ってみていただければと思います。

![SnapCrab_NoName_2023-9-21_16-14-20_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/23685d8d-ed9a-3565-1eb0-24e8cab052ed.png)

# ２．想定している利⽤シーン
* （RedmineやJIRA等）本格的なプロジェクト管理ツールを利⽤するには過剰な規模のプロジェクトの管理
* 開始⽇〜終了⽇＋進捗率による（簡易的な）進捗管理でOKなプロジェクトの管理

# ３．主な機能
* 日ベースのガントチャート
* 最大6階層までのタスク設定
* 開始期間～終了期間の自動設定（期間の再設定も可）
* 進捗率（予定／実績）の管理
* 土日祝祭日対応
* 簡易的なアーンド・バリュー・マネジメントによるプロジェクト状況の可視化

# ４．各シート概要
|NO|シート名|概要|
|--|--|--|
|1|ダッシュボード|開始～終了期間の設定や、アーンド・バリュー情報を表示|
|2|ガントチャート|ガントチャート本体|
|3|アーンドバリュー|アーンドバリュー分析の過去履歴を管理|
|4|holidays|祝⽇を管理|

# ５．利用方法（事前準備）
* 以下のリンクをクリックしてスプレッドシートを開き、「ファイル」メニューの「コピーを作成」からコピーを作成してください
    * [【雛形】ガントチャート](https://docs.google.com/spreadsheets/d/1uetF7GiU29AkRdRvLJ8EoDWIMX0vcEwILc3quCu2GZI/edit?usp=sharing)

![SnapCrab_NoName_2023-9-21_16-53-47_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/85119e4a-7114-9fe5-d295-610cc601a30d.png)
![SnapCrab_NoName_2023-9-21_16-53-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/0f7ea2a9-c2da-bf7d-554c-2f61bff27c26.png)

* 「ガントチャート」シートの左上にある「WBS消去」ボタンを押下。初回実施の場合は承認が必要なので許可します

![SnapCrab_NoName_2023-9-21_16-49-19_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/43858201-1a8d-aa38-e604-ef9d800f398d.png)
![SnapCrab_NoName_2023-9-21_16-49-29_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/e3935083-3089-7063-bc7b-6054104633cf.png)
![SnapCrab_NoName_2023-9-21_16-49-53_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/eb3c03e7-9fa3-5172-f3f0-e000d7c9bd2c.png)
![SnapCrab_NoName_2023-9-21_16-50-9_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/0ba3d50d-4fa4-0614-cc49-d7770dab04ae.png)

* もう⼀度「WBS消去」ボタンを押下すると確認のポップアップが表⽰されるので「OK」を選択します

![SnapCrab_NoName_2023-9-21_16-48-48_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/cc07355e-7bac-fb89-c96e-ecf1b6a7d0b7.png)

* WBSの各項⽬（背景⽔⾊のカラム）がクリアされて完了メッセージが表⽰されます

![SnapCrab_NoName_2023-9-22_14-3-7_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/5f4d7f02-85b3-9302-e5fd-d2442e747147.png)

* 「アーンドバリュー」シートにある「履歴消去」ボタンを押下すると確認のポップアップが表⽰されるので「OK」を選択します

![SnapCrab_NoName_2023-9-22_14-4-24_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/c2fe09b7-d891-7e5a-1461-a44d8542b7ff.png)

* アーンドバリューの履歴がクリアされて完了メッセージが表⽰されます

![SnapCrab_NoName_2023-9-22_14-5-16_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/c3df9a1c-8dae-d050-9ecd-79a61c19985a.png)

これで準備完了です。

# ６．利用方法（ガントチャート）
### 表示期間の設定
* 「ダッシュボード」シートにある以下の2項⽬に日付を入力し「gantt再作成」ボタンを押下します
    * 開始⽇（A3セル）︓ガントチャートに表⽰する期間（開始⽇）
    * 終了⽇（B3セル）︓ガントチャートに表⽰する期間（終了⽇）

![SnapCrab_NoName_2023-9-25_13-37-0_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/cb32ece0-4e72-cbb4-b801-de7f74c1610f.png)

* 確認のポップアップが表⽰されるので「OK」を選択します

![SnapCrab_NoName_2023-9-25_13-38-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/d850735c-5205-775f-3fe8-a6ec7eda8c59.png)

* 指定した開始⽇〜終了⽇でガントチャート期間が作成され完了メッセージが表⽰されます

![SnapCrab_NoName_2023-9-25_13-39-32_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/36d761ad-d23a-a205-7bcd-249c53114089.png)

※ガントチャートに表⽰する期間を変更したい場合は再度この⼿順を実施します。記⼊済みのWBSタスクはそのままで期間表⽰のみ更新されます

※「gantt再作成」ボタンを押下することで「最新の祝日を取得」等、定期実行が必要な処理をトリガーに自動登録します

### WBSタスクの追加
* 「ガントチャート」シートの（背景⽔⾊のカラム）に必要な情報を記⼊します 

|NO|項目|内容|備考|
|--|--|--|--|
|1|ID|タスクを一意に特定するID|形式の指定は特になし|
|2|第1階層|タスクのレベル1項目|例：設計|
|3|第2階層|タスクのレベル2項目|例：AAA機能|
|4|第3階層|タスクのレベル3項目|例：Design Doc作成|
|5|メモ1|メモ欄1|
|6|メモ2|メモ欄2|
|7|メモ3|メモ欄3|
|8|担当|担当者の氏名|
|9|開始日|タスクの開始予定日|
|10|終了日|タスクの終了予定日|
|11|進捗率（実積）|タスクの現在の進捗率|パーセントで記入|

* 必要な情報を記⼊すると背景緑⾊のカラムに情報が⾃動的に補完されます  

![SnapCrab_NoName_2023-9-25_11-41-45_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/1414b307-7a97-0a33-64fb-d9863521941e.png)

* 自動補完されるカラム（背景緑色）は以下の通りです

|NO|項目|内容|備考|
|--|--|--|--|
|1|営業日|開始日～終了日における（土日祝を除いた）営業日数|
|2|進捗率（予定）|開始日～終了日における経過日数を営業日で除算した値（パーセント）|例：開始日（4/3）～終了日（4/5）の場合、4/4時点の進捗率（予定）は66.67％|
|3|ステータス|進捗率（実積）に入力された値により以下の値を自動で設定します<br>・進捗率（実積）が100%：完了<br>・進捗率（実積）が1%～99%：対応中<br>・進捗率（実積）が0% or ブランク：未着手||
|4|詳細|進捗率（予定）と進捗率（実積）の値により以下の値を自動で設定します<br>・予定 ＜ 実積：前倒し<br>・予定 ＝ 実積：オンスケ<br>・予定 ＞ 実積：遅延||
|5|T列以降|開始日～終了日の期間にあるセルの背景色を塗りつぶしで表現します|

*  （参考）⾏を追加
    *  選択しているセルの⾏数分の⾏を新規追加する機能です。数式も埋め込んだ状態で⾏を追加します
*  （参考）⾏を削除
    *  選択しているセルの⾏数分の⾏を削除する機能です。

# ７．利用方法（アーンドバリュー）
### アーンドバリュー履歴
* 1日1回の自動バッチでデータを取得＆シートにA列〜E列に反映します。「手動データ取得」ボタンを押下することで任意のタイミングでのデータ取得も可能です
    * A列：データ取得⽇
    * B列：BAC
    * C列：PV
    * D列：EV
    * E列：SPI 

![SnapCrab_NoName_2023-9-25_13-41-56_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/5041954a-64f0-f12e-2650-67b2870e5713.png)

### グラフ（BAC/PV/EV）
* アーンドバリュー履歴のBAC/PV/EVを折れ線グラフで表現したものです。
    * BAC：プロジェクトの総工数（人日）
    * PV：現時点で完了していることが予定される積算工数（人日） 
    * EV：現時点で完了している実際の積算工数（人日） 
※EV>=PVであればプロジェクト全体の進捗は順調とみなすことができます

![SnapCrab_NoName_2023-9-25_13-42-3_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/38c5dc72-8a11-1b21-195d-97ad1c6154ca.png)

### グラフ（SPI）
* アーンドバリュー履歴のSPI（スケジュール効率指数）を折れ線グラフで表現したものです。
    * SPI ＞ 1.00：前倒し  
    * SPI ＝ 1.00：オンスケ  
    * SPI ＜ 1.00：遅延  
※プロジェクト規模にもよりますが、SPIが1.00を下回っている状況が続く場合、何らかの対策が必要です

![SnapCrab_NoName_2023-9-25_13-42-9_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/b34973a2-c6f0-0399-a3eb-0d711ea4033a.png)

### 補足
* アーンドバリュー情報は「ダッシュボード」シートからも確認・更新することが可能です

![SnapCrab_NoName_2023-9-25_13-42-37_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106992/23aa3427-5b1f-2df1-79ea-687f81795157.png)