- 更新日 : 2025年12月2日
スプレッドシートで工程表を作る方法とは?ガントチャート作成から自動化まで
Googleスプレッドシート(Google Sheets)で工程表を作成すると、コストを抑えつつ、誰でも編集・共有しやすい形でスケジュール管理が行えます。
本記事では、基本的な工程表の作成方法から、条件付き書式を使ったガントチャート表示、関数による自動計算、テンプレートの活用まで、スプレッドシートで実践的な工程表を作成するための完全ガイドを提供します。
目次
スプレッドシートで工程表を作る基本的な構造
スプレッドシートで工程表を作成する際は、まず初めに、プロジェクトの全体像を把握し、必要な情報項目を定義して、見やすく管理しやすい表構造を設計します。 適切な構造設計により、プロジェクトの進捗状況を一目で把握でき、スケジュール管理の精度が向上します。
工程表に必要な基本項目の設定
効果的な工程表を作成するため、まず以下の基本項目を列として設定します。A列から順に、これらの項目を配置することで、論理的で使いやすい工程表の基盤を作ります。
- タスクID(A列):各タスクを一意に識別する番号
- タスク名(B列):作業内容の名称
- 担当者(C列):責任者または実施者の名前
- 開始日(D列):タスクの開始予定日
- 終了日(E列):タスクの完了予定日
- 期間(F列):作業日数(自動計算)
- 進捗率(G列):完了度をパーセンテージで表示
- ステータス(H列):未着手、進行中、完了など
- 備考(I列):特記事項や注意点
1行目にこれらのヘッダーを設定し、背景色を濃い色(例:紺色)、文字を白色にして見出しとして強調します。「表示」メニューから「固定」→「1行」を選択することで、スクロールしてもヘッダーが常に表示される状態を作ります。
階層構造を持つタスクの表現
大規模プロジェクトでは、タスクを階層的に管理する必要があります。親タスクと子タスクを視覚的に区別するため、以下の工夫を実装します。
- 設計フェーズ
- 1.1 要件定義
- 1.2 基本設計
- 1.3 詳細設計
- 開発フェーズ
- 2.1 環境構築
- 2.2 実装
- 2.3 単体テスト
- 子タスクのタスク名の前にスペースを追加
- タスクIDに階層番号を使用(1.1、1.2など)
- 親タスクの行を太字で表示
- 条件付き書式で親タスクの背景色を薄い色に設定
日付と期間の自動計算
期間列(F列)には、開始日と終了日から自動的に日数を計算する数式を設定します。
=IF(AND(D2<>””,E2<>””),NETWORKDAYS(D2,E2),””)
NETWORKDAYS関数を使用することで、土日を除いた営業日ベースの日数を計算できます。祝日を考慮する場合は、別シートに祝日リストを作成し、第3引数として指定します。
=NETWORKDAYS(D2,E2,祝日リスト!A:A)
プロジェクト全体の期間を表示するサマリー行を追加し、以下の数式で自動集計します。
プロジェクト開始日:=MIN(D:D)
プロジェクト終了日:=MAX(E:E)
総期間:=NETWORKDAYS(MIN(D:D),MAX(E:E))
ガントチャート機能の実装方法
条件付き書式とSPARKLINE関数を活用することで、スプレッドシート上に視覚的なガントチャートを作成でき、プロジェクトの全体スケジュールを直感的に把握できるようになります。 この視覚化により、タスクの重複や空白期間を即座に発見できます。
条件付き書式によるバーチャート作成
J列以降を使用して、日付に対応するセルを色付けすることでガントチャートを表現します。
まず、J1セルから右方向に日付を入力します(プロジェクト開始日から終了日まで)。
J1: =MIN(D:D)
K1: =J1+1
L1: =K1+1
(以降、プロジェクト終了日まで続ける)
次に、条件付き書式を設定します。J2:AZ100などの範囲を選択し、「表示形式」→「条件付き書式」から以下のカスタム数式を入力:
=AND($D2<=J$1,$E2>=J$1,$D2<>””)
この数式により、各タスクの開始日から終了日までの期間に対応するセルが自動的に色付けされます。進捗率に応じて異なる色を設定することも可能です。
完了タスク(進捗100%):緑色
進行中タスク(1-99%):青色
未着手タスク(0%):グレー
遅延タスク:赤色
SPARKLINE関数を使った簡易ガントチャート
より簡潔なガントチャートを作成する場合は、SPARKLINE関数を使用します。単一セル内にバーチャートを表示できるため、スペース効率が良好です。
=SPARKLINE({開始日-基準日,期間},{
“charttype”,”bar”;
“max”,プロジェクト期間;
“color1″,”white”;
“color2″,”blue”})
実際の数式例(J列に配置):
=IF(D2=””,””,SPARKLINE({D2-$D$1,E2-D2},{“charttype”,”bar”;”max”,MAX($E:$E)-MIN($D:$D);”color1″,”white”;”color2″,”blue”}))
マイルストーンの表示
重要な節目となるマイルストーンを視覚的に表現するため、特別な記号や色を使用します。
=IF(F2=0,”◆”,””) // 期間が0日の場合、ダイヤモンド記号を表示
マイルストーンには以下のような項目を設定します。
- プロジェクトキックオフ
- 設計レビュー完了
- 開発環境リリース
- 本番環境リリース
- プロジェクト完了
進捗管理と自動化機能の追加
工程表に進捗管理機能を組み込むことで、リアルタイムでプロジェクトの状況を把握し、遅延リスクを早期に発見できるようになります。 自動化により、手動更新の手間を削減し、常に最新の情報を維持できます。
進捗率の計算と表示
進捗率を視覚的に表示するため、複数の方法を組み合わせます。
- 手動入力と検証: データ入力規則を設定し、0〜100の数値のみ入力可能にします。データ → データの入力規則 → 条件:0〜100の間
- 子タスクからの自動集計: 親タスクの進捗率を子タスクから自動計算:=AVERAGE(IF(LEFT(A3:A10,3)=”1.1″,G3:G10))
- 視覚的な進捗バー: REPT関数を使用して進捗バーを作成:=REPT(“■”,G2/10)&REPT(“□”,(100-G2)/10)
遅延アラートの実装
スケジュール遅延を自動検出し、視覚的に警告を表示します。
=IF(AND(TODAY()>E2,G2<100),”⚠️遅延”,””)
条件付き書式と組み合わせて、遅延タスクの行全体を赤色でハイライト:
カスタム数式:=AND(TODAY()>$E2,$G2<100)
書式:背景色を薄い赤
遅延日数を計算して表示:
=IF(AND(TODAY()>E2,G2<100),TODAY()-E2&”日遅延”,””)
ステータス管理の自動化
進捗率に基づいてステータスを自動更新:
=IFS(
G2=0,”未着手”,
G2=100,”完了”,
AND(G2>0,G2<100,TODAY()<=E2),”進行中”,
AND(G2>0,G2<100,TODAY()>E2),”遅延”,
TRUE,”確認要”)
ステータスごとに異なるアイコンを表示:
=SWITCH(H2,
“未着手”,”⏸”,
“進行中”,”▶”,
“完了”,”✅”,
“遅延”,”🔴”,””)
共有とコラボレーション機能の活用
スプレッドシートの共有機能を最大限に活用することで、チーム全体でリアルタイムに工程表を更新・確認でき、コミュニケーションの効率が大幅に向上します。 適切な権限設定とコメント機能により、セキュアで効果的な協働作業が実現できます。
アクセス権限の設定
プロジェクトメンバーの役割に応じて、適切な権限を設定します。
- プロジェクトマネージャー:編集権限(全体管理)
- タスク担当者:編集権限(担当行のみ)
- ステークホルダー:閲覧権限
- 外部関係者:コメント権限
- 保護したい範囲を選択
- 右クリック→「範囲を保護」
- 権限を持つユーザーを指定
通知とコメント機能
タスクの更新や質問をコメント機能で管理:
@メンション機能の活用例:
「@tanaka この作業の優先度を確認してください」
「@全員 明日の会議でこのタスクについて議論します」
- 「ツール」→「通知ルール」
- 「ユーザーがフォームを送信したとき」
- 「変更が加えられたとき」
- 「即座に通知」または「日次ダイジェスト」を選択
フィルタビューの活用
メンバーごとに異なるビューを作成:
- データ → フィルタビュー → 新しいフィルタビュー
- 名前:「田中さんのタスク」
- 担当者列でフィルタ:「田中」のみ表示
- 進行中タスクのみ
- 今週期限のタスク
- 遅延タスク一覧
テンプレートと応用例
業種や規模に応じた工程表テンプレートを作成し、カスタマイズすることで、様々なプロジェクトに対応できる汎用的な管理ツールを構築できます。 以下に、実践的なテンプレートと応用例を紹介します。
建設業向け工程表
建設プロジェクト特有の要素を追加:
- 天候依存フラグ
- 資材納期
- 検査日程
- 安全管理項目
天候による自動延期計算:
=IF(天候フラグ=”あり”,WORKDAY(E2,予備日数),E2)
IT開発向けアジャイル工程表
スプリント管理に対応した構造:
スプリント番号 | ストーリーポイント | バーンダウン値
Sprint 1 | 20 | =累積完了ポイント
ベロシティ計算:
=SUMIF(スプリント列,スプリント番号,完了ポイント列)/期間
イベント企画向け工程表
カウントダウン機能を追加:
=IF(D2-TODAY()>0,”残り”&D2-TODAY()&”日”,””)
関係者リストと連動:
=VLOOKUP(C2,関係者マスタ!A:C,3,FALSE) // 連絡先を自動表示
Google Apps Scriptによる高度な自動化
定期的なレポート生成を自動化:
function generateWeeklyReport() {
var sheet = SpreadsheetApp.getActiveSheet();
var today = new Date();
var report = “週次進捗レポートnn”;
// 遅延タスクを抽出
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
if (data[i][7] < 100 && new Date(data[i][4]) < today) {
report += “遅延: ” + data[i][1] + “n”;}}
// メール送信
MailApp.sendEmail(“[email protected]”, “週次レポート”, report);}
効果的な運用のポイント
工程表を効果的に運用するためには、定期的な更新、明確なルール設定、継続的な改善が不可欠です。 以下のポイントを押さえることで、プロジェクト管理の質が向上します。
更新ルールの明確化
- 日次更新:各担当者が進捗率を更新
- 週次レビュー:PMが全体調整
- 月次見直し:スケジュール全体の再評価
更新履歴の記録:
=TEXT(TODAY(),”yyyy/mm/dd”)&”:”&$J$2&”が更新”
- J2 セルに「田中」など担当者名を入力
- 更新日時を記録したいセルに上記の式を入れる
KPIダッシュボードの作成
別シートに主要指標を集約:
全体進捗率:=AVERAGE(進捗率列)
完了タスク数:=COUNTIF(ステータス列,”完了”)
遅延タスク数:=COUNTIF(遅延フラグ列,”遅延”)
残作業時間:=SUMIF(進捗率列,”<100″,期間列)
- データ範囲を選択
- 挿入 → グラフ
- グラフの種類:面グラフ(バーンダウン)
スプレッドシート工程表で効率的なプロジェクト管理を実現
Googleスプレッドシートを使った工程表作成は、基本的な表構造の設計から始まり、ガントチャート表示、進捗管理の自動化、チームコラボレーションまで、段階的に機能を拡張していくことで、専門ツールに匹敵する管理システムを構築できます。
重要なのは、プロジェクトの規模と特性に応じて必要な機能を選択し、チーム全体で運用ルールを共有することです。過度に複雑な機能を追加するよりも、シンプルで更新しやすい工程表を維持することが、長期的な成功につながります。
継続的な改善により、スプレッドシートで作成した工程表は使いやすい管理ツールになるでしょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
STDEV.S関数の使い方:標本データから母集団の標準偏差を推定する方法
STDEV.S関数は、標本データから母集団全体の標準偏差を推定する統計関数です。品質管理での製品のばらつき評価、投資リスクの測定、顧客満足度調査の分析、製造工程の安定性評価など、サンプルデータから全体の変動性を推定する場面で活用されます。例…
詳しくみるNA関数の使い方:意図的にエラー値を生成してデータ処理を制御する方法
NA関数は、#N/Aエラー値を返すエクセルの情報関数です。一見すると単純な機能ですが、グラフ作成時の空白データの処理、VLOOKUP関数との組み合わせ、条件付きエラー表示など、データ分析やレポート作成において使われます。 意図的にエラーを生…
詳しくみるFREQUENCY関数でヒストグラム作成!以上・未満の範囲で頻度を自動集計
エクセルのFREQUENCY関数(読み方:フリークエンシー関数)は、データを範囲ごとに分類し、それぞれの区間に属する値の頻度分布を分析する関数です。 本記事では、FREQUENCY関数の基本的な使い方から、具体的な利用シーン、さらに他の関数…
詳しくみるスプレッドシートからメール送信するには?手動送信からGAS自動化まで完全解説
Googleスプレッドシートからメール送信を行うことで、データ共有の効率化、定期レポートの自動配信、条件に基づく通知システムの構築など、業務の自動化と効率化を大幅に進めることができます。手動での簡単な送信方法から、Google Apps S…
詳しくみるIFNA関数の使い方!IFERRORとの違いやエラー表示方法、応用例を解説
IFNA関数(読み方:イフ・エヌ・エー関数)は、Excelで発生しやすい「#N/A」エラーを置き換えるための関数です。VLOOKUPやXLOOKUPなどの検索関数と組み合わせて使えば、エラー時に任意のメッセージや値を表示でき、シートの可読性…
詳しくみるExcelのFLOOR関数とは?使い方や具体例、ROUND関数との違いを解説
数値を指定した基準値で切り捨てるなら、ExcelのFLOOR関数(フロア関数)が最適です。 この関数を使えば、「100円単位で切り捨てる」「5分単位で丸める」といった処理を一瞬で実現できます。手動で桁を揃えたり、IF関数で複雑な条件式を書い…
詳しくみる