業務システム

エクセルでプロジェクト管理する方法|管理表の列設計・ガントチャートの数式・複数プロジェクトの一元管理

エクセルでプロジェクト管理する方法|管理表の列設計・ガントチャートの数式・複数プロジェクトの一元管理

エクセルでのプロジェクト管理は、1行1タスクの管理表を作り、その右側に条件付き書式でガントチャートを描き、遅延を数式で自動判定する形にすると、必要なExcelと保存先を利用できる環境では、新たな管理ツールを購入せずに始められます。管理表を作る際は、列の決め方・休日の扱い・保存先を先に確認します。

この記事では、管理表の列設計、祝日を除いた営業日の数え方、ガントバーと今日線を塗る数式、進捗率と遅延の判定、複数プロジェクトを1か所で見る2つの構成、複数人で更新するときの保存先までを、そのまま入力できる数式付きで解説します。Excelで管理すること自体が自社に合うかを先に判断したい場合は、エクセルでのプロジェクト管理が向いているケースと運用限界の見極めを参照してください。

まとめ:エクセルでプロジェクト管理を回すための要点

  • 管理表は「1行1タスク」のテーブルにし、最初からプロジェクト列を持たせる。セル結合は使わない
  • 営業日数は NETWORKDAYS に祝日表を渡して数える。祝日は内閣府のCSVを貼り、会社の休日を追記する
  • ガントチャートはグラフではなく条件付き書式で描く。予定バー・進捗・今日線・休日の4ルールで足りる
  • 全体の進捗率は単純平均ではなく、営業日数で重み付けした SUMPRODUCT で出す
  • 複数プロジェクトは「1テーブル+プロジェクト列」を既定にし、PMごとにファイルを分けたいときだけPower Queryで束ねる
  • 複数人で更新するならOneDriveかSharePoint Onlineに.xlsxで置き、共同編集を使う。旧「共有ブック」ではテーブルも条件付き書式も追加できない

以下、作る順番に沿って説明します。

管理表を作る前に決めるタスクの粒度と更新担当

表を作り始める前に決めるのは、タスクをどこまで細かく分けるかと、誰がどの列を更新するかの2点です。ここが曖昧なまま列を増やすと、行ごとに粒度がばらつき、進捗率を集計しても意味のない数字になります。

粒度は、担当者が1人に決まり、終わったかどうかを第三者が判定できる単位まで分けます。「設計」では大きすぎ、「画面設計書のレビュー完了」なら判定できます。作業を分解する手順そのものはWBSとは?作り方5ステップとガントチャートとの違いを具体例で解説で扱っているので、WBSを作ってからその末端をExcelの行に落とすと迷いません。

更新担当は列単位で分けます。ステータスと進捗率はタスクの担当者、開始日・終了日・先行タスクはPMが更新する、と決めておくと、日程が勝手に動く事故を防げます。

プロジェクト管理表の列設計(1行1タスクのテーブル)

管理表は次の12列で始めます。列はこれ以上増やすより、備考を別シートの課題管理表に逃がすほうが長持ちします。

列 入力方法 入力例
ID 手入力 A-012
プロジェクト リスト選択 基幹刷新
WBS番号 手入力 2.3
タスク名 手入力 画面設計書のレビュー
担当 リスト選択 佐藤
開始日 日付 2026/10/13
終了日 日付 2026/10/23
営業日数 数式 9
進捗率 0%・50%・100% 50%
ステータス リスト選択 進行中
先行タスク IDを手入力 A-011
判定 数式 遅延

見出し行を含む範囲を選んで Ctrl+T でテーブルに変換し、テーブル名を「タスク」にします。テーブルにすると、空の列に数式を1つ入れるだけで全行と後から追加した行に同じ式が入る(集計列)ため、行を足すたびに式をコピーする手間と、コピー漏れによる集計ずれが消えます。

ステータスは「未着手・進行中・完了・保留」の4値に絞り、[データ]→[データの入力規則]で「リスト」を指定し、エラーメッセージのスタイルを「停止」にして候補外の直接入力を防ぎます。コピー・貼り付け後は候補外の値がないか確認します。「ほぼ完了」「確認中」のような値が混ざると、次章の判定式も件数集計も拾えません。進捗率も自由入力にすると「ずっと90%」の行が残りやすいので、着手で50%・完了で100%とする0%・50%・100%の3段階に限るのが実務的です。

