gantt

ガントチャートをエクセルで作る手順|条件付き書式で色を塗る

2026年9月2日 ・ Pinateca編集部

ガントチャートをエクセルで作る方法を調べている人の多くは、すでに一度は自分で作りかけています。日付を横に並べて、セルを手で塗って、次の週になったら塗り直す。そこまではできたものの、予定が動くたびに塗り直す作業が積み上がって手が止まる。この記事では、セルを手で塗るのをやめて、開始日と終了日を入れれば色が自動で付く工程表を、最初の1行から順を追って組み立てます。日付の行の作り方、期間の自動計算、条件付き書式の数式、土日と祝日の色分け、今日の位置に線を引く方法まで、そのまま貼って動く数式で示します。そのうえで、この作り方でも手作業が残ってしまう場所を最後に整理します。

エクセルの工程表がいまも現場から消えない理由

専用の工程管理ツールが数え切れないほど出ているのに、いざ工程表を作ろうとするとエクセルが選ばれ続けています。これは怠慢でも情報不足でもなく、はっきりした理由があります。

第一に、相手がすでに持っています。取引先に工程表を送るとき、相手のパソコンに何が入っているかを気にしなくてよいのは大きな利点です。閲覧のためにアカウントを作ってもらう必要も、権限を発行する必要もありません。第二に、列を1つ足す判断を誰の許可も取らずにその場でできます。専用ツールは項目の追加に設定画面が要りますが、表計算ソフトは右クリックで列を挿入すれば終わりです。第三に、印刷して会議の机に置けます。工程表を紙で配る文化が残っている現場では、この一点だけで代替が効きません。

もうひとつ、担当者の人数の問題があります。5人から数十人規模のチームでは、進行管理そのものを専任にできることはまれです。誰かが自分の作業を抱えたまま、片手間で工程表を引いています。新しい道具を選定して、設定して、使い方を全員に教えるところまでを片手間でやるのは重い。だから手元にある表計算ソフトで始まります。

DXを推進する人材の「量」について、日本では「大幅に不足している」と回答した企業が49.6%を占める。 出典: ipa.go.jp

進行を見る役割を置く余裕がない状態は、統計の上でも珍しくありません。だからこそ、エクセルで作る工程表は「とりあえずの間に合わせ」ではなく、しばらく本番として使われることを前提に組んだほうがよいという結論になります。手で塗った表は2週間で更新が止まると言われますが、それは怠けているからではなく、更新の手間が実務の片手間を超えるからです。手間を減らす作り方を最初に選べば、同じ道具でもだいぶ長持ちします。

ここから作るのは、次の性質を持った工程表です。開始日と終了日を入力すれば、その期間のセルが自動で色づく。土日と祝日は自動で灰色になる。今日の位置に縦線が入る。日数は数式で出る。手で塗る操作はゼロです。

作りはじめる前に決める4つのこと

いきなりセルに触る前に、決めておくと後戻りが減る項目が4つあります。ここを曖昧にしたまま作ると、途中で表全体を作り直すことになります。

1マスを何日にするか

工程表の1列を1日にするか、1週間にするか、1か月にするかで、作り方も数式も変わります。目安は表す期間の長さです。3か月以内で終わる案件なら1列1日が扱いやすく、日単位で誰が何をするかまで表せます。半年から1年を1枚に収めたいなら1列1週間、複数年にわたる計画なら1列1か月です。

この記事ではまず1列1日で作り、後半で週単位と月単位に切り替える数式を示します。最初から日単位で作っておくと、後から週単位の表に流用しやすいという順番の利点もあります。

日数を暦日で数えるか稼働日で数えるか

「5日間の作業」と言ったとき、土日を含めた暦の5日なのか、動ける日が5日なのかで終わる日が変わります。金曜に始めて稼働日5日なら翌週の木曜まで、暦日5日なら翌週の火曜までです。2日ずれます。

チーム内で「日数」の意味が人によって違うまま表を作ると、あとで必ず食い違います。稼働日で数えるなら祝日の一覧が要るので、後述する祝日シートを最初に用意しておきます。

誰が入力するか

工程表を引く人と、進捗を入れる人が同じなのか違うのかで、表の設計が変わります。担当者本人に進捗を入れてもらうつもりなら、入力してほしい列だけを目立たせ、数式が入っているセルには触らせない構えが要ります。とりまとめる人が全部入力するつもりなら、報告を集める経路を別に決めておかないと、表の数字は現実から離れていきます。

現場でしばしば起きるのは、表そのものは立派に作れているのに、入力する人が増えないまま数字だけが古くなるという状態です。工程表の精度は数式の出来ではなく、更新が集まるかどうかで決まります。

