スプレッドシートでガントチャートを作りたいけれど、専用ツールを増やすのは面倒ですよね。実はIF関数と条件付き書式だけで、日付を入れるだけでバーが伸びるガントチャートが作れます。この記事では、自動色付けの仕組みを5ステップで組み立てる手順を紹介します。あわせて進捗率表示・メンバー別の色分け・タイムラインビューとの使い分けまで一気通貫で解説します。
ガントチャートとは?スプレッドシートで作るメリット
ガントチャートとは、プロジェクトのタスクごとに「いつ始めて、いつ終わるか」を横棒で可視化した図表です。1910年代にヘンリー・ガントが考案したもので、いまも工程管理・進捗管理の定番として使われています。
スプレッドシートでガントチャートを作るメリットは、大きく3つあります。
- 追加コストがゼロ: JootoやAsanaのような専用ツールを契約しなくても、Googleアカウントさえあれば無料で使えます。
- 自由にカスタマイズできる: 列の追加、色のルール、進捗率の計算式など、業務に合わせて細かく調整できますよ。
- チーム共有が簡単: シートのリンクを共有すれば、リアルタイムで複数人が見られます。
逆に、スケジュールの規模が数百タスクを超える場合や、依存関係を厳密に管理したい場合は専用ツールのほうが向いています。中小規模のプロジェクトや個人のタスク管理には、スプレッドシートのガントチャートで十分な機能を実現できますよ。
完成イメージ:開始日入力でバーが自動で伸びる仕組み
これから作るガントチャートの完成イメージを、最初に共有しておきますね。
- 左側のテーブル: タスク名・開始日・終了日・担当者・進捗率を入力する一覧
- 右側のタイムライン: 日付ヘッダーが横に並び、タスクの開始日〜終了日の範囲だけセルが自動で塗りつぶされる
つまり、左側に日付を入力するだけで、右側の対応するセルが自動的に色付きバーになる仕組みです。手動でセルを塗る必要はありません。これを実現するのが「IF関数 + 条件付き書式」のカスタム数式です。
仕組みを噛み砕くと、こうなります。タイムラインの各セルが、自分の真上にある日付ヘッダーを見て、「自分はこのタスク行の開始日〜終了日の範囲内か?」を判定する仕組みです。範囲内ならTRUEを返し、TRUEのセルだけを条件付き書式で塗りつぶします。
それではここから、5ステップで実装していきましょう。
【基本編】スプレッドシートでガントチャートを作る5ステップ
ステップ1: タスク一覧表を作る
最初に、タスクを管理するためのテーブルを左側に作ります。最低限必要な列は4つです。
| 列 | 内容 | 例 |
|---|---|---|
| A列 | タスク名 | 要件定義、設計、実装 |
| B列 | 開始日 | 2026/04/01 |
| C列 | 終了日 | 2026/04/10 |
| D列 | 進捗率(応用編で使用) | 50(%) |
開始日と終了日は必ず「日付型」で入力してください。文字列で入力すると、後の数式が動かなくなります。セルを選択して「表示形式 → 数値 → 日付」を確認しておくと安心ですよ。
担当者列やフェーズ列は、応用編で色分けに使うので、用意しておいて損はありません。E列に担当者、F列に進捗率という配置でもOKです。本記事ではA〜D列の例で進めます。
ステップ2: タイムライン領域(日付ヘッダー)を作る
次に、右側のタイムライン領域を準備します。E列以降に日付ヘッダーを横方向に並べます。
- E1セル: タスクの最も早い開始日(例:
2026/04/01) - F1セル:
=E1+1 - 以降、F1をドラッグでコピーして必要な日数分まで伸ばす
これで、E1から右に向かって日付が1日ずつ増えていきます。プロジェクトが3か月なら90日分、1年なら365日分の列を作っておきます。
最初は広めに作っておきましょう。後で増やすこともできますが、最初から余裕を持たせるほうが楽ですよ。
ヘッダー行が長くなると見づらいので、表示形式を「M/D」(月/日)に変えると見やすくなります。E1〜AH1あたりまで選択して、表示形式 → 数値 → 「カスタム日付と時刻」で M/D を指定してください。
ステップ3: 条件付き書式でセルを自動色付けする
ここがガントチャートの核心です。タイムライン領域(E2:AH100など)に、IF関数のロジックをカスタム数式として登録します。
設定手順
- タイムライン領域を選択(例:
E2:AH100) - メニュー「表示形式」→「条件付き書式」
- 「書式ルール」のドロップダウンで カスタム数式 を選ぶ
- カスタム数式欄に以下を入力
=AND(E$1>=$B2, E$1<=$C2)
- 書式設定スタイルで好きな塗りつぶし色を選ぶ(例: 青系)
- 「完了」をクリック
これで、タイムライン領域のうち、開始日〜終了日の範囲内の日付セルだけが自動的に塗られます。
数式の意味を1行ずつ解説
=AND(E$1>=$B2, E$1<=$C2)
E$1: 自分のセルの真上にある日付ヘッダー。Eには$を付けない(列は相対参照)、1には$を付ける(行は絶対参照)$B2: 自分の行のB列にある開始日。Bには$を付ける(列は絶対参照)、2には$を付けない(行は相対参照)$C2: 自分の行のC列にある終了日。Bと同じく列だけ固定AND(...): 「日付ヘッダー >= 開始日」かつ「日付ヘッダー <= 終了日」が両方TRUEならTRUEを返す
つまり「自分の真上の日付」と「自分の行の開始日・終了日」を比較し、範囲内ならTRUEになります。条件付き書式の数式は、適用範囲の左上セル(ここではE2)を基準に相対展開される仕様です。だからこの1つの数式だけで、範囲内のすべてのセルで正しい比較が行われますよ。
絶対参照($)の付け方を間違えると色が塗られません。「行に固定したいか、列に固定したいか」を意識して$を配置するのがコツですよ。
カスタム数式や条件付き書式の基本的な仕組みはスプレッドシートの条件付き書式の使い方で詳しく解説しています。迷ったらそちらを参照してみてください。同じくIF関数の基本構文はスプレッドシートのIF関数の使い方が参考になりますよ。
ステップ4: 完成サンプルの数式と動作確認
ここまでの設定が終わったら、左側のテーブルに実際のタスクを入力して動作確認しましょう。
| A | B | C |
|---|---|---|
| 要件定義 | 2026/04/01 | 2026/04/05 |
| 設計 | 2026/04/06 | 2026/04/12 |
| 実装 | 2026/04/13 | 2026/04/25 |
| テスト | 2026/04/26 | 2026/04/30 |
入力すると、右側のタイムラインで対応する日付範囲のセルが自動で塗られます。終了日を変えれば、塗られる範囲もリアルタイムで変わるはずです。
色が塗られない場合は、後ほど紹介するトラブル対処の節で原因を特定できますよ。
ステップ5: テンプレ化と微調整
完成したシートはテンプレ化して、他のプロジェクトでも使い回せるようにしておきましょう。
- シートのコピー: タブを右クリック →「コピーを作成」で別シートに複製できます
- テーブル全体のコピー: 別ファイルとして「ファイル → コピーを作成」で保存し、新規プロジェクト用に流用
- 見栄えの調整: 列幅を均等に、罫線を細く、ヘッダー行・タスク名列の固定(表示 → 固定 → 1行・1列)
ここまでで基本のガントチャートは完成です。ここから先は応用編として、進捗率の表示・メンバー別の色分けに進みましょう。
【応用編】進捗率を表示するガントチャートに進化させる
基本編では「タスク期間中はずっと同じ色」でしたが、進捗率に応じて「終わった部分は濃い色、これからの部分は薄い色」と塗り分けたい場合のやり方です。
進捗率列の追加
D列に進捗率(0〜100の数値)を入力する列を追加します。
| A | B | C | D |
|---|---|---|---|
| 要件定義 | 2026/04/01 | 2026/04/05 | 100 |
| 設計 | 2026/04/06 | 2026/04/12 | 60 |
| 実装 | 2026/04/13 | 2026/04/25 | 0 |
条件付き書式を2ルール作る
「終わった部分(濃い色)」と「これからの部分(薄い色)」を分けるには、条件付き書式のルールを2つ作ります。
ルール1(濃い色:終わった部分)
=AND(E$1>=$B2, E$1<=$B2+($C2-$B2)*$D2/100)
数式の $B2 + ($C2 - $B2) * $D2/100 は、「タスク期間のうち進捗率分の地点にあたる日付」を計算します。たとえば4/1〜4/10のタスクで進捗60%なら、約4/6までが濃い色の範囲になります(4/10−4/1=9日 × 60% ≒ 5.4日後)。
ルール2(薄い色:これからの部分)
=AND(E$1>=$B2, E$1<=$C2)
これは基本編と同じ判定です。タスク期間全体をカバーします。
ルールの優先順位を整える
条件付き書式は、リストの上から順に評価され、TRUEになった最初のルールが適用されます。つまり「濃い色ルール」を上、「薄い色ルール」を下にする必要があります。
条件付き書式のダイアログでは、ルールをドラッグして並び順を変えられます。濃い色を上に、薄い色を下に並べておきましょう。
これで、進捗60%のタスクは前半が濃い色・後半が薄い色になり、進捗率がひと目で分かるようになりますよ。
【応用編】メンバー別・タスク種別に色分けする方法
担当者別やフェーズ別にバーの色を分けると、誰がどの時期に動いているかが一目で分かります。
担当者列の追加
タイムラインの左側、進捗率の隣に担当者列を追加します。基本編から続けて作る場合は、列の構成を以下のように整え直しましょう。
| 列 | 内容 | 例 |
|---|---|---|
| A列 | タスク名 | 要件定義 |
| B列 | 開始日 | 2026/04/01 |
| C列 | 終了日 | 2026/04/05 |
| D列 | 進捗率 | 100 |
| E列 | 担当者 | Aさん |
| F列以降 | タイムライン | 日付ヘッダー |
つまり、これまでE列から始めていた日付ヘッダーをF列に1つずらします。E1セルが空になるので、E1〜E最終行までを担当者列に転用してください。タイムラインの数式中の「E$1」を「F$1」に書き換えるのがポイントです。
担当者ごとに条件付き書式ルールを追加
担当者の人数分、条件付き書式のルールを作ります。3人なら3ルールです。タイムライン領域は F2:AI100 のように、F列以降に変わる点に注意してください。
Aさん用(青)
=AND(F$1>=$B2, F$1<=$C2, $E2="Aさん")
Bさん用(緑)
=AND(F$1>=$B2, F$1<=$C2, $E2="Bさん")
Cさん用(橙)
=AND(F$1>=$B2, F$1<=$C2, $E2="Cさん")
数式の $E2="Aさん" の部分が、担当者名で色を振り分ける条件です。担当者名の代わりに「設計」「実装」のようなフェーズ名で分ければ、フェーズ別の色分けにもできますよ。
なお、進捗率の濃淡と担当者の色分けを併用すると、ルールが多くなって優先順位の調整が複雑になります。最初は「色分けだけ」「進捗率だけ」のどちらかに絞り、慣れたら統合するのがおすすめです。
タイムラインビュー(新機能)との使い分け
Googleスプレッドシートには、2022年から タイムラインビュー という専用機能が追加されています。これは、テーブルから自動的にガントチャート風のビューを生成してくれる機能です。
タイムラインビューの使い方(簡単な紹介)
- タスクテーブル(タスク名・開始日・終了日の列)を選択
- メニュー「挿入」→「タイムライン」
- 列のマッピング(カードのタイトル・開始日・終了日など)を確認
- 自動的にタイムラインビューが生成される
条件付き書式方式との比較
| 観点 | タイムラインビュー | 条件付き書式方式 |
|---|---|---|
| 設定の手間 | ほぼゼロ(テーブル指定のみ) | 数式と書式の設定が必要 |
| 見栄え | きれい(カード型UI) | シンプルな塗りつぶし |
| カスタマイズ性 | 限定的 | 自由度が高い |
| 進捗率の濃淡表示 | 不可 | 可能(応用編で紹介) |
| 週末グレーアウト | 不可 | 可能(後述) |
| 印刷・PDF出力 | レイアウト調整が難しい | レイアウトを自由に作れる |
| 操作性 | ドラッグで日付変更できる | テーブル直接編集 |
使い分けの目安
- タイムラインビュー向き: 軽量プロジェクト、見栄え重視、操作性重視、共有しやすさ重視
- 条件付き書式方式向き: 印刷・PDF配布が前提、独自ルール(祝日表示・進捗率の濃淡・遅延ハイライト)が欲しい、社内テンプレ化したい
両方を試してみて、案件の性質に合うほうを選ぶのが良いですよ。シンプルなプロジェクトはタイムラインビュー、こだわりが必要なプロジェクトは条件付き書式方式、と使い分けるのが現実的です。
ガントチャート運用でよくあるトラブルと対処法
トラブル1: 色が塗られない
最も多いトラブルです。原因は3パターンに分かれます。
- 絶対参照(
$)の付け方ミス:D$1と$B2の$の位置が逆になっていることが多いです。「行を固定したいか、列を固定したいか」を意識して見直してみてください。 - 適用範囲がずれている: 条件付き書式の「範囲に適用」がタイムライン領域と一致しているか確認しましょう。
- 日付セルが文字列になっている: 開始日・終了日のセルが日付型ではなく文字列だと、比較が動きません。表示形式 → 数値 → 日付を再適用してください。
トラブル2: 進捗率の濃淡が想定通りにならない
応用編で2ルール作った場合、優先順位が逆になっていると濃い色が表示されません。条件付き書式ダイアログで「濃い色ルール」が上に来ているか確認しましょう。
トラブル3: 列を増やすたびに数式を作り直す必要がある
最初から適用範囲を広めに取っておくのが対処法です。E2:ZZ200 のように余裕を持たせておけば、行・列を追加しても自動的にルールが効きます。
トラブル4: 週末・祝日をグレーアウトしたい
タイムライン領域に追加で条件付き書式を設定します。
週末グレーアウト(カスタム数式)
=OR(WEEKDAY(E$1,2)=6, WEEKDAY(E$1,2)=7)
WEEKDAY関数(曜日番号を返す関数)の第2引数 2 は「月曜=1、日曜=7」の番号体系を意味します。土曜=6、日曜=7に該当する列をグレーで塗りつぶせます。
祝日グレーアウト
別シート 祝日!A:A に祝日リストを用意し、MATCH関数で判定します。
=ISNUMBER(MATCH(E$1, 祝日!$A:$A, 0))
MATCH関数(範囲内で一致する位置を返す関数)でヒットすればISNUMBER(数値かどうかを判定する関数)がTRUEを返し、その日付列をグレーアウトします。
トラブル5: 遅延しているタスクをハイライトしたい
「終了日が今日より前なのに進捗率が100%未満」のタスクを赤くハイライトする場合、タスク名列(A列)に対して条件付き書式を追加します。
=AND($C2<TODAY(), $D2<100)
これで、遅延タスクのタスク名セルが赤くなり、ひと目で気づけるようになりますよ。
トラブル6: タスクが多くて見づらい
- 行・列を固定: 表示 → 固定 → 1行(日付ヘッダー)と1列(タスク名)を固定すると、スクロールしてもヘッダーが見えます
- ズーム切り替え: 列幅を狭めて週単位の表示に切り替える、または列を1週間ごとに集約する
タスク数が30を超えるあたりから、タイムラインビューへの切り替えも検討する価値がありますよ。
関連記事
スプレッドシートでのプロジェクト管理・スケジュール管理をさらに深めたい方は、あわせて次の記事もご覧ください。
- スプレッドシートのタイムラインビューの使い方|関数ゼロでガントチャート風スケジュール管理:本記事で触れたタイムラインビューを、関数なしで使う手順を詳しく解説しています。
- スプレッドシートのタスク・進捗管理表を作る方法|チェックボックス×COUNTIF×条件付き書式で進捗率を自動表示:進捗率を自動計算する管理表の作り方を紹介しています。
- スプレッドシートのチェックボックスで進捗管理シートを作る方法|COUNTIFで完了率を自動計算:チェックボックスで完了率を可視化する仕組みをまとめています。
まとめ:スプレッドシートのガントチャートはここまでできる
スプレッドシートのIF関数 + 条件付き書式を組み合わせれば、無料で、追加ツールなしで、開始日と終了日を入れるだけで自動色付けされるガントチャートが作れます。今日紹介した内容を整理すると、こうなります。
- 基本編(5ステップ): タスク一覧 → 日付ヘッダー → カスタム数式
=AND(E$1>=$B2, E$1<=$C2)→ 動作確認 → テンプレ化 - 応用編(進捗率): 2ルールに分けて、濃い色を上・薄い色を下に並べる
- 応用編(色分け): 担当者列を追加し、担当者ごとにルールを増やす
- タイムラインビュー: 軽量・操作性重視ならこちら、カスタマイズ重視なら条件付き書式方式
- トラブル対処: 絶対参照のミス、ルール優先順位、日付セルの型をまず確認
最初は基本編の5ステップから始めて、慣れてきたら進捗率や色分けに進むのがおすすめです。プロジェクトごとにテンプレ化しておけば、新しい案件のたびに作り直す必要もありません。
同じ「日付軸 × 条件付き書式」のパターンは、勤怠管理表やシフト表など他の業務テンプレでも応用できます。続けて読みたい方はスプレッドシートで勤怠管理表を作る方法、可視化のバリエーションを広げたい方はスプレッドシートのグラフ作成完全ガイドもぜひ覗いてみてくださいね。
