このたびめっちゃシンプルなガントチャートをスプレッドシートで作ってみました。
ガントチャートを使いたいんだけれども、あんまり機能が豊富すぎても使いこなせない。
複数人で共有したいから、スプレッドシートでシンプルなガントチャートが欲しい。
なんだかんだで自分で多少はカスタマイズしたいから、ガントチャートがどんな仕組みでできているか知りたい。
こんな人に向けて、シンプルなガントチャートをスプレッドシートで作る手順をわかりやすく解説しようと思います。
ご参考までに!
▼サンプルガントチャート(閲覧権限のみです)
https://docs.google.com/spreadsheets/d/1vnHlaEKd5fDdXzR97K1hnwRdv_Mkq5Ya78JX44HlwBM/edit?usp=sharing
機能、使い方
機能
・タスクは プロジェクト/親タスク/子タスク と3階層に分けられます。
・階層ごとに、異なる色で期間が塗りつぶされます。
・担当者欄をつけました
・ステータスでは 未着手/作業中/終了/待機 が選べます。
※後半で作り方を解説するので、細かいところは好きなようにカスタマイズしてください。
例えばタスクを4階層で入力できるようにしたい、とか。
基準日を入力
一番始めに入力するのはH1セルです。
ここに 2018/10/1
といった形でどの日にちからガントチャートに表示させるかを入力してください。
開始日と終了日
開始日と終了日は
10/1
と言った形で入力してください。自動で色が付きます。
参考にしたファイル
自分は最初はネットに落ちているエクセルのガントチャートを使おうかと思っており、以下の記事で紹介しているエクセルファイルを実際にダウンロードしていじってみました。
2つのファイルのいいところをパクらせていただき、複数人で共有できるようにスプレッドシートで作成しました。
作成手順
おおきくわけて3つに別れます。
①枠組みを作成(A列~G列)→②枠組みを作成(日付)→③条件付き書式の設定
①基礎枠組みを作成(A列~G列)
A列:No.を入力
No.の値は関数を使って入力すると便利です。
例えばA行4列目がNo.1であれば、「=ROW() – 3」と入力します。
「=ROW()」でその行の行数(何行目か)を取得できるので、↑の例だと「4-3=1」で1と出力されます。

これで入力すると何がいいかというと、途中に行を挿入した場合に、行のNo.が自動で正しいものに切り替わってくれます。
B,C,D列:タスク内容入力欄
今回はタスクを3階層に分けられるように作るんで、B,C,Dの3列分使いますが、例えば4階層にわけたいのであればこれに加えてE列もタスク内容入力欄にします。
作業としてはB,C列の幅をぐぐっと狭めるだけです。

B3,C3,D3セルは結合しておきましょう。
E列,F列:開始日と終了日、担当
ここは”開始日”、”終了日”、”担当者”と入力するだけです。

G列:ステータス
ここはプルダウンで「未着手/作業中/終了/待機」を選択できるようにします。

任意の行数、H列を選択したら、「データ>データの入力規則」を選択します。


条件:の箇所を「リストを直接指定」にし、空欄に「未着手,作業中,終了,待機」と入力します。
カンマは小文字で入力するよう気をつけてください。
もし待機がいらなくて「確認待ち」なんて項目を加えたかったら、「未着手,作業中,終了,確認待ち」と書き換えるだけです。

これでプルダウンで選択できるようになりました!
②基礎枠組みの作成(日付)
次に日付の枠を作成していきましょう。
基準日入力欄
まずはG1セルに「基準日を設定→」と入力し、H1セルに基準日を入力します。
基準日とは、このスプレッドシートの日付を何年何月何日から表示するか、の日付です。

I2セルは基準日のい日にちが入るので、参照しておきましょう。「=H1」と入力します。

その横は基準日(I2)にどんどん+1していきます。
日付を日のみで表示するよう設定