どこに置いて、誰が同時に開くか

ファイルをファイルサーバーに置くのか、クラウドの保存領域に置くのかで、同時に開けるかどうかが変わります。共有フォルダに置いた場合、誰かが編集で開いている間、他の人は読み取り専用でしか開けません。工程表を引き直している最中は他の人がその表を見られない、という状態がここで生まれます。クラウドの共同編集を使う場合でも、条件付き書式のルールが多い表は動作が重くなりやすいので、ルールの数は必要最小限に抑える方針で作ります。

手順1 表の骨組みを作る

まず左側の作業一覧を作ります。新しいブックを開き、シート名を「工程表」にします。

列の割り当てを次のように決めます。ここは以降の数式がすべてこの配置を前提にするので、そのまま合わせてください。

A列: No.
B列: 工程(大分類)
C列: タスク
D列: 担当
E列: 開始日
F列: 終了日
G列: 日数
H列: 進捗
I列以降: カレンダー

行の割り当ては次のとおりです。

1行目: プロジェクト名(A1に入力)
2行目: F2 にカレンダーの表示開始日(例 2026/9/1)
3行目: 月の表示行(I3から)
4行目: 日付行(I4から)/A4:H4 は見出し
5行目: 曜日行(I5から)
6行目以降: タスクのデータ

A4からH4に見出しを入れます。「No.」「工程」「タスク」「担当」「開始日」「終了日」「日数」「進捗」の順です。見出し行は4行目と5行目を縦に結合しておくと、カレンダー側の2段(日付と曜日)と高さがそろって見やすくなります。A4:A5を選んでセルを結合、同じ操作をB列からH列まで繰り返します。

F2にカレンダーの表示開始日を入れます。ここを起点に日付が自動で並ぶので、表示範囲を前後にずらしたくなったらこのセルだけを直せば済みます。E2に「表示開始日」というラベルを入れておくと、他の人が触るときに迷いません。

E列とF列の表示形式を日付にします。列を選んでホームタブの表示形式から「短い日付形式」を選ぶか、セルの書式設定でユーザー定義に m/d と入れると幅を取らずに済みます。H列の進捗はパーセンテージ形式にして、小数点以下は表示しない設定にします。後で出す数式は進捗を 0 から 1 の小数として扱うので、パーセンテージ形式にしておけば入力は「50%」で通ります。

6行目から下に、実際のタスクを並べます。この時点では開始日と終了日を入れるだけで、色は付きません。試しに数行分だけ、実在する予定を入れておくと、以降の手順で結果をすぐ確認できます。

手順2 日付の行と曜日の行を作る

ここがエクセルの工程表の心臓部です。日付を手で打ち込んではいけません。手で打つと、表示範囲をずらしたいときに全部打ち直しになりますし、途中で1日抜けても気づけません。

I4に次の数式を入れます。

=$F$2

J4に次の数式を入れます。

=I4+1

J4を選んでコピーし、K4から右へ必要な日数分だけ貼り付けます。この記事ではI列からBP列までの60日分で作ります。J4のフィルハンドル(セル右下の小さい四角)をつまんでBP列まで引っ張っても同じです。

I4からBP4を選び、セルの書式設定でユーザー定義に d と入れます。これで「9/1」ではなく「1」とだけ表示され、列幅を細くできます。

次に曜日の行です。I5に次の数式を入れます。

=TEXT(I4,"aaa")

これで「月」「火」のように漢字1文字が出ます。I5をBP5までコピーします。aaa は曜日を1文字で返す書式記号で、aaaa にすると「月曜日」になります。英語表記にしたいなら ddd です。

数式を使わずに済ませる方法もあります。I5に =I4 と入れて、表示形式のユーザー定義を aaa にする方法です。この場合セルの中身は日付なので、後述する土日判定の数式を曜日行にも同じ形で当てられるという利点があります。どちらでも構いませんが、統一してください。

月の表示行も作ります。I3に次の数式を入れます。

=TEXT(I4,"m月")

J3に次の数式を入れます。

=IF(MONTH(J4)<>MONTH(I4),TEXT(J4,"m月"),"")

J3をBP3までコピーします。これで月が変わる列にだけ「10月」のように表示され、それ以外は空白になります。月の区切りが目で追えるようになります。

最後に列幅を整えます。I列からBP列までをまとめて選び、列見出しの境目を右クリックして「列の幅」を選び、2.5 と入れます。日付の数字が2桁でも収まる最小限の幅です。ここを広くすると1画面に入る日数が減るので、狭くできるだけ狭くします。

