進捗管理表をエクセルで作る手順|3枚に分けて壊れない形にする
進捗管理をエクセルで作るとき、多くの人は「どんな表を描くか」から考え始めます。ところが実際に半年後まで生き残る表と、2週間で放置される表の差は、表の見た目ではなくブックの構造で決まります。この記事は、進捗管理表をエクセルで一から作る手順を、シートの分け方、入力を縛る仕組み、集計の置き方、そして配り方まで通しで整理したものです。列の並べ方そのものよりも、作ったあとに他人が触っても壊れない形にすることを目的にしています。
作り方を調べる前に、答えを出しておく問いが1つある
表を作り始める前に、決めておかないと後から作り直しになる問いがあります。1つだけです。この表は、誰が、いつ、何分かけて更新するのか。
進捗管理表が続かない理由は、たいてい機能ではなく更新の負担にあります。作った本人は毎日開くので苦になりませんが、担当者から見ると「自分の作業とは関係のない、上に報告するための入力」でしかありません。現場では、更新に3分を超える表は続かないと言われています。1人あたり週に何回、1回あたり何秒で終わるかを先に決めると、必要な列の数が自動的に決まります。
具体的には、次の3つに答えを出しておきます。
・更新する人は誰か。担当者本人が入れるのか、とりまとめる人が聞いて回って入れるのか ・更新のきっかけは何か。朝会の直前なのか、作業が終わった瞬間なのか、金曜の夕方なのか ・1回の更新で触るセルは何個か。多くても3個に収まるか
3つ目が効きます。担当者が触るセルを3個までに絞ると、列がいくつあっても更新は30秒で終わります。逆に、担当者に開始日と終了日と進捗率と工数と備考を毎回埋めさせる設計にすると、最初の1週間は埋まり、翌週から空欄が並びます。空欄が並んだ表は、埋まっている行の信用まで落とします。
とりまとめる人が聞いて回って入れる形も、選択肢として悪くありません。人数が10人までなら、朝会で口頭確認しながら1人が入力するほうが、全員に入力を覚えてもらうより早く回ります。ただしその場合、とりまとめる人が休んだ週に表が完全に止まります。どちらを選ぶかは、止まったときにどれだけ困るかで決めます。
ブックを1枚で作らない。入力と元データと集計の3枚に分ける
ここからが手順です。最初にやるのは、シートを3枚用意することです。1枚目を「入力」、2枚目を「元データ」、3枚目を「集計」と名付けます。
入力シートは、行が増えていく場所です。 1行が1つの作業を表し、上から下へ積み上がっていきます。ここには見出しの行を1行だけ置き、それより上に説明文やタイトルを書きません。表の上に空行やタイトル行を置くと、後で並べ替えやフィルターを掛けたときに巻き込まれます。
元データシートは、選択肢を置く場所です。 状態の名前、担当者の名前、案件の名前、優先度の区分。入力シートで選ばせるものは、すべてここに列で並べます。ここを分けておく効果は大きく、担当者が1人増えたときに触るのはこのシートの1セルだけになります。入力シートの入力規則を直しに行く必要がありません。
集計シートは、数えた結果だけを置く場所です。 入力シートの中に小計行や合計行を差し込むと、行を追加するたびに数式の範囲がずれます。数える場所と入れる場所を物理的に分けておけば、この事故は起きません。
3枚に分ける理由をもう1つ挙げると、権限の話があります。後で触れる保護の設定を掛けるとき、シートごとに掛けられます。担当者に触ってほしいのは入力シートだけで、元データと集計は見えていればよい。この線引きが、シートを分けた瞬間に引けるようになります。
なお、案件が複数あるからといって、案件ごとにシートを増やすのは避けてください。案件が10件になればシートが10枚になり、横断して数えることができなくなります。案件は列で持ちます。入力シートに「案件」という列を1つ足して、そこに元データシートから選ばせるだけで済みます。
入力シートは、テーブル機能で作る
見出しの行を作ったら、範囲を選んで [挿入] から [テーブル] を選びます。Ctrl と T の同時押しでも同じです。この一手間を入れるかどうかで、その後の手間がまるごと変わります。
テーブルにすると、次のことが自動的に起きます。
・最終行の下に入力すると、テーブルの範囲が自動で広がる ・数式や書式が、新しい行に自動でコピーされる ・見出し行にフィルターのボタンが付く ・数式で範囲を指定するとき、セル番地ではなく列の名前で書ける
4つ目が地味に効きます。COUNTIFS で「状態」列を数えるとき、C2 から C500 のように書くと、501行目を足した瞬間に数え漏れます。テーブルにしておけば、範囲が自動的に伸びるため、行が増えても数式を直す必要がありません。進捗管理表は行が増え続ける前提の表なので、ここを固定範囲で書くと必ず後で事故ります。
テーブルにしたら、名前も付けておきます。[テーブルデザイン] のタブでテーブル名を「作業一覧」などに変えておくと、集計シートの数式が読めるものになります。半年後に自分がその数式を直すことを考えると、この30秒は元が取れます。
列の並びは、左から「読む列」、右へ行くほど「入れる列」にします。番号と作業名と担当は左、状態と実績と備考は右です。理由は、担当者が横スクロールしたときに、いま自分がどの行を触っているのか見失わないためです。あわせて、見出し行のすぐ下でウィンドウ枠を固定し、作業名の列までを固定範囲に含めておきます。
列の数は、最初は10列以内に抑えます。足りなければ後から足せますが、一度足した列を減らすのは、すでに誰かが埋めているぶん心理的に難しくなります。
テーブルにするときの注意点も1つあります。テーブルの内側では、結合セルが使えません。見出しを2段にして上の段を結合する、という作り方ができなくなります。これは制約に見えて、実は利点です。結合セルが入った表は、並べ替えもフィルターも集計も途中で止まるため、進捗管理には最初から向いていません。テーブル機能を使うと、その形を選べなくなるという意味で、設計が守られます。
同じ理由で、1つのセルに複数の情報を書く癖も断っておきます。作業名の欄に「設計書レビュー(田中/9月10日まで)」と書いてしまうと、担当でも期日でも数えられません。情報は1つのセルに1つだけ置き、数えたいものは必ず独立した列にします。
状態と担当は、手入力させずに選ばせる
進捗管理表がいちばん静かに壊れるのは、同じ意味の言葉が違う文字列で入ったときです。「完了」と「済」と「完了 」(末尾に空白)が混ざると、数式はこれらを別のものとして数えます。数字が合わないのに原因が見えない、という状態がここから生まれます。
防ぐ方法は決まっています。入力規則です。
データの入力規則を使用すると、ドロップダウン リストなど、ユーザーがセルに入力するデータの種類や値を制限できます。 出典: support.microsoft.com
手順は次の通りです。入力シートの「状態」列を選び、[データ] から [データの入力規則] を開きます。入力値の種類で「リスト」を選び、元の値に元データシートの範囲を指定します。同じことを「担当」列と「案件」列にも掛けます。
このとき、状態の選択肢は4つまでに絞ってください。「未着手」「作業中」「確認待ち」「完了」で足ります。選択肢が7つも8つもあると、担当者はどれを選ぶか迷い、迷ったセルは空欄のまま残ります。特に「一時停止」「保留」「中断」のように意味が近いものを並べると、人によって選ぶ言葉が変わり、結局データが揃いません。
「確認待ち」を入れておくのは意味があります。作業そのものは終わっていて、誰かの返事を待っている状態は、進捗管理でいちばん見落とされます。この状態を独立させておくと、集計したときに「止まっているのは作業ではなく確認だ」という事実が数字で見えます。
日付の列には、入力値の種類で「日付」を選び、エラーメッセージも設定しておきます。日付欄に「来週」「未定」と文字が入るのは、進捗管理表でよくある壊れ方です。文字が1つ入ると、その列を使った計算が全部エラーになります。
覚える数式は3本で足りる
進捗管理表に必要な数式は多くありません。実務で使うのは次の3本です。
1本目は TODAY です。 集計シートの決まったセルに =TODAY() を1つ置いて、そこを「今日」として全部の数式から参照します。数式の中に直接 TODAY を何度も書くと、後で日付をずらして確認したいときに動かせません。1か所に置いて参照する形にすると、そのセルを手で書き換えるだけで「来週の月曜だったらどう見えるか」を確かめられます。
2本目は COUNTIFS です。 集計シートで、条件に合う行を数えます。担当がAさんで状態が作業中の件数、案件がBで状態が未着手の件数、といった数え方をします。条件が1つなら COUNTIF でも同じですが、最初から COUNTIFS で書いておくと条件を足すときに書き直さずに済みます。
3本目は IF と TODAY を組み合わせた遅れ判定です。 予定終了日が今日より前で、状態が完了ではない行に印を付けます。数式で「遅れ」という文字を出してもよいのですが、後で述べる条件付き書式に任せて、数式では判定用の 1 と 0 だけを返す形にすると集計が楽になります。
XLOOKUP や SUMIFS を使う場面もありますが、最初の1枚には要りません。使える人が1人しかいない数式を入れると、その人が離れた瞬間に誰も直せない表になります。進捗管理表は道具であって作品ではないので、読めることを優先します。
数式を入れる場所にも決まりを作ります。入力シートの中に置く数式は、遅れ判定のような行ごとの計算だけにします。合計や件数の計算は必ず集計シートに置きます。この線を引いておくと、入力シートを並べ替えても壊れません。
条件付き書式は「遅れ」だけに使う
色を付けたくなる気持ちは分かりますが、色の種類が増えると、色そのものが情報を伝えなくなります。進捗管理表で条件付き書式を使う場所は、実務では2つに絞るとうまくいきます。
1つ目は、期限を過ぎていて完了していない行です。 行全体に薄い赤を敷きます。設定は、入力シートの表全体を選んだうえで [ホーム] から [条件付き書式] を開き、「数式を使用して書式設定するセルを決定」を選びます。数式では列を絶対参照、行を相対参照にするのが要点です。ここを間違えると、1行目だけ色が付くか、全部の行が染まるかのどちらかになります。
2つ目は、期限が3日以内に迫っていて完了していない行です。 こちらは薄い黄色にします。赤と黄色の2色だけなら、印刷しても白黒コピーしても、濃さの差で読み取れます。
やってはいけないのは、担当者ごとに色を分けることです。人が5人いれば5色になり、そこに遅れの赤が重なると、どの色が警告なのか判別できなくなります。担当者で見たいときは、色ではなくフィルターを使います。フィルターはテーブル機能を使っていれば最初から付いています。
進捗率をデータバーで表示する設定もありますが、進捗率そのものが主観に寄る数字なので、優先度は高くありません。8割という申告が実際には半分だった、という食い違いは、色を付けても解消しません。それより、状態が「作業中」のまま何日経っているかを数えるほうが、実態に近い数字になります。入力シートに「最終更新日」の列を1つ置いて、そこから今日までの日数を出す形が実用的です。
集計シートは、担当別と状態別の2つだけ作る
集計シートには、表を2つだけ置きます。増やしたくなりますが、見ない表を作っても更新の手間が増えるだけです。
1つ目は、担当別の持ち数です。 縦に担当者名、横に状態を並べ、COUNTIFS で件数を入れます。この表を見ると、誰が何件抱えているかが一目で分かります。進行をとりまとめる立場で最初に見るべきなのは、遅れている件数ではなく、1人に偏っている件数です。5人のチームで1人が15件、他が3件ずつという状態は、遅れが表に出る前の段階で分かります。
2つ目は、案件別の状態内訳です。 縦に案件名、横に状態を並べます。案件をまたいで進行を預かっている場合、この表がないと「どの案件がいま危ないか」を毎回目視で探すことになります。
この2つに加えて、集計シートの上部に数字を3つだけ大きく置いておくと、報告がそのまま済みます。全体の件数、遅れている件数、確認待ちの件数です。3つ目を入れておくのがコツで、確認待ちが積み上がっているときは、作業を増やすより返事を催促するほうが効きます。
ピボットテーブルを使う手もあります。集計の自由度は高くなりますが、開くたびに更新ボタンを押す必要があり、押し忘れると古い数字を見たまま会議が進みます。押し忘れが起きうる仕組みは、報告に使う表には向きません。COUNTIFS で書いておけば、開いた瞬間に最新の数字になります。
進捗率の欄を置くか、置かないか
進捗管理表を作るとき、必ず議論になるのが進捗率の欄です。結論を先に書くと、報告のために外へ出す必要がないなら、置かないほうが表は長持ちします。
理由は3つあります。1つ目は、判断の基準が人によって違うことです。 同じ作業を見ても、着手した時点で3割と答える人と、成果物ができるまで0割と答える人がいます。基準が揃っていない数字を足し合わせても、出てくる合計に意味はありません。
2つ目は、更新の手が止まりやすいことです。 状態を4つから選ぶのは一瞬ですが、いま何割かを考えるには手を止めて振り返る必要があります。1回の更新で30秒という設計を守るなら、考えさせる欄は削るのが筋です。
3つ目は、9割から動かなくなることです。 進捗率を入れる運用をしているチームでは、多くの作業が9割で止まったまま数週間過ぎる、という現象がよく起きると言われています。残りの1割に、確認待ちや手戻りが全部詰まっているためです。
それでも進捗率が要る場面はあります。発注者への報告書に割合を書く決まりがある場合や、出来高で支払いが動く仕事の場合です。その場合は、担当者に数字を入力させず、状態から自動で割り当ててください。未着手は0、作業中は50、確認待ちは90、完了は100、という具合です。IF を重ねるだけで書けます。この形なら、判断の基準は表の中で1つに固定され、担当者の手間も増えません。
作業の細かさを揃えておくことも効きます。1つの作業が2週間を超えると、その途中を割合で表すしかなくなります。作業を3日から5日で終わる単位に割っておけば、状態の4区分だけで進み具合が十分に伝わります。5日を目安に割る、と決めておくと、進捗率の欄そのものが要らなくなります。
触ってよい場所を、シートの保護で示す
ここまで作ったら、保護を掛けます。手順は少し独特で、先に「触ってよいセル」の側を解除してから、シート全体を保護します。
入力シートで、担当者が触る列だけを選び、[ホーム] からセルの書式設定を開いて [保護] タブの「ロック」のチェックを外します。そのうえで [校閲] から [シートの保護] を選びます。これで、ロックを外した列以外は編集できなくなります。元データシートと集計シートは、全体を保護します。
パスワードは、設定しないほうが実務では回ります。パスワードを掛けると、作った本人が休んだときに誰も直せません。保護の目的は不正防止ではなく、うっかり数式を消させないことです。パスワードなしの保護でも、その目的は十分に果たせます。
保護と一緒にやっておきたいのが、入力シートの見出し行にコメントを添えることです。「この列は選ぶだけです」「この列は自動計算なので触らないでください」といった一文を、セルのメモとして入れておきます。口頭で説明したルールは、3人目には伝わりません。表の中に書いてあれば、表を開いた人が全員読めます。
シートを非表示にする機能もありますが、元データシートを隠すのは避けてください。担当者が増えたときに、隠したシートの存在を知らない人が入力規則を直せず、担当者名を手入力で足してしまいます。見えていて触れない、という状態が正解です。
配るのはファイルではなく、置き場所へのリンク
作り終えたら配りますが、ここで多くの表が壊れます。メールに添付して送った瞬間、その表は人数分に分裂します。
置き場所を1つに決めて、そこへのリンクだけを共有してください。 クラウド上の共有フォルダに置き、リンクを配ります。同時に開いて編集する運用にするなら、共同編集ができる保存先である必要があります。
同時編集は便利ですが、万能ではありません。エクセルの共同編集では、行の挿入や並べ替えが同時に起きると、他の人の画面で見ている行がずれます。入力規則や条件付き書式の設定変更も、同時に行うと片方が反映されないことがあります。運用としては、行の追加と設定変更はとりまとめる人が1人でやる、担当者は既存の行の状態を更新するだけ、と決めておくのが無難です。
ファイル名でのバージョン管理は、始めた時点で黄信号です。進捗管理表_最新_v3_修正版、という名前が現れたら、その表はすでに複数存在しています。クラウドに置いてバージョン履歴に任せ、ファイル名は変えないのが原則です。
印刷して配るのも、同じ意味で表を止めます。紙は配った瞬間に過去のものになり、受け取った人は次に紙が配られるまで最新を見ません。会議で紙が要るなら、その場で印刷して会議が終わったら捨てる、という扱いにします。
作った翌週、最初の1回をどう回すか
表が完成しても、運用が始まらなければ意味がありません。最初の1週間の回し方を決めておきます。
初日にやることは、全行を埋めることです。 空欄が1つでも残っていると、その空欄は「まだ運用が始まっていない」という合図として読まれます。分からない項目は「未定」ではなく、状態の選択肢の中から選べるものを入れます。
2日目から4日目は、更新を求めないでください。 作った直後は関心が高いので、頼めば更新されます。ただし、それは表が機能している証拠ではありません。数日置いてから確認したときに更新されているかどうかが、本当の運用の姿です。
5日目に、更新されていない行を数えます。 ここで半分以上が更新されていなければ、原因は担当者のやる気ではなく設計にあります。触るセルが多すぎるか、更新のきっかけが決まっていないか、そもそも担当者がその表を開く理由がないかのいずれかです。
更新のきっかけは、既存の行動にくっつけると定着します。朝会の直前、日報を書く前、退勤前の5分。新しく「進捗を入力する時間」を作ろうとすると、それ自体が守られません。現場では、既存の会議の冒頭3分を入力の時間に充てる形がいちばん続くと言われています。
もう1つ、更新された表を実際に使う場面を作ってください。入力しても誰も見ないと分かると、入力は止まります。朝会で集計シートの3つの数字を読み上げるだけでも、見られている実感が生まれます。
3か月後に、この表がどうなっているか
きれいに作った表も、時間が経つと形が変わります。よくある崩れ方は3つです。
1つ目は、列が増えることです。 誰かが「この情報も要る」と言うたびに列が足され、半年後には20列を超えます。列が増えると横スクロールが必要になり、スマートフォンからは実質的に読めなくなります。対策は、列を足すときに1つ減らす、という決まりを作ることです。
2つ目は、行の中に手入力が混ざることです。 入力規則を掛けていても、担当者が別のセルからコピーして貼り付けると、規則を素通りして値が入ります。これは仕様なので防ぎきれません。月に一度、状態の列でフィルターを開いて、想定外の値が並んでいないか確認する習慣が要ります。
3つ目は、終わった行が消されずに残ることです。 完了した行が積み上がると、表を開いたときに現在の作業が見えなくなります。月末に完了行を別シートへ移す運用を決めておきます。削除ではなく移動にするのは、後から「あの作業はいつ終わったか」を聞かれるからです。
これらは、表計算ソフトそのものの欠点というより、行と列で持つ形の性質です。1つのファイルに1つの真実を置くという構造は、更新する人が増えるほど維持が難しくなります。人数が10人を超えたあたりから、表を保つための作業時間が、表から得られる情報の価値を上回り始めます。
表計算のまま続ける場合と、置き場所を変える場合
作った表を使い続けるか、別の形に移すかは、次の3つで判断できます。
・入力する人が3人以下で、全員が同じ場所で働いているか ・1週間に増える行が20行を超えないか ・進捗の話が、表の外(チャットやメール)で行われていないか
3つとも当てはまるなら、表計算のままで問題ありません。むしろ、慣れた道具を捨てるほうが損になります。1つでも外れているなら、置き場所を変える検討に入る価値があります。
判断の材料として、ボード型のタスク管理ツールが何をどこまで公開しているかを見ておくと、比べる軸が定まります。機能の一覧はできることにまとまっており、どこまでが無料でどこから費用が発生するのかは料金で確認できます。表計算からの移行でいちばん気になるのは、いま入っているデータをどう運ぶかという点ですが、その考え方はTrelloからの移行に整理されています。社内のデータを外に置くことになるため、安全性の考え方にも目を通しておくと、社内の承認を取るときの説明が早くなります。
他のサービスと比べるなら、板の形が近いものから見るのが分かりやすくなります。カードを列に並べる形の代表格についてはTrelloとの比較に、一覧とタイムラインを行き来する形についてはAsanaとの比較にまとまっています。データベースを自分で組み立てる形が好みならNotionとの比較、色分けした表で全体を眺める形ならmonday.comとの比較が参考になります。国内のサービスで課題管理から入りたい場合はBacklogとの比較、無料の板から試したい場合はJootoとの比較を見てください。全体を横に並べたものは比較の一覧にあります。移行の前に出てくる細かい疑問はよくある質問に集まっています。
ただし、道具を変えれば更新されるようになる、という話ではありません。この記事の冒頭で挙げた問い、つまり誰がいつ何分かけて更新するのかという設計は、道具が変わっても残ります。ボード型の道具が表計算より有利なのは、カードを動かすという行為そのものが更新になる点と、機能で絞らず、区切るのは人数とボードの数だけという料金の考え方であれば、使う人を絞らずに済む点です。逆に、細かい計算をして数字を作り込む用途では、表計算のほうが向いています。両方を使い分けるチームも珍しくありません。
Q1. 進捗管理表をエクセルで作るとき、最初に決めるべきことは何ですか?
誰が、いつ、何分かけて更新するのかです。担当者が1回の更新で触るセルを3個までに抑えられる設計なら、列がいくつあっても運用は続きます。逆にここを決めずに列を並べると、最初の1週間だけ埋まって、翌週から空欄が残ります。表の見た目より先に、更新の負担を決めてください。
Q2. シートは何枚に分けるのがよいですか?
入力、元データ、集計の3枚が基本です。入力シートは行が増える場所、元データシートは状態や担当者などの選択肢を置く場所、集計シートは数えた結果だけを置く場所とします。入力シートの中に合計行を差し込むと、行を足すたびに数式の範囲がずれるため、数える場所は物理的に分けます。
Q3. 状態の選択肢はいくつ用意すればよいですか?
4つまでに絞ってください。未着手、作業中、確認待ち、完了で足ります。選択肢が増えるほど担当者は迷い、迷ったセルは空欄で残ります。確認待ちを独立させておくと、止まっているのが作業なのか誰かの返事なのかを集計で切り分けられます。
Q4. エクセルで続けるか、別のツールに移すかの判断基準はありますか?
入力する人が3人以下、1週間に増える行が20行以内、進捗の話がチャットやメールに散らばっていない、この3つが揃っているならエクセルのままで問題ありません。1つでも外れている場合は、表を保つための作業時間が情報の価値を上回り始めているので、置き場所を変える検討に入る時期です。