セル結合は使いません。結合したセルを含む範囲は並べ替えやフィルターが正しく動かず、プロジェクト名をグループ見出しのように結合して見せたくなったら、それはプロジェクト列で絞り込むべき合図です。

営業日数と日付軸を作る数式(NETWORKDAYSと祝日表)

祝日表を別シートに置く手順

営業日を正しく数えるには、土日に加えて祝日を除く必要があります。内閣府が国民の祝日についてのページで公開している syukujitsu.csv を使うと手入力が要りません。このCSVは文字コードがShift_JISで、1列目が日付・2列目が祝日名です。1955年から収録されており、2026年10月時点の最終行は2027年11月23日(勤労感謝の日)で、1,000行を超えます。

「祝日」シートにCSVの中身を貼り、年末年始・夏季休業など会社独自の休日を同じ列の下に追記してテーブル化し、テーブル名を「祝日」、日付の列名を「日付」にします。翌年分が公開されたら行を足すだけで、全タスクの営業日数が再計算されます。

営業日数と終了日を出す計算式

開始日と終了日を入力して営業日数を求める式と、開始日と営業日数を入力して終了日を求める式は、どちらか一方だけを使います。同じ行で両方を数式にすると、営業日数が終了日を、終了日が営業日数を参照して循環参照になります。

営業日数(土日と祝日表を除く)
=NETWORKDAYS([@開始日],[@終了日],祝日[日付])

日曜だけ休みの現場(週末の番号11=日曜のみ)
=NETWORKDAYS.INTL([@開始日],[@終了日],11,祝日[日付])

開始日と営業日数から終了日を求める(営業日数は手入力)
=WORKDAY([@開始日],[@営業日数]-1,祝日[日付])

日曜だけ休みの現場で終了日を求める
=WORKDAY.INTL([@開始日],[@営業日数]-1,11,祝日[日付])

NETWORKDAYS は開始日と終了日の両方を数えます。2026年10月5日(月)から10月16日(金)は平日10日ですが、10月12日がスポーツの日なので結果は9です。逆算で WORKDAY の日数を「営業日数−1」にしているのは、WORKDAY が開始日の翌営業日から数え始めるためで、−1を忘れると終了日が1日後ろにずれます。この逆算は開始日が営業日であることが前提で、土曜や祝日を開始日にすると1日早い終了日が返ります。

ガントチャートを条件付き書式で描く手順

日単位の予定バー・進捗・今日線・休日の4ルール

管理表の右(ここではN列以降)に日付の見出しを並べ、セルの塗りでバーを表現します。以下は、見出し行が4行目、データが5行目から、開始日がF列・終了日がG列・進捗率がI列にある前提です。

  1. N4にプロジェクトの開始日を入れ、O4に =N4+1 を入れて右へコピーする。表示形式は d、1行上に =N4 を入れて表示形式 aaa で曜日を出す
  2. バーを描く範囲(例:N5:DA200)を選び、[ホーム]→[条件付き書式]→[新しいルール]→「数式を使用して、書式設定するセルを決定」を選ぶ
  3. 下の4つの式を1つずつ登録し、それぞれ塗りつぶしの色を決める
  4. [ルールの管理]で、今日線→休日→進捗→予定バーの順に並べる(上のルールほど優先される)
予定バー
=AND(N$4>=$F5,N$4<=$G5)

進捗(暦日数に進捗率を掛けた概略表示。営業日ベースの完了位置や実績日付は示さない)
=AND(N$4>=$F5,N$4<$F5+($G5-$F5+1)*$I5)

今日線
=N$4=TODAY()

休日(祝日テーブル全体を参照)
=WORKDAY(N$4-1,1,INDIRECT("祝日[日付]"))<>N$4

$ の位置が要です。N$4 は行を固定して日付の見出しを、$F5 は列を固定して各行の開始日を参照させています。条件付き書式の数式欄ではテーブルの構造化参照([@開始日] の形)を受け付けないので、ここだけはA1形式で書きます。休日の式だけは、行が増え続ける祝日テーブルを固定範囲で指定すると末尾に追記した会社休日が漏れるため、INDIRECT でテーブル名を文字列として渡しています。休日の式は「前日から数えた次の営業日がその日自身でなければ休日」という判定で、祝日表を変えれば塗りも追随します。

期間が3か月を超えるときの週単位の軸