現在日付が2018/10/1と年月日の形で表示されてしまっているのですが、ここには日だけ表示されるようにしたいです。
表示形式>数字(一番上)>表示形式の詳細設定>カスタム数値形式
で、”d”と入力します。

これで日にちだけ表示されるようになりました。(ちなみにddと入力すると01のように2桁で表示されます)
曜日表示
次は日付ごとに曜日がわかるようにします。

各日付の一個下のセルにはTEXT関数を使って曜日を表示します。
「=TEXT(I2,”ddd”)」(TEXT(参照セル、”表示形式”))
と入力すると、I2セル(日付が入力されている)を曜日で表示できます。
月を表示
各日の一個上には何月かどうかを表示するようにしたいです。
ここはシンプルにMONTH()関数を使いましょう。

I2セルには基準日が「年/月/日」の形式でデータが入っているので、そこをMONTHで参照することで、I2セルの「月」だけが表示できます。
さて、月はすべての日付で表示すると見づらいので、○月1日のときにだけ月が表示されるようにしたいです。
ですので、I1セルの右(J1)には
「=IF(MONTH(I2)=MONTH(J2),“”,MONTH(J2))」と関数で記入します。
I2セルの月と、J2セルの月が等しかったら、J2セルには空白を入れて、等しくなかったらJ2セルの月を入れますよ。という意味です。
列の拡張

月、日、曜日ができたので、オートフィルで横に展開していきます。
すると困ったことにZ列までしかありません。
せめて2ヶ月分くらいは日付を表示したいです。拡張しましょう。

日付の列を選択肢、青色の適当な箇所を右クリック → 「18列を右に挿入」を選択します。

これで列を拡張できます。
必要なだけ増やして、オートフィルを使ってください。
曜日の土日に色をつける
曜日で土日は色をつけると週がわかりやすく見られます。
色をつけるには条件付き書式を使います。
まずは以下の範囲を選択します。(3行目の曜日が表示されている範囲)

表示形式>条件付き書式 を選択します。

セルの書式条件の設定 > カスタム数式 を選択します。

そこに 「=OR(I3=”土”,I3=”日”)」 と入力しましょう。
書式設定のスタイルから、土日を何色で表示するかどうかも設定できます。
これで、曜日の欄だけ土日の色を変更することができたので、土日の日付けにも色をつけます。

今度は2行目を選択して上のように設定します。(内容は3行目と範囲以外同じです)
③条件付き書式の設定

こういった形で入力があったとして、開始日と終了日に基づいてその箇所の色が塗りつぶされるように設定します。
また、プロジェクト、親タスク、子タスクがそれぞれ別の色で表示されるように設定します。
例のごとく、条件付き書式を使います。

条件付き書式では、プロジェクト用、親タスク用、子タスク用で3通りの設定をします。いずれも参照範囲は同じです。
プロジェクト用
カスタム数式に以下のように入力します。
「=AND(NOT(ISBLANK($B4)),$E4<=I$2,$F4>=I$2)」
(関数解説)
NOT(ISBLANK($B4))
NOT(ISBLANK($B4)) は、B列のセルが空白でないかどうか、を調べます。
B列はプロジェクト名の記入欄ですので、もしプロジェクト名が記入されていたらこの条件が満たされます。
($はオートフィルが使えるようにBを固定するためにつけています)
$E4<=I$2,$F4>=I$2
E列は開始日、F列は終了日の記入欄、2行目は日付の欄です。
ですので、この式で、「開始日<日付、終了日>日付」という条件にマッチするか調べられます。
最後にANDでくくって、これらをすべて満たすときだけ色をつけますよ、というふうに設定されています。
親タスク用
=AND(NOT(ISBLANK($C4)),$E4<=I$2,$F4>=I$2)

子タスク用
=AND(NOT(ISBLANK($D4)),$E4<=I$2,$F4>=I$2)

これで作業は完了です、お疲れ様でした!

おわり