gantt

excelのガントチャートの作り方|条件付き書式で線を引く

2026年10月3日 ・ Pinateca編集部

excelのガントチャートの作り方を調べている人が本当に知りたいのは、線の引き方そのものではなく、引いたあとに毎週直し続けられる形にする方法です。図形を手で並べる方法でも線は引けますが、日程が1日動いたときに全部を引き直すことになります。ここでは、条件付き書式を使って日付から自動で線が出る形を作る手順を、決めることの整理から、土日と祝日の色分け、予定と実績の2本立てまで順に並べます。あわせて、エクセルで作り続けたときにどこで詰まるのかも書きます。

ガントチャートは日付の横並びと色の塗り分けでできている

エクセルのガントチャートは、見た目ほど複雑な仕組みではありません。左側にタスクの一覧、右側に日付を1列ずつ横に並べ、開始日と終了日のあいだに入る列だけを色で塗る。この3つだけです。塗る作業を手でやるか、条件付き書式に任せるかの違いしかありません。

手で塗る方法は、最初の1枚を作るのがいちばん速いです。セルを選んで塗りつぶすだけなので、数式を書く必要がありません。ただし、開始日が2日ずれた瞬間に、塗った範囲を消して別の範囲を塗り直す作業が発生します。タスクが30件あって、そのうち10件が動いたら、10行分を手で直します。週1回これをやると、1年で50回になります。

条件付き書式に任せる方法は、最初に数式を1回書きます。書いたあとは、開始日と終了日のセルの値を直せば、線が自動で移動します。塗り直す作業がなくなるので、更新にかかる時間が変わります。作り方を調べている段階であれば、こちらを選んでおくほうが後が楽です。

もう1つの選択肢として、エクセルの積み上げ横棒グラフを使う方法もあります。開始日を透明にして期間だけを見せる形で、印刷したときの見た目はきれいになります。ただし、タスクを1件足すたびにグラフの範囲を広げる必要があり、日々の更新には向きません。報告用に1枚だけ作るときの選択肢として覚えておく程度で十分です。

作り始める前に決める3つのこと

手を動かす前に決めておかないと、途中で作り直しになる項目が3つあります。

1つめは日付の単位です。 1列を1日にするか、1週にするか、1か月にするかで、表の横幅が変わります。3か月のプロジェクトを1日単位で引くと、列は90本を超えます。画面には収まりませんが、横スクロールで見る前提なら問題ありません。半年を超える計画なら、1列を1週にしたほうが全体が見えます。判断の基準は、進捗を確認する頻度です。毎日朝会で見るなら1日単位、週1回の定例で見るなら1週単位が合います。途中で単位を変えると条件付き書式の数式を全部書き直すことになるので、ここは最初に決めます。

2つめはタスクの粒度です。 1行に何を書くかという話です。細かく分けすぎると行数が増えて、更新する側が続きません。粗すぎると、半分終わっているのか9割終わっているのかが見えません。目安として、1行の作業期間が1日を下回るなら細かすぎ、1か月を超えるなら粗すぎます。3日から10日のあいだに収まる単位に分けると、週1回の更新で進みが見えます。

3つめは誰が更新するかです。 作った本人だけが更新する形にすると、その人が休んだ週に表が止まります。担当者が自分の行を直す形にするなら、ファイルの置き場所と、同時に開いたときの扱いを先に決めておく必要があります。1つのファイルを複数人で同時に書き換える形は、置き場所と設定によって挙動が変わるため、作る前に一度試しておくほうが安全です。

この3つを決めずに作り始めると、線が引けたあとに「この単位だと使えない」と気付くことになります。

手順1: 表の骨組みとカレンダーの行を作る

まず左側の列を作ります。必要な列は、タスク名、担当者、開始日、終了日、日数、進捗率の6つです。日数は終了日から開始日を引いて求めますが、土日を除いた営業日で数えたい場合はNETWORKDAYS関数を使います。祝日の一覧を別のシートに用意して第3引数に渡すと、祝日も除いて数えられます。