日付と曜日の行ができたら、ウィンドウ枠を固定します。I6をクリックしてから、表示タブの「ウィンドウ枠の固定」を選びます。これで左のタスク名とカレンダーの見出しが常に見えたまま、右や下にスクロールできます。工程表が長くなるほどこの設定の有無で使い勝手が変わります。

手順3 期間と日数を自動で計算する

G列の日数を手で数えてはいけません。開始日と終了日から計算させます。

暦の日数で数える場合、G6に次の数式を入れます。

=IF(OR($E6="",$F6=""),"",$F6-$E6+1)

最後の +1 は、開始日当日を1日目として数えるためのものです。9月1日に始まって9月1日に終わるタスクは1日、引き算だけだと0日になってしまいます。IF関数で囲んでいるのは、まだ日付を入れていない行に 0 や意味のない数字が出ないようにするためです。

稼働日で数える場合はNETWORKDAYS関数を使います。

=IF(OR($E6="",$F6=""),"",NETWORKDAYS($E6,$F6,祝日一覧))

NETWORKDAYSは土日と、第3引数で渡した祝日を除いた日数を返します。開始日と終了日の両方を数に含めるので、こちらは +1 が要りません。祝日一覧 という名前は手順6で定義します。祝日を考えない段階では第3引数を省いて =NETWORKDAYS($E6,$F6) としておいてください。

土日以外を休みにしている現場、たとえば日曜だけが休みの場合はNETWORKDAYS.INTLを使います。

=NETWORKDAYS.INTL($E6,$F6,11,祝日一覧)

第3引数の 11 が「日曜だけを休みにする」という指定です。1 が土日、11 が日曜のみ、12 が月曜のみといった具合に番号が割り当てられています。"0000011" のように月曜から日曜までを0と1の7文字で書く指定もできます。

逆に、日数から終了日を出したい場合もあります。「この作業は稼働日で5日かかる」という前提で終了日を求めるなら、F6に次の数式を入れます。

=WORKDAY($E6-1,$G6,祝日一覧)

$E6-1 としているのがこの数式の要点です。WORKDAYは指定した日付から数えて何稼働日後かを返すので、開始日そのものを1日目として数えたいときは、1日前を起点にする必要があります。この形にしておくと、開始日が土曜や祝日にずれ込んでも正しく計算されます。

前の工程が終わってから次を始める、という関係を数式で書くこともできます。7行目のタスクが6行目の翌稼働日から始まるなら、E7に次の数式を入れます。

=WORKDAY($F6,1,祝日一覧)

これで前工程の終了日が動けば後続の開始日も自動で動きます。便利ですが、行を並べ替えたり途中に行を挿入したりすると参照が思わぬところを向くので、扱いには注意が要ります。この点は後半でもう一度取り上げます。

手順4 条件付き書式でバーを塗る

いよいよ本題です。開始日から終了日までのセルを自動で塗ります。

まずI6をクリックし、そのままI6からBP105までを選択します。ここで大事なのは、選択範囲の左上、つまりアクティブなセルがI6であることです。条件付き書式の数式は、アクティブセルを基準に相対参照が解釈されます。範囲の右下からドラッグして選ぶとアクティブセルがBP105になり、数式がまったく違う場所を見て、色が付かないか変な場所に付きます。うまくいかないときの原因のほとんどがここです。

範囲を選んだら、ホームタブの「条件付き書式」から「新しいルール」を選び、「数式を使用して、書式設定するセルを決定」を選びます。数式の欄に次を入れます。

=AND($E6<>"",$F6<>"",I$4>=$E6,I$4<=$F6)

「書式」ボタンから塗りつぶしの色を選びます。工程表のバーは彩度を落とした青や緑が見やすく、濃い色を選ぶと文字を重ねたときに読めなくなります。OKを押すと、開始日から終了日までのセルに色が付きます。

この数式のドルマークの位置が、この記事でいちばん重要な部分です。

$E6 は列だけを固定しています。数式が右の列に展開されてもE列を見続け、下の行に展開されると7行目、8行目とずれていきます。つまり「その行の開始日」を常に見ます。I$4 は行だけを固定しています。下の行に展開されても4行目を見続け、右の列に展開されるとJ、K、Lとずれていきます。つまり「その列の日付」を常に見ます。この2つの組み合わせで、「その列の日付が、その行の開始日と終了日の間にあるか」という判定が表全体に一度で行き渡ります。

先頭の $E6<>""$F6<>"" は、日付が空の行に色が付かないようにするためのものです。これを省くと、空欄が数値の0として扱われ、想定外の場所が塗られます。

ここまでできたら、E列とF列の日付を書き換えてみてください。バーが自動で移動します。手でセルを塗る作業はこれで完全になくなります。