日単位の軸は半年で約180列になり、画面にも印刷にも収まりません。期間が長いプロジェクトは、N4に開始週の月曜日、O4に =N4+7 を入れて週単位にし、予定バーの式を次に差し替えます。今日線の式も =AND(N$4<=TODAY(),N$4+6>=TODAY()) に変えて当週を示し、日単位の休日・進捗ルールは削除します。半年ならおおむね26〜27列に収まります。

週単位の予定バー(その週に1日でも掛かれば塗る)
=AND(N$4<=$G5,N$4+6>=$F5)

週単位では1日のずれが見えなくなるため、遅延の把握は次章の判定列に任せ、ガントは全体の重なりを見る用途に割り切ります。

積み上げ横棒グラフで作る方法との使い分け

Microsoftのガントチャートの作成手順は「Excelには事前定義されたガントチャートの種類はない」としたうえで、積み上げ横棒グラフの1系列目(開始日)を「塗りつぶしなし」にし、2系列目(日数)だけを見せる手順を案内しています。見た目は整いますが、固定のセル範囲を参照するグラフではタスク追加時に参照範囲の確認が必要で、進捗の塗り分けや今日線も追加の工夫が要ります。

日々更新する管理表には条件付き書式、月次報告の資料に貼る1枚にはグラフ、と用途で分けるのが手戻りの少ない選び方です。

進捗率と遅延を自動で判定する数式

判定列・全体の進捗率・担当者別の残件数は、次の3つの式で出せます。

判定列(完了は空欄、終了日超過は「遅延」、開始日を過ぎて未着手は「着手遅れ」)
=IF([@ステータス]="完了","",IF([@終了日]<TODAY(),"遅延",IF(AND([@開始日]<=TODAY(),[@ステータス]="未着手"),"着手遅れ","")))

全体の進捗率(営業日数で重み付け)
=SUMPRODUCT(タスク[営業日数],タスク[進捗率])/SUM(タスク[営業日数])

担当者別の未完了件数
=COUNTIFS(タスク[担当],"佐藤",タスク[ステータス],"<>完了")

全体の進捗率を AVERAGE で出すと、1日で終わるタスクと19日かかるタスクが同じ重さで数えられます。1日のタスクが完了・19日のタスクが未着手なら、単純平均は50%ですが、営業日数で重み付けすると5%です。この5%は期間で重み付けした値で、各タスクの投入人数と1日あたりの作業時間がおおむね同じなら残りの作業量に近い数字になります。待ち時間を含むタスクや人数の違うタスクが混ざる場合は、営業日数の代わりに予定工数の列を作って重み付けします。

判定列にはさらに条件付き書式で「遅延」を赤、「着手遅れ」を黄に塗っておき、週次の会議ではテーブルのフィルターで判定列が空でない行だけを表示して確認します。

複数プロジェクトをエクセルで一元管理する2つの構成

複数のプロジェクトをExcelで扱うとき、プロジェクトごとにシートやファイルをコピーして増やすと、横断の集計をするたびに転記が発生します。構成は次の2つのどちらかに決めます。

1つのテーブルにプロジェクト列を持たせる構成

全プロジェクトのタスクを「タスク」テーブル1つに入れ、プロジェクト列で区別します。プロジェクト別の一覧は別シートに FILTER で出します。

B1で選んだプロジェクトの未完了タスク(タスク名からステータスまでの列)
=FILTER(タスク[[タスク名]:[ステータス]],(タスク[プロジェクト]=$B$1)*(タスク[ステータス]<>"完了"),"該当なし")

プロジェクト別の進捗率(A2にプロジェクト名)
=SUMPRODUCT((タスク[プロジェクト]=A2)*タスク[営業日数]*タスク[進捗率])/SUMIFS(タスク[営業日数],タスク[プロジェクト],A2)

FILTER はExcel for Microsoft 365・2024・2021で使え、2019と2016では使えません。古い版が混ざる職場では、テーブルからピボットテーブルを作り、プロジェクトとステータスをスライサーで絞る形に置き換えます。

この構成を既定にします。1人のPMやPMOが全体を見る規模なら、表が1つであることの利点(担当者の重なりも全体進捗も同じ表から出せる)が、行数が増える不便を上回ります。

プロジェクトごとのファイルをPower Queryで束ねる構成

PMごとにファイルを持ち、各自の更新責任を分けたい場合は、全員が同じ列構成のテンプレートを使い、1つのフォルダーに保存します。集計用のブックで[データ]→[データの取得]→[ファイルから]→[フォルダーから]を選び、そのフォルダーを指定して結合すると、Power Queryが各ファイルのデータを1つの表にまとめるクエリを作ります。