次に日付の行を作ります。A列からF列までを左側の表に使ったとして、G列以降に日付を並べます。G3セルに開始日を入れ、H3セルに「=G3+1」と入れて右へコピーすれば、1日ずつ増える行ができます。1列を1週にする場合は「=G3+7」にします。

日付の行の上に、もう1行を足して月を表示させると見やすくなります。G2セルに「=G3」と入れ、セルの書式設定で表示形式を「m月」にします。同じ月が続くと同じ表示が並ぶので、条件付き書式で「左のセルと月が違うときだけ表示する」形にするか、割り切って並べたままにします。

日付の列の幅は、2から3程度に狭くします。列を選んで幅を指定すれば一度に変えられます。ここを既定の幅のままにすると、3か月分で横に長くなりすぎて全体が見えません。

最後にウィンドウ枠の固定をかけます。日付の行とタスク名の列を固定しておかないと、右にスクロールしたときにどの行を見ているのか分からなくなります。固定する位置は、左側の表の右下のセルの1つ右下です。ここを選んでから固定をかけます。この設定を飛ばすと、行数が増えたときに使い物にならなくなります。

手順2: 条件付き書式で線を引く

ここが作り方の中心です。日付の列の範囲を全部選んでから、条件付き書式の新しいルールを作り、「数式を使用して、書式設定するセルを決定」を選びます。

入れる数式は次の形です。左上のセルがG4、開始日がC列、終了日がD列、日付の行が3行目だとします。

=AND($C4<=G$3, $D4>=G$3)

この数式が意味しているのは「この列の日付が、開始日以降で終了日以前なら真」ということです。真になったセルに塗りつぶしの色を設定すれば、期間のぶんだけ色が並んで線になります。

数式の書き方で最も間違いが多いのは、ドル記号の位置です。開始日と終了日は列を固定するので $C4 $D4 と書きます。日付は行を固定するので G$3 と書きます。ここを両方とも固定してしまうと、1つのセルだけを見て全部を判定することになり、表全体が塗られるか、まったく塗られないかのどちらかになります。うまく線が出ないときは、まずここを確かめます。

範囲の指定も間違いやすい箇所です。条件付き書式を設定するときに選んだ範囲の左上のセルを基準に数式を書く必要があります。G4から選んだのに数式をH4基準で書くと、線が1列ずれます。ずれているときは、選択範囲を確認してからルールを編集します。

線が出たら、色を決めます。1色だけで引くのが基本ですが、担当者ごとや工程ごとに色を分けたい場合は、条件付き書式のルールを複数作り、それぞれに条件を足します。たとえば担当者がE列にあるとして、次のように書きます。

=AND($C4<=G$3, $D4>=G$3, $E4="設計")

ルールの数が増えると管理が面倒になるので、色分けは3種類程度までにとどめておくほうが続きます。

手順3: 土日と祝日を自動で色分けする

日付の列に土日と祝日の色を入れると、実際に作業できる日が見えるようになります。これも条件付き書式で作ります。

土日は WEEKDAY 関数で判定します。第2引数に2を指定すると月曜が1、日曜が7になるので、6以上なら土日です。日付の行を含めた範囲を選んで、次の数式でルールを作ります。

=WEEKDAY(G$3,2)>=6

祝日は、別のシートに日付の一覧を作っておき、COUNTIF 関数で照合します。祝日シートのA列に日付が並んでいるとして、次の形です。

=COUNTIF(祝日!$A:$A, G$3)>0

祝日の一覧は自分で入力することになります。年に1回、翌年分を足す手間が発生しますが、内閣府が公表している一覧を写せば済みます。会社の休業日もここに足しておくと、実際に動ける日と一致します。