担当者ごとにバーの色を変えたい場合は、担当の数だけルールを作ります。たとえばD列に「設計班」と入っている行だけ別の色にするなら、同じ範囲に次のルールを追加します。

=AND($D6="設計班",$E6<>"",I$4>=$E6,I$4<=$F6)

条件付き書式は数式で色そのものを決められないので、色の種類だけルールが増えます。担当が10人いれば10本のルールになり、表が重くなります。班や工程といった粗い単位でまとめるほうが現実的です。

マイルストーン、つまり期間を持たない一点の予定を表したい場合は、開始日と終了日に同じ日付を入れ、次のルールを一番上に置きます。

=AND($E6=$F6,$E6<>"",I$4=$E6)

書式で塗りつぶしを濃い色にすれば、1マスだけの点として表示されます。

手順5 土日を色分けする

土日が灰色になっているだけで、工程表は格段に読みやすくなります。曜日を目で数えなくても週の区切りが見えるからです。

I4からBP105を選びます。今度は日付行と曜日行も含めます。アクティブセルはI4です。条件付き書式の新しいルールから数式を選び、次を入れます。

=WEEKDAY(I$4,2)>=6

書式は塗りつぶしの薄い灰色にします。

WEEKDAY関数の第2引数の 2 は「月曜を1として数える」という指定です。この指定にすると土曜が6、日曜が7になるので、>=6 で土日をまとめて判定できます。第2引数を省くと日曜が1、土曜が7という数え方になり、条件式が =1=7 の2つに分かれて面倒です。工程表では 2 を使うのが定石です。

土曜と日曜で色を変えたい場合は、ルールを2つに分けます。

=WEEKDAY(I$4,2)=6
=WEEKDAY(I$4,2)=7

土曜は薄い青、日曜は薄い赤にするのが一般的な配色です。

日曜だけが休みの現場なら =WEEKDAY(I$4,2)=7 だけを入れます。シフト制で曜日が固定でない現場では、そもそも曜日の色分けをやめて、稼働しない日を別シートに列挙してCOUNTIFで判定する方式に切り替えたほうが実態に合います。方法は次の祝日の手順と同じです。

ここで注意が要るのは、手順4のバーのルールとの優先順位です。条件付き書式は上にあるルールが優先されます。土日のルールがバーより上にあると、土日にかかった作業のバーが途中で灰色に途切れます。作業が土日も動くなら、バーを上に置いてください。逆に、土日は動かないことを見た目でも示したいなら、土日を上に置いて、バーがそこで途切れるようにします。

優先順位は「条件付き書式」から「ルールの管理」を開き、対象を「このワークシート」に切り替えると一覧で見られます。上下の矢印で順番を入れ替えられます。作った直後は新しいルールが一番上に来るので、意図した順番になっているか必ず確認してください。

手順6 祝日を色分けする

祝日は曜日から計算できません。振替休日も年末年始の休業も、法則では出せないので一覧を持つしかありません。

シートを1枚追加し、名前を「祝日」にします。A1に「日付」、A2から下に祝日の日付を並べます。隣のB列に祝日の名前を書いておくと、後で見直すときにわかりやすくなります。年末年始や会社の一斉休業日も、稼働しない日として同じ列に入れておきます。

内閣府が国民の祝日の一覧をCSV形式で公開しているので、それを貼り付けると入力の手間が省けます。貼り付けたあと、日付として認識されているか必ず確認してください。文字列として入っていると以降の判定が全部外れます。セルを選んで右揃えになっていれば日付、左揃えのままなら文字列です。

次に名前を定義します。祝日シートのA2からA60を選び、数式タブの「名前の定義」を開いて、名前に 祝日一覧 と入れてOKを押します。

この名前の定義は省略できません。条件付き書式の数式から他のシートのセル範囲を直接参照すると、環境によっては入力を受け付けてもらえないことがあります。名前を付けておけば、条件付き書式からも普通の数式からも同じ書き方で呼べます。手順3のNETWORKDAYSやWORKDAYで使った 祝日一覧 も、この定義を指しています。

工程表シートに戻り、I4からBP105を選びます。アクティブセルはI4です。新しいルールで次の数式を入れます。

=COUNTIF(祝日一覧,I$4)>0

書式は土日と同じ灰色、あるいは祝日だとわかるように少し違う色にします。COUNTIFはその日付が一覧の中に何個あるかを数えるので、1以上なら祝日ということになります。

このルールは土日のルールより上に置いてください。祝日と土日が重なった日に、祝日の色を優先させるためです。

祝日一覧は毎年更新が要ります。年をまたぐ工程表を運用しているなら、年末に翌年分を追記する作業を誰かの仕事として決めておかないと、翌年の1月に「祝日が平日として計算されている」という事故が起きます。名前の定義の範囲も、行を増やしたときは合わせて広げる必要があります。最初からA2:A200のように余裕のある範囲で定義しておくと、追記のたびに範囲を直す手間が省けます。空欄はCOUNTIFの結果に影響しません。

手順7 今日の位置に線を引く

工程表を開いた瞬間に「いまここ」がわかると、読む速度がまったく変わります。

I4からBP105を選び、アクティブセルをI4にして、新しいルールで次の数式を入れます。

=I$4=TODAY()

書式の設定では、塗りつぶしではなく罫線を使います。「罫線」タブを開き、線のスタイルから太めの線を選び、色を赤にして、プレビュー枠の左側だけをクリックします。これで今日の列の左端に赤い縦線が通ります。

塗りつぶしで今日の列を色分けする方法もありますが、バーと色が重なって読みにくくなります。罫線なら、バーの上に線が重なるだけなので情報が消えません。

このルールは優先順位の一番上に置きます。バーや土日の下にあると、書式の競合で線が出ないことがあります。

TODAY関数はファイルを開いたときと、シートが再計算されたときに更新されます。開きっぱなしにしていると日付が変わっても線が動かないことがあるので、その場合はF9キーを押して再計算させます。工程表を長時間開いたままにする使い方をするなら、この挙動は覚えておいてください。

今日の列の1つ手前までを薄く塗って「済んだ時間」を表す方法もあります。次の数式を、優先順位ではバーより下に置きます。

=I$4<TODAY()

書式は塗りつぶしをごく薄い灰色にします。過去が沈んで見えるので、これから先の予定に目が行きます。ただしルールが増えるほど表は重くなるので、必要かどうかを見極めて入れてください。

手順8 進捗と遅れを見えるようにする

バーが引けたら、次は「予定どおり進んでいるか」を同じ表の上で見えるようにします。

H列に進捗を入力します。パーセンテージ形式にしてあるので「50%」と打てば0.5として保持されます。この値を使って、バーの内側を進んだぶんだけ濃く塗ります。I6からBP105を選び、アクティブセルをI6にして、次のルールをバーのルールより上に追加します。

=AND($E6<>"",$H6>0,I$4>=$E6,I$4<=$E6+ROUNDDOWN(($F6-$E6+1)*$H6,0)-1)

書式はバーと同系色の濃い色にします。

数式の意味を分解します。$F6-$E6+1 がそのタスクの日数です。それに進捗をかけると、進んだぶんの日数が出ます。ROUNDDOWNで小数を切り捨てて整数の日数にし、開始日に足して 1 を引くと、進んだぶんの最終日が出ます。開始日からその日までを塗る、という条件です。

進捗が100%になるとバー全体が濃い色になるので、終わったタスクが一目でわかります。

遅れているタスクを目立たせるルールも作ります。C6からC105を選び、アクティブセルをC6にして、次の数式を入れます。

=AND($F6<>"",$F6<TODAY(),$H6<1)

書式でフォントの色を赤にし、太字にします。終了日を過ぎているのに進捗が100%に届いていないタスクだけ、タスク名が赤くなります。

もう一歩踏み込んで、あるべき進捗と実際の進捗を比べることもできます。空いている列、たとえばI列より左に列を1つ挿入して「予定進捗」とし、次の数式を入れます。

=IF(OR($E6="",$F6=""),"",MEDIAN(0,($F6-$E6+1),(TODAY()-$E6+1))/($F6-$E6+1))

MEDIAN関数を使っているのは、開始前なら0、終了後なら日数、その間なら経過日数、という3つの場合分けをIF文を重ねずに書くための書き方です。真ん中の値を選ぶ性質を利用しています。この予定進捗と実際の進捗を引き算すれば、どれだけ遅れているかが数字で出ます。数字で出ると、会議で「なんとなく遅れています」と言わずに済みます。

ただし、列を増やすほど入力する人の負担が上がります。進捗率を毎日入れてもらう運用が成り立つかどうかを先に確かめてください。入力する人が増えないまま項目だけ増やすと、空欄が並ぶ表になり、かえって実態が見えなくなります。

週単位と月単位に切り替える

1列1日の工程表は60日を超えると横に長くなりすぎて、1画面にも1枚の紙にも収まりません。長い案件は列の粒度を粗くします。

週単位にする場合、I4に次の数式を入れます。

=$F$2-WEEKDAY($F$2,2)+1

これで表示開始日を含む週の月曜日が出ます。J4には次を入れて右へコピーします。

=I4+7

日付行の表示形式はユーザー定義で m/d にして、その週の月曜の日付を出します。曜日行は不要なので削除するか、代わりに週番号を入れます。週番号はWEEKNUM関数で出せます。