結合結果にはファイル名の列(Source.Name)が付くので、ファイル名をプロジェクト名にしておけば、そのままプロジェクト列として使えます。新しいファイルをフォルダーに置いて[データ]→[すべて更新]を押せば集計に加わります。

この構成が壊れるのは、誰かがテンプレートの列名を変えたり列を足したりしたときです。Power Queryは同じスキーマ(列構成)であることを前提に結合するため、列名とデータ型を統一し、見出しセルを保護します。列順は一致していなくても結合できます。構成を変更するときは、テンプレートだけでなく既存ファイルと集計クエリも合わせて更新します。

担当者の負荷を週単位で重ねて見る表

複数プロジェクトで最初に問題になるのは、同じ人に同じ週のタスクが集中することです。行に担当者、列に週の月曜日を並べ、次の式で「その週に掛かっている未完了タスクの件数」を出します。

A5に担当者名、B4に週の月曜日
=SUMPRODUCT((タスク[担当]=$A5)*(タスク[ステータス]<>"完了")*(タスク[開始日]<=B$4+6)*(タスク[終了日]>=B$4))

例えば3件以上を赤く表示し、タスクが重なる担当者と週を確認するきっかけにします。この件数だけでは余力や過負荷は分からないため、各タスクの予定工数と担当者の稼働可能時間を確認してから、日程や担当を調整します。重なった負荷を日程の調整でならす考え方は平準化とは?ガントチャートで担当者の負荷をならすリソース平準化の仕組みとMicrosoft Projectの設定、横断管理の優先度の付け方は複数プロジェクト管理とは?進捗・リソース・優先度の横断管理と仕組み化の判断で詳しく扱っています。

複数人で更新するときの保存先と共有ルール

複数人で同じ管理表を更新するなら、Excelの共同編集を使います。Windows・Macのデスクトップ版で共同編集するには、Microsoft 365のサブスクリプションと対応する最新のExcelへのサインインが必要で、買い切りのExcel 2021・2024を使う人はExcel for the webで参加します。そのうえで、ブックをOneDrive・OneDrive for Business・SharePoint Onlineのいずれかに保存し、ファイル形式を.xlsx・.xlsm・.xlsbにします。社内のファイルサーバーや、オンプレミスのSharePointでは共同編集できません。Microsoft 365の対応版では、これらのクラウドに保存したブックで自動保存を利用できます。自動保存がオンで、同期エラーや同期の一時停止がないことを確認し、保存忘れによる変更の消失を減らします。

避けるべきは旧来の「共有ブック」です。Microsoftは共有ブックを共同編集に置き換えられた以前の機能と位置づけており、共有ブックではテーブルの作成・挿入も条件付き書式の追加・変更もできません。この記事の管理表はテーブルと条件付き書式が前提なので、共有ブックにした時点で育てられなくなります。

共同編集中に誰かがフィルターや並べ替えをかけると、他の人の表示まで変わります。これを防ぐのがシートビューで、自分の作業用の並べ替えやフィルターを保存でき、ほかの利用者の表示には影響しません。ただし、保存したビュー自体は共同利用者も選択できます。シートビューはSharePointまたはOneDriveに保存したブックで使え、最大256個まで作れます。

ファイルは日付付きのコピーを増やさず1本にします。どれが最新か分からなくなるのが、Excel管理が崩れる典型的な入口です。

テンプレートから始める場合に確認する項目

ゼロから作らず、MicrosoftがMicrosoft Createで公開しているプロジェクト管理やガントチャートのテンプレートから始める方法もあります。その場合は、使い始める前に次の4点を確認します。

  • データ部分がテーブルになっているか(なっていなければ Ctrl+T で変換し、行追加で式が切れないようにする)
  • セル結合が使われていないか(並べ替えとフィルターが正しく動かない)
  • 土日だけでなく祝日を除いて日程を数えているか(祝日表を足し、営業日の式に渡す)
  • マクロ(.xlsm)に依存していないか(共同編集は.xlsmにも対応するが、Excel for the webではVBAマクロを実行できない)

採否は該当項目の数ではなく、必要な修正内容で判断します。例えばExcel for the webで使うのに必須処理がVBAマクロに依存している場合は、マクロを使わないテンプレートへの変更か、前章までの列設計での作り直しを検討します。