ルールの並び順に注意が必要です。条件付き書式は上から順に評価されるので、タスクの線のルールより土日のルールを上に置くと、線が土日で途切れて見えます。逆に線のルールを上に置くと、土日にも線が引かれます。どちらが見やすいかは表の使い方によりますが、工程の連続を見たいなら線を上に、稼働日を数えたいなら土日を上に置きます。両方を同時に見せたい場合は、土日の色を薄くして線の色を濃くし、線のルールを上に置いて、塗りつぶしではなく罫線で土日を示す形にします。

手順4: 予定と実績の2本を並べる

ガントチャートが機能しなくなる最大の理由は、予定だけを書いて実績を書かないことです。予定の線だけの表は、遅れているかどうかを教えてくれません。

2本立てにする方法は2つあります。1つは、1つのタスクを2行に分けて、上の行に予定、下の行に実績を書く形です。開始日と終了日の列を予定用と実績用でそれぞれ持ち、条件付き書式のルールも2つ作ります。行数が2倍になりますが、ずれが視覚的にはっきり出ます。

もう1つは、1行のまま進捗率で表す形です。進捗率の列を作り、線の左から進捗率のぶんだけ色を濃くします。数式は次のようになります。

=AND($C4<=G$3, G$3<=$C4+($D4-$C4)*$F4)

F列に進捗率が入っているとして、開始日から期間×進捗率のぶんだけを別の色で塗るという形です。行数は増えませんが、予定と実績のずれは読み取りにくくなります。

どちらを選ぶかは、この表を誰に見せるかで決まります。社内の進行確認だけなら進捗率で足りますが、遅れの理由を説明する資料として使うなら2行に分けたほうが伝わります。

あわせて、今日の日付に縦線を入れておくと現在位置が分かります。条件付き書式で次の数式を使い、罫線の左側だけを設定します。

=G$3=TODAY()

この縦線があるかないかで、表を開いた瞬間に遅れが目に入るかどうかが変わります。

複数の案件を1枚で見るときの組み方

案件が2つ3つと増えると、1案件1ファイルの形が破れます。担当者が3件を掛け持ちしているとき、どの週に負荷が集中しているのかは、ファイルを3つ開いても見えません。

1枚に載せる方法は2通りあります。1つは、左側の表に「案件名」の列を足して、行を案件ごとにグループ化する形です。条件付き書式の数式はそのまま使えます。案件名で並べ替えれば案件別に見え、担当者で並べ替えれば人別に見えます。行数は3案件で60行を超えることもありますが、ウィンドウ枠の固定と折りたたみを併用すれば扱えます。

もう1つは、案件ごとにシートを分けて、集計用のシートを1枚だけ作る形です。集計シートには案件名と開始日と終了日だけを持たせ、案件全体の期間を1行1案件で表示します。細かい工程は各シートで見て、全体の重なりだけを集計シートで見る形です。経営層や他部署への報告にはこの形が向きます。

どちらを選ぶかは、見たいものが工程の重なりなのか、人の負荷なのかで決まります。人の負荷を見たいなら1枚にまとめる形、案件の重なりを見たいなら集計シートを作る形です。

人の負荷を数えたい場合は、日付の列の下に集計行を足します。その日に線が引かれている行を担当者ごとに数える形で、SUMPRODUCT 関数を使えば1行で書けます。数えた結果が1日に3件を超える列があれば、そこが無理をしている週です。条件付き書式で3以上のセルに色を付けておくと、計画の段階で無理が見つかります。

ここまで持たせると、表の役割は工程の可視化から負荷の調整に変わります。同時に、数式が増えて壊れやすくもなります。案件が5件を超えたあたりから、表の維持に時間がかかりはじめます。

前後のつながりを表に持たせる

エクセルのガントチャートに標準では無いものが、タスク同士のつながりです。専用のツールなら「設計が終わってから製造を始める」という関係を線で結べますが、エクセルの条件付き書式にはその仕組みがありません。前工程が3日遅れたときに、後工程の日付が自動でついてこないのが弱点です。