バーのルールは、期間と週が重なっているかどうかの判定に変えます。

=AND($E6<>"",$F6<>"",$E6<=I$4+6,$F6>=I$4)

「タスクの開始日がその週の日曜以前」かつ「タスクの終了日がその週の月曜以降」なら重なっている、という判定です。日単位のときのように「日付が期間の中にあるか」では、週の途中に収まる短いタスクが表示されません。

月単位にする場合、I4に次を入れます。

=DATE(YEAR($F$2),MONTH($F$2),1)

J4に次を入れて右へコピーします。

=EDATE(I4,1)

EDATEは指定した月数だけ後の同じ日を返す関数です。1日から1日へ、月末をまたいでも正しく動きます。=I4+31 のような足し算で月を進めると、31日の月と30日の月でずれが積み上がって表が壊れます。

バーのルールは次のようになります。

=AND($E6<>"",$F6<>"",$E6<=EOMONTH(I$4,0),$F6>=I$4)

EOMONTH関数の第2引数に0を渡すと、その日付の属する月の末日が返ります。

粒度を粗くすると、土日や祝日の色分けは意味を失います。週や月の列に土日という概念がないからです。そのぶん、四半期や期末の区切りに縦線を入れると読みやすくなります。四半期の頭に線を引くなら、次のルールで罫線の左だけを設定します。

=MONTH(I$4)=MOD(MONTH($I$4)-1,3)+1

このあたりは会社の期の切り方によるので、単純に3か月ごとの列に手で罫線を引いてしまってもかまいません。数式で作り込むほど、後から直すときの負荷が上がります。

見た目と印刷を整える

数式が動いたら、読める形に整えます。ここを飛ばすと「作った人しか読めない工程表」になります。

行の高さは18から20ポイント程度が目安です。詰めすぎると隣の行のバーと見分けがつかなくなります。工程の大分類が変わる行の上に太い罫線を1本引くと、視線の区切りができます。

タスク名の列は幅を広めに取り、折り返しは切っておきます。折り返すと行の高さが不揃いになり、カレンダー側のバーが階段状にずれて見えます。名前が長くて切れるなら、列幅を広げるか、名前を短くします。

印刷の設定は、ページレイアウトタブから行います。まず「印刷の向き」を横にします。次に「印刷タイトル」を開き、「タイトル行」に $3:$5 を、「タイトル列」に $A:$H を指定します。これで2ページ目以降にも日付の見出しとタスク名が繰り返し印刷されます。ここを設定していない工程表を印刷すると、2枚目から先が色の付いた四角が並ぶだけの紙になります。

拡大縮小は「横1ページ」に収める設定にし、縦は指定しません。横を1ページに収めれば、縦に何枚になっても読めます。逆に縦横とも1ページに押し込むと、文字が読めない大きさまで縮みます。

余白は上下左右とも10ミリ程度まで詰めて構いません。工程表は罫線と色で読ませる資料なので、余白より情報量を優先します。

画面で見るときのために、フィルターも設定しておきます。4行目の見出しを選んでデータタブの「フィルター」を押せば、担当や工程で絞り込めるようになります。人数が多いチームでは、自分の担当ぶんだけを表示して確認してもらう使い方ができます。

シートの保護も検討に値します。数式が入っているG列やI列以降を編集できないようにしておけば、他の人が触ったときに数式が消える事故を防げます。校閲タブの「シートの保護」の前に、入力してほしいセルだけ「セルの書式設定」のロックを外しておく手順が必要です。

予定が動いたときに手が要るところ

ここまでの作り方で、セルを手で塗る作業はなくなりました。開始日と終了日を書き換えればバーが動き、日数も計算し直され、遅れも色で出ます。それでも手作業は残ります。どこに残るのかを正直に整理しておきます。

行を挿入したり削除したりすると条件付き書式が割れる

これがいちばん多く、いちばん気づきにくい問題です。工程表の途中に行を挿入すると、条件付き書式の適用範囲が分裂します。「ルールの管理」を開くと、適用先が $I$6:$BP$20,$I$22:$BP$105 のように、カンマで区切られた飛び飛びの範囲に変わっています。挿入した行だけルールが当たらず、日付を入れてもバーが出ません。

削除でも同じことが起きます。行をいくつも消したあと、範囲が細切れになり、ルールの一覧が同じ数式で埋め尽くされることもあります。ルールが50本を超えると、ファイルを開くだけで数秒待たされるようになります。