専用ツールへ移る目安となる3つの兆候

Excelのガントチャートは、先行タスクが遅れても後続タスクの日程を自動では動かしません。次のどれかが毎週起きているなら、Excelの限界に当たっています。

  • 先行タスクの遅れを受けて、後続タスクの開始日・終了日を手で何行も書き換えている
  • 更新がPM1人に集中し、担当者がステータスを書き込まなくなっている
  • タスクに関するやり取りがメールやチャットに散り、管理表には結果しか残っていない

どの兆候で移行を決めるかの詳しい判断基準はエクセルでのプロジェクト管理が向いているケースと運用限界の見極めに、ツールの選び方は中小企業のプロジェクト管理ツールの選び方|コスト・機能過不足・定着で外さない判断軸にまとめています。移行する場合も、この記事の列設計(1行1タスク・プロジェクト列・4値のステータス)はCSV移行の元データとして使えます。ただし、取り込み時には移行先の必須項目、列の対応、日付形式、ステータス値を合わせます。

よくある質問

エクセルでガントチャートは作れますか?

作れます。Excelにガントチャート専用のグラフの種類はありませんが、2つの方法があります。日々更新する管理表なら、日付を横に並べたセルに条件付き書式で =AND(N$4>=$F5,N$4<=$G5) のような式を設定し、開始日から終了日までを塗る方法が向いています。報告資料用には、Microsoftが案内している積み上げ横棒グラフの1系列目を「塗りつぶしなし」にする方法が使えます。

アジャイルのタスク管理はExcelでできますか?

できますが、ガントチャートではなくバックログの表として作ります。1行1ストーリーにして「スプリント」列と「ステータス」列を持たせ、ステータスを「ToDo・進行中・完了」に絞れば、ピボットテーブルでスプリント別・ステータス別の件数が出ます。カード形式のボードで見たい、進行中の件数に上限を設けたいといった要件が出てきたら、カンバン方式のタスク管理とは?ボードの作り方とWIP制限・リードタイムの測り方の考え方で専用のボードに移るほうが楽です。

エクセルで進捗率をバーで表示するには?

進捗率の列を選び、[条件付き書式]→[データバー]を設定します。そのままだと最大値が列内の最大の数値に合わせて動くため、[ルールの管理]で最小値を「数値 0」、最大値を「数値 1」(100%)に固定してください。固定しないと、全タスクが50%のときにバーが満タンに見えます。ガントチャート側で進捗を濃く塗る方法は、本文の進捗ルールの式を参照してください。

課題管理表はタスクの管理表と分けるべきですか?

分けます。タスクは「やると決まった作業」、課題は「まだ対応が決まっていない問題」で、持つべき列が違うためです。課題管理表には、発生日・内容・影響するタスクのID・対応者・対応期限・解決日・結論の列を置き、結論として作業が発生したらタスクの管理表に行を追加します。同じ表に混ぜると、ステータスと進捗率の集計に課題の行が混ざって数字が狂います。

プロジェクトを選ぶと担当者の候補が変わるプルダウンは作れますか?

作れます。プロジェクトごとに担当者の一覧を縦に並べ、その範囲にプロジェクト名と同じ名前を[数式]→[名前の定義]で付けます。担当列の入力規則で「リスト」を選び、元の値に =INDIRECT($B5)(B列がプロジェクト)と入れると、選んだプロジェクトの担当者だけが候補に出ます。定義名にはスペースを使えませんが、アンダースコアや途中のピリオドは使えます。先頭の数字やセル参照と同じ名前も避け、プロジェクト名は「基幹刷新」のように定義名の規則を満たす表記にそろえます。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.27 テックブログ Brotli 脆弱性:CVE-2026-111497の影響確認とNode.js・Python・.NETの更新手順
  2. 2025.02.27 コラム トラッキングビーコン(Webビーコン)とは?仕組み・用途・確認と対策を徹底解説
  3. 2026.10.27 テックブログ Joshin(ジョーシン)不正アクセス:最大600万件の対象とサブスク初期パスワードの対処
  4. 2026.10.28 テックブログ リンツ不正アクセス:314万件の対象確認とパスワード強制リセット後の対処
  5. 2026.10.23 テックブログ Renta!はいつ再開?不正アクセスでメールアドレス等が流出したおそれ・再開時のパスワード再設定と運営側の対応

RELATED POSTS 関連記事

目次