完全に自動化するのは難しいので、半分だけ持たせる形が現実的です。左側の表に「前工程」の列を1つ足し、そのタスクの直前に終わっていなければならない行の番号を書きます。そして開始日の列を、直接入力ではなく数式にします。前工程の終了日の翌営業日から始めるのであれば、WORKDAY 関数で1営業日後を求める形です。祝日の一覧を第3引数に渡せば、祝日も避けて計算されます。

この形にしておくと、前工程の終了日を1つ直したときに、後ろにつながる行の開始日が自動で動きます。3工程が数珠つなぎになっていれば、3行が同時にずれます。手で全部を直していたときと比べて、更新の手間が目に見えて減ります。

ただし、この方法には限界があります。1つのタスクに前工程が2つ以上ある場合は、MAX 関数で遅いほうを取る形に書き換える必要があります。前工程が循環していると計算が止まります。そして、数式で入った開始日を誰かが手で上書きすると、そこから先のつながりが切れます。数式が入っているセルには色を付けて、直さないことを見て分かるようにしておくのが現実的な防ぎ方です。

つながりが10本を超えるような計画では、この方式の維持が難しくなります。そこが、エクセルで持ちこたえられる範囲の上限のひとつです。

印刷とレイアウトを整える

作った表を紙で配る場面は残ります。画面で見ているときは問題なくても、印刷すると崩れることが多いので、配る前に整える手順を通しておきます。

まず印刷範囲を指定します。日付の列を右に長く伸ばしていると、指定しないままでは使っていない列まで印刷されて、白紙が何枚も出ます。使っている範囲だけを選んで印刷範囲に設定します。

次に印刷のタイトル行と列を設定します。ページ設定のシートの欄で、日付の行を「タイトル行」に、タスク名の列を「タイトル列」に指定します。これをやっておくと、2枚目以降にも日付とタスク名が出ます。指定しないと、2枚目は色の帯だけが並んだ紙になり、何の表なのか読めません。

拡大縮小は、横を1ページに収める設定を使います。縦は複数ページにまたがってよいので、横だけを1ページに合わせます。全体を1ページに収めようとすると文字が読めない大きさになります。

色については、白黒で印刷して区別がつくかを確かめます。担当者ごとに色を分けている場合、印刷すると同じ灰色になることがあります。色に加えて、線のパターンや記号でも区別を付けておきます。

最後に、印刷した日付を入れます。ヘッダーかフッターに日付を入れておくと、机の上に2枚の表があるときにどちらが新しいかが分かります。この1手間が、紙で配る運用でいちばん効きます。

更新が続く形にする

作り方を覚えても、更新が止まれば表は嘘になります。続く形にするために決めることが3つあります。

直すタイミングを固定する。 「気付いたときに直す」という決め方は続きません。週次の定例の直前30分、あるいは定例の場で画面を出しながら直す、といった形に固定します。曜日と時刻まで決めて、担当者の予定表に入れておきます。

直す人を分散させる。 1人がまとめて全部直す形にすると、その人の負荷が上がり、休んだ週に止まります。担当者が自分の行だけを直す形にできるなら、そのほうが続きます。エクセルで同時に直せない場合は、定例の場で口頭で報告して1人が入力する形が現実的です。この形は続きやすい代わりに、報告する人の記憶に頼ることになります。

直さなかった行を分かるようにする。 更新した日を記録する列を1つ足し、そこが古い行を条件付き書式で色付けします。TODAY 関数と比べて7日以上前なら色を付ける、という形です。これをやると、更新されていない行が目に入るようになります。表全体が更新されているように見えて、実は3割の行が2か月前のまま、という状態を防げます。

この3つを決めずに表だけ作ると、多くの場合2週間から1か月で更新が止まります。線の引き方より、こちらのほうが表の寿命を決めます。