対処は、定期的に適用先を貼り直すことです。「ルールの管理」を開き、各ルールの「適用先」の欄に =$I$6:$BP$105 と入れ直します。同じ数式の重複ルールがあれば削除します。月に一度、この掃除をする前提で運用してください。行の追加が多い工程表なら、あらかじめ空行を多めに用意しておいて、挿入ではなく空行への入力で運用するほうが安全です。

カレンダーを右に伸ばすと範囲が追いつかない

案件が延びてBP列より先まで必要になったとき、日付の数式は右へコピーすれば伸びますが、条件付き書式の適用範囲は自動では伸びません。ここも手で $I$6:$CZ$105 のように広げ直す必要があります。ルールの本数だけ同じ作業が要ります。

最初から使いそうな範囲より広めに設定しておくのが対策です。使わない列は「非表示」にしておけば見た目には影響しません。

後続タスクを手でずらす

前工程が3日延びたとき、後ろのタスクを全部3日ずらす作業が発生します。手順3で示したWORKDAYの連鎖を組めば自動で動きますが、連鎖には弱点があります。行を並べ替えると参照が壊れます。1つのタスクが複数の前工程を待つ場合、数式が複雑になります。並行して進む作業がある工程表では、連鎖の設計そのものが難しくなります。

現実的な折衷案は、大きな区切りだけを連鎖させ、区切りの中は手で入れることです。全部を自動にしようとするほど、壊れたときに直せる人がいなくなります。

同時に開けない

ファイルサーバーに置いた工程表は、誰かが編集で開いている間、他の人は読み取り専用でしか開けません。とりまとめる人が工程表を引き直している最中、他のメンバーはその表を見られません。「いま誰か開いてる?」というやり取りが毎回発生します。

クラウドの保存領域に置いて共同編集を使えば同時に開けますが、条件付き書式のルールが多い表は動作が重くなります。また、同じセルを同時に編集したときの挙動が読みにくく、片方の入力が消えることもあります。

版が増える

「工程表_最新.xlsx」「工程表_最新_20260901.xlsx」「工程表_最新_修正版2.xlsx」が並ぶ状態は、エクセルで工程管理をしている現場のほとんどで一度は起きます。取引先に送った版と手元の版が食い違い、会議で違う表を見ながら話す事態になります。

ファイル名に規則を決め、置き場所を1か所に限定することで抑えられますが、規則を守り続ける手間は残ります。

進捗が集まらない

これは工程表の作りの問題ではなく、運用の問題です。担当者に進捗率を毎週入れてもらうつもりでも、ファイルを開いて、自分の行を探して、数字を入れて、保存して、閉じるという手順は、その人にとっては本業ではありません。2週間もすると入力が止まり、表の数字は先週のままになります。

とりまとめる人が全員に聞いて回って代わりに入力する運用に落ち着くことが多く、そこで工程管理の工数が膨らみます。工程表を作る手間より、更新を集める手間のほうが最終的には大きくなります。

変更の履歴が残らない

「この予定はいつ、誰が、なぜ動かしたのか」がファイルには残りません。日付のセルが書き換わっているだけです。前の版のファイルと見比べれば差はわかりますが、理由はわかりません。あとで振り返るときに、判断の経緯がたどれないという問題が残ります。

表で持つか、板で持つかの分かれ目

ここまでの作り方は、工程表そのものとしては十分に実用に耐えます。手で塗るのをやめれば、予定を動かす手間はかなり減ります。それでも上に挙げた手作業が残るのは、表計算ソフトが「1人が編集して、全員が読む」ことを前提にした道具だからです。工程表の問題は途中から「表をどう作るか」ではなく「更新を誰から集めるか」に移り、そこは表計算ソフトの守備範囲の外にあります。

分かれ目は、次のどちらの手間が大きいかで判断できます。工程表を引き直す手間が大きいなら、この記事の作り方で解決します。工程表に載せる情報を集める手間のほうが大きいなら、道具を替える検討に入る段階です。

進捗を担当者本人に入れてもらいたい場合、入力の場所が作業の場所と同じであることが効きます。ボード型のタスク管理は、カードを右の列に動かすという操作が進捗の更新そのものになります。表に数字を打ちに行く動作が要りません。カードに期日を入れておけば、それをそのまま工程表の形で見ることもできます。

道具を選ぶときに見る点は、機能の多さではありません。とりまとめる人が気にしているのは、入れたあとにチームが使い続けてくれるかどうかです。項目が多いほど入力は止まりますし、料金の区切りが機能単位だと「あの機能を使いたいから全員のプランを上げる」という話になって、導入そのものが止まります。区切りが人数とボードの数だけなら、必要な人数ぶんだけ増やせばよいので判断が単純になります。機能で絞らず、区切るのは人数とボードの数だけという考え方は、5人から数十人のチームでは効いてきます。どこまでできるかはできることに整理されていて、区切り方は料金で確認できます。

いま使っている道具がある場合は、それを続ける前提で足りない点だけを見るのが順当です。カードを並べて進行を見る形に慣れているチーム向けに、同じ考え方の道具との違いをTrelloとの比較にまとめてあります。作業の割り当てとタイムラインを重視して使っているならAsanaとの比較、文書とデータベースを一体で扱っているならNotionとの比較が近い話になります。案件の見え方や自動化の作り込みを軸に選んでいるならmonday.comとの比較、課題管理と開発の管理を一緒に回しているならBacklogとの比較、日本語のかんばんで運用しているならJootoとの比較を見ると、どこが同じでどこが違うかがわかります。どれから見ればよいか決めかねる場合は比較の一覧にまとめてあります。

料金や上限の数字は、どのサービスも変わります。この記事では特定のサービスの金額や上限を書きません。検討する段階になったら、各社の公式ページでその時点の内容を確認してください。プランの区切り方は年単位で変わることがあり、古い比較記事の数字をそのまま信じると判断を誤ります。

正直に書いておくべき弱点もあります。ボード型のタスク管理は、ソースコードを置く場所ではありません。リポジトリの機能は持っていないので、開発の成果物の管理は別の道具が要ります。外部サービスとの連携や自動化の作り込みで勝負する種類の道具でもありません。ここを重視するなら、その方面に強いサービスを選ぶほうが合います。画面は日本語のみで、海外のメンバーが入るチームには向きません。他のサービスから中身を自動で取り込めるのはTrelloからだけで、それ以外は手で移すことになります。移行の手順と、何が移って何が移らないかはTrelloからの移行に書いてあります。

社外の人が入るチームでは、どこまで見えるかの扱いも先に確認しておく必要があります。工程表には取引先の名前や納期といった、外に出せない情報が載ります。どういう考え方でデータを扱っているかは安全性の考え方にまとめてあります。この手の確認は、導入を決めてからではなく、候補に入れる段階でしておくと後戻りが減ります。

判断の順番としては、まずこの記事の手順でエクセルの工程表を組んでみるのが確実です。手で塗る作業がなくなった状態でしばらく運用すれば、残る手間がどこにあるかがはっきりします。条件付き書式の割れなのか、同時に開けないことなのか、進捗が集まらないことなのか。残った手間の正体が見えてから道具を検討すれば、機能一覧を眺めて迷う時間を使わずに済みます。細かい疑問はよくある質問にまとまっているので、検討の途中で引っかかった点はそちらで確認できます。

工程表は、作った瞬間がいちばん正しくて、そこから毎日ずれていきます。ずれを直す手間をどこまで小さくできるかが、道具選びの本質です。エクセルでできることはこの記事の範囲まで、その先は更新を集める仕組みの話になります。

Q1. 条件付き書式でバーが表示されないのはなぜ?

原因の大半は、範囲を選ぶときのアクティブセルの位置です。条件付き書式の数式は選択範囲の左上のセルを基準に解釈されるため、右下からドラッグして選ぶと参照がずれます。カレンダー左上のセルを最初にクリックしてから範囲を広げ、数式のドルマークが $E6I$4 の形になっているかを確認してください。

Q2. 日数は暦日と稼働日のどちらで数えるべき?

チーム内で意味が統一されていることが最優先です。土日に動かない業務なら稼働日で数え、NETWORKDAYS関数に祝日一覧を渡します。設備の稼働や納品の締切のように暦で進む予定は暦日です。混在させる場合は列を分け、どちらの数え方かを見出しに明記してください。金曜開始の5日間は数え方で終了日が2日ずれます。

Q3. 行を挿入したら色が付かなくなったが直せる?

直せます。条件付き書式の「ルールの管理」を開き、対象を「このワークシート」にして各ルールの適用先を確認してください。カンマで区切られた飛び飛びの範囲になっているはずなので、=$I$6:$BP$105 のような1つの範囲に入れ直します。同じ数式の重複ルールがあれば削除します。月に一度この掃除をする運用にしておくと安全です。

Q4. エクセルの工程表からツールに切り替える目安は?

工程表を引き直す手間より、進捗の情報を集める手間のほうが大きくなったときです。担当者に聞いて回って代わりに入力している状態、同時に開けずに順番待ちが起きている状態、ファイルの版が複数並んでいる状態が続くなら、表計算ソフトの守備範囲を超えています。逆に引き直しだけが負担なら、条件付き書式の設定で解決します。

ブログ一覧へ

ほかの記事

触ってみるのが、いちばん早い。

5人まで無料で使えます。クレジットカードは不要です。

無料で始める