エクセルで当番表を効率的に作る方法|休み・シフト変更にも対応できるローテーション作成術

月初の会議前、急いで当番表を更新しようとしたら「この人休みだった…」「前回と同じ人に偏ってる…」と気づいて、全部作り直しになった経験ありませんか。
ロロメディア編集部でも同じことが起きて、提出10分前に全修正という地獄を見ました。

当番表は一度仕組みを作れば、毎月ほぼ触らずに回せます。逆に、手入力でその場対応していると、休み・変更・偏りが必ず崩れます。
ここでは、現場で実際に使っている「崩れない当番表」をエクセルで作る手順を、再現できるレベルまで具体的に解説します。


目次

エクセル当番表は「自動ローテーション前提」で作る

「とりあえず表を作ってから人を入れる」という順番で作ると、あとで必ず破綻します。
最初に決めるべきは「ローテーションの仕組み」です。ここを曖昧にすると、誰かに偏ったり、変更時に崩れます。

ロロメディアでは最初、日付ごとに担当者を手で入れていましたが、休みが1人出るだけで全体をズラす必要がありました。
そこで「番号で回す」設計に変えたところ、修正がほぼ不要になりました。

実務では、以下の順番で設計すると崩れません。

  • 担当者に番号を振る(1〜N)
  • 日付ごとに番号を自動で循環させる
  • 番号に対応する名前を表示する

この仕組みにすると、「人」ではなく「番号」を動かすだけになります。
つまり、誰かが休みでも番号を1つ飛ばすだけで済むんです。


基本の当番表テンプレートを作る手順

最初に「再利用できる型」を作ります。ここを適当にやると毎月やり直しになります。

まずシート構成はこう分けてください。

  • シート1:当番表(カレンダー形式)
  • シート2:メンバー一覧

ここでつまずくのが、「名前を直接入力してしまう」ことです。
これをやると、後でメンバー変更があったときに全部修正になります。

手順

まず、メンバー一覧シートに以下を入力します。

番号名前
1田中
2佐藤
3鈴木
4山本

この「番号」がローテーションの軸になります。
次に当番表シートに日付を並べます。

そして、担当者のセルには以下の考え方で式を入れます。

  • 日付の行番号を使って番号を循環
  • MOD関数(余りを出す関数)で繰り返し処理

例えば以下の式です。

=INDEX(メンバー一覧!B:B, MOD(ROW()-開始行, 人数)+1)

ここで止まる人が多いですが、意味はシンプルです。
「行数を人数で割った余りで、担当番号を決める」という仕組みです。

これで、下にコピーするだけで自動ローテーションが完成します。


休み対応は「除外リスト」で処理

当番表が崩れる最大の原因は「休み」です。
ここを手作業で調整していると、必ずズレます。

編集部でも、休みの人を手で消して詰めていたら、全体が2日分ズレて再作成になりました。
この問題は「除外」という考え方で解決できます。

実務で使う方法

別シートに「休みリスト」を作ります。

日付名前
4/5田中
4/12鈴木

次に当番表側で、以下のように処理します。

  1. 通常ローテーションで担当者を出す
  2. その人が休みリストにいるかチェック
  3. いた場合、次の番号にずらす

このとき使うのが「COUNTIFS関数」です。
条件に一致するデータがあるかを確認できます。

実際の式はこういう構造になります。

  • 通常担当者を出す
  • COUNTIFSで休み判定
  • IF関数で別の人に変更

この仕組みにすると、休みを追加するだけで当番が自動調整されます。
毎月の修正作業が消えます。


シフト変更は「手入力禁止」で崩れを防ぐ

急な変更が入ったとき、セルを直接書き換えていませんか。
このやり方は、次の月に必ずミスを引きずります。

実際にあったケースですが、1回だけ手修正した内容がそのまま残り、翌月のローテーションが全部ズレました。
原因は「例外をその場で処理したこと」です。

正解は「変更専用の入力欄を作る」ことです。

実務での設計

当番表とは別に「変更リスト」を用意します。

日付変更後担当
4/10山本

当番表のセルでは、次の順番で判定します。

  1. 変更リストに該当日があるか確認
  2. あればその名前を表示
  3. なければ通常ローテーション

これで、手入力せずに変更を反映できます。

この設計のメリットは明確で、
どこで変更が入ったかが一覧で管理できることです。
後から見返しても、なぜ変更されたかが分かります。


当番の偏りを防ぐためのチェック方法

ローテーションを組んでも、実は偏りが発生します。
特に、休みや変更が重なると、特定の人に当番が集中します。

編集部でも「なぜか山本さんだけ多い」という状態が起きました。
原因は、休み回避で同じ人にスライドしていたことです。

この問題は「カウントで可視化」すると防げます。

実務で使う方法

別の表で、担当回数を集計します。

名前回数
田中=COUNTIF範囲
佐藤=COUNTIF範囲

COUNTIF関数(特定の条件の回数を数える関数)を使います。
当番表の範囲から名前ごとの回数を出します。

ここで重要なのは、「許容差」を決めることです。
例えば±1回以内ならOKとするなど。

もし差が大きければ、変更リストで調整します。
ローテーション自体を触る必要はありません。


月ごとに使い回すためのテンプレ化

ここまで作っても、毎月コピーして調整していませんか。
それだと、ミスが蓄積します。

実務では「日付だけ変えれば完成する」状態にします。

編集部では、最初は毎月コピーしていましたが、日付ミスが頻発しました。
テンプレ化したことで、その作業自体を消しました。

実務手順

日付は「開始日」を1つだけ入力し、そこから連続させます。

例:

=開始日セル+1

これを下にコピーすれば、日付が自動生成されます。

さらに、曜日も自動化します。

=TEXT(日付セル,”aaa”)

これで、曜日も連動します。

重要なのは、「手入力をゼロにすること」です。
手で触る箇所があるほど、ミスの確率が上がります。


実務で使える当番表の完成形

ここまでの内容をまとめると、当番表は以下の構造になります。

  • メンバー一覧(番号管理)
  • 当番表(自動ローテーション)
  • 休みリスト(除外処理)
  • 変更リスト(例外対応)
  • 集計表(偏りチェック)

この構造にすると、「人を動かす」のではなく「ルールを動かす」状態になります。
だから、急な変更でも崩れません。

実際に編集部では、この形にしてから当番表の修正時間がほぼゼロになりました。
以前は毎月30分かかっていたのが、今は5分もかかりません。


まとめ

当番表がうまく回らない原因は、エクセルの操作ではなく設計です。
手入力で調整する前提だと、休みや変更が入った瞬間に崩れます。

解決策はシンプルで、「ローテーションを仕組み化すること」です。
番号で回す、休みは除外、変更は別管理、この3つで安定します。

もし今、毎月当番表で時間を取られているなら、今回の構造に変えてください。
一度作れば、次からはほぼ触らずに回ります。これが実務で使える状態です。

今週のベストバイ

おすすめ一覧

資料ダウンロード

弊社のサービスについて詳しく知りたい方はこちらより
サービスご紹介資料をダウンロードしてください