無料のテンプレートを使う場合の選び方

エクセルのガントチャートの無料テンプレートは多く公開されており、骨組みを作る手間は省けます。ただし、落としてそのまま使えるものは少ないので、選ぶ基準と直す場所を先に持っておきます。

選ぶ基準は3つです。日付の単位が自分の計画に合っているか。 1日単位のテンプレートを半年の計画に使うと、列が180本になります。条件付き書式で線が出る作りになっているか。 セルに直接色が塗られているだけのテンプレートは、日程が動くたびに手で塗り直すことになります。ファイルを開いて条件付き書式のルールを確認すれば分かります。マクロが入っていないか。 マクロ付きのテンプレートは便利に見えますが、中身を読めない状態で業務のファイルに使うのは避けたほうがよいです。

落としたあとに直すのは、まず日付の開始位置です。テンプレートの日付は作成者が入れた日付のままなので、自分のプロジェクトの開始日に置き換えます。次に祝日の一覧です。多くのテンプレートは土日しか見ていないので、祝日シートを足して条件付き書式を1つ増やします。最後に不要な列を消します。テンプレートには使わない列が入っていることが多く、そのまま残すと更新する人が迷います。

テンプレートを探す時間が30分を超えるなら、自分で作ったほうが速いこともあります。ここまでの手順で作れる範囲なら、骨組みは30分程度で組めます。

エクセルで作るメリットと、続けたときに出る注意点

エクセルで作る利点は具体的です。追加の費用がかからず、すでに全員の手元にあり、印刷して配れて、表計算の機能をそのまま使えます。関数で日数を計算し、集計して工数の合計を出すといった処理は、専用のツールよりも自由に書けます。社外に送るときも、相手が開けない心配がありません。

一方で、続けたときに出る詰まりも具体的です。

起きること 理由 効く手
版が分かれる ファイルを添付して配るため 置き場所を1つに決める
更新する人が1人に固定される 同時に書き換えられないため 担当者が直せる形にする
依存関係が見えない 前後のつながりを持たないため 前工程の列を足す
誰がいつ直したか分からない 履歴が残らないため 変更履歴の欄を作る
行数が増えると重くなる 条件付き書式が全セルを評価するため 範囲を絞る

エクセルのワークシートは1枚あたり1,048,576行と16,384列まで使えるので、行数や列数そのものが上限になることはまずありません。詰まるのは容量ではなく運用のほうです。

タスクの洗い出しにかかる手間も見ておく必要があります。

近年は、ガントチャート作成の前段階である「タスクの洗い出し」や「課題の登録」をAIに任せる方法も広がっています。ガントチャート作成で最も手間がかかるのは、実はバーを描く作業ではなく、タスクを漏れなく洗い出し、1件ずつ登録していく作業です。この部分をAIで効率化できれば、ガントチャート運用全体の工数を大きく削減できます。 出典: backlog.com

線を引く作業は30分で終わりますが、タスクを30件書き出す作業は数時間かかります。作り方の手順を調べる前に、この配分を知っておくと見積もりが合います。

条件付き書式のルールが増えると、ファイルを開く速度が落ちます。日付の列が180本、行が60行あると、評価するセルは1万を超えます。そこに5つのルールが掛かっていれば、スクロールするたびに再計算が走ります。重くなってきたら、条件付き書式を掛ける範囲を、実際に使っている列までに絞ります。列全体を指定するのではなく、範囲を明示して指定するだけで体感が変わります。

ツールに移る境目の見極め方

エクセルをやめるべきかどうかは、機能ではなく人数と更新の頻度で決まります。境目になる条件は次の3つです。

更新する人が2人を超えたとき。 1人が直している形なら、エクセルで問題は起きません。2人以上が同じ表を直す形になった時点で、版が分かれる問題が出ます。

週1回より頻繁に直すとき。 月1回の更新であれば、ファイルを開いて直して配る手間は許容できます。毎日直す運用になると、この手間が積み上がります。

表を見る人が作る人以外にいるとき。 見る人が増えると、いちばん新しい表がどれなのかを聞かれるようになります。配るのではなく、見に来てもらう形に変える必要が出てきます。

逆に、この3つに当てはまらないなら、エクセルのままで十分です。1人が月1回直して自分だけが見る表を、わざわざ別の道具に移す理由はありません。おすすめできるのは、当てはまる条件が2つ以上になったときです。

1つの板に載せたときに変わること

エクセルのガントチャートで起きる問題の多くは、表の作り方ではなく置き場所から生まれています。条件付き書式で完璧に線が引けていても、そのファイルがメールの添付で配られている限り、版が分かれる問題は残ります。

置き場所を変えると、この形が変わります。タスクを1件ずつカードにして、開始日と終了日を持たせておけば、時刻や日付の並ぶ画面で線が出ます。線を引く作業そのものがなくなるので、条件付き書式の数式を書く必要も、日程が動いたときに塗り直す必要もありません。担当者が自分のカードの日付を直せば、見ている全員の画面が同じように変わります。誰がいつ何を直したのかも、カードに残ります。

進行の管理に使う道具は、ボード型のタスク管理ツールで足ります。板の種類と、カードに持たせられる情報の範囲はできることに並んでいます。工程表として見たいのか、カンバンとして見たいのかを切り替えられるかどうかが、エクセルからの移り先を選ぶときの見どころです。

移るときに気になるのは費用と人数です。工程の管理は、社内の担当者に加えて外部の協力先が入ることが多く、機能ではなく人数で上限に当たりがちです。機能で絞らず、区切るのは人数とボードの数だけという区切り方なら、工程表の画面を使うために上位のプランへ上げる必要がなくなります。金額と上限は料金で確かめられます。すでにカード型の道具で進めていて工程表の画面だけが足りないという場合は、Trelloとの比較に観点の違いが整理されています。他の候補と並べて見たいなら比較の一覧から入れます。

ただし、エクセルには残る強みがあります。表計算としての自由度、印刷したときの見た目、相手が確実に開けることの3つです。社外への提出用に1枚作る必要があるなら、エクセルで作る手順は覚えておいて損はありません。日々の更新は板の上でやり、提出用だけエクセルに書き出すという使い分けも成り立ちます。

Q1. エクセルのガントチャートは図形と条件付き書式のどちらで作るべきですか?

日程が動く前提なら条件付き書式です。図形や手での塗りつぶしは最初の1枚が速い代わりに、開始日が動くたびに引き直す作業が発生します。条件付き書式なら開始日と終了日のセルを直すだけで線が移動するので、更新の手間が積み上がりません。

Q2. 条件付き書式で線が出ないときは何を確認すればよいですか?

まずドル記号の位置です。開始日と終了日は $C4 のように列を固定し、日付は G$3 のように行を固定します。両方を固定すると表全体が塗られるか、まったく塗られないかになります。次に、ルールを設定したときの選択範囲の左上のセルと、数式の基準セルが一致しているかを確かめます。

Q3. 祝日を自動で色分けするには何が必要ですか?

別のシートに祝日の日付を一覧で持たせ、条件付き書式で COUNTIF 関数を使って照合します。内閣府が公表している一覧を写せば作れます。会社の休業日も同じ一覧に足しておくと、実際に動ける日と表が一致します。年に1回、翌年分を足す手間は残ります。

Q4. エクセルでのガントチャート作成から別の道具に移る目安はありますか?

更新する人が2人を超えた、週1回より頻繁に直している、作る人以外に見る人がいる、この3つのうち2つ以上に当てはまったときが目安です。1人が月1回直して自分だけが見る表であれば、エクセルのままで問題は起きません。移る理由は機能の不足より版が分かれることのほうが多いです。

ブログ一覧へ