2026年9月15日
4直3交代のシフト表をエクセルで作る方法(数式1つで自動化)
毎月、先月のファイルをコピーして日付を直していませんか。 その作業は数式1つでなくせます。ここでは実際にエクセルで動作を確認した数式と、 数式すら書かずに済ませる方法を紹介します。
先に結論:2つの方法があります
| 方法 | 向いている人 | 手間 |
|---|---|---|
| ① ツールで作ってエクセルで開く | 数式を触りたくない。とにかく今月の表が欲しい | 1分 |
| ② エクセルに数式を組む | 自社の様式に組み込みたい。仕組みを自分で持ちたい | 15分(最初だけ) |
①は4直3交代 シフト表 自動作成ツールで年月を選び、 「エクセル用に保存」を押すだけです。ダブルクリックでエクセルが開き、そのまま使えます。
この記事の本題は②の数式の組み方です。 一度組めば、翌月も翌年も、日付を変えるだけで正しい表が出ます。
4直3交代の仕組みをおさらい
4直3交代は、4つの班が「日勤2日 → 準夜2日 → 夜勤2日 → 休み2日」の8日周期を、 2日ずつずれて回す形です。詳しくは4直3交代とは?にまとめています。
数式で作るときに大事なのはこの1点だけです。
「ある日に、A班が周期の何日目にいるか」が決まれば、全部の日・全部の班が計算で出せる。
この「ある日」を基準日と呼びます。エクセルでは、基準日を1つのセルに入れておき、 すべての数式がそこを参照する形にします。
数式の組み方(手順)
手順1:表の骨組みを作る
まずこの形で表を作ります。
| A | B | C | D | E | … | H | I | |
|---|---|---|---|---|---|---|---|---|
| 1 | 日付 | A班 | B班 | C班 | D班 | 基準日 | 2026/9/7 | |
| 2 | 2026/9/7 | |||||||
| 3 | 2026/9/8 | |||||||
| 4 | … |
- A列に日付を並べます。A2に最初の日を入れ、A3に
=A2+1と入れて下にコピーすれば連続します - I1に基準日を入れます。「A班が日勤の1日目だった日」を実際の勤務表から探して入れてください
手順2:A班の数式を入れる
B2(A班の最初の日)にこの数式を入れます。
意味はこうです。
A2-$I$1… その日が基準日から何日後かMOD(…,8)… 8で割った余り(0〜7)。これが「周期の何日目か」+1… CHOOSE は1から数えるので1を足すCHOOSE(番号, "日勤","日勤",…)… 番号に対応する勤務を取り出す
$I$1 のドル記号は「コピーしてもこのセルを指し続ける」という意味です。ここを忘れると下にコピーしたときにずれます。
手順3:B班〜D班は「ずらす数」を変えるだけ
他の班は、A班より周期が2日ずつ遅れています。数式の +0 の部分を変えるだけです。
| 班 | 数式(2行目) |
|---|---|
| A班(B2) | =CHOOSE(MOD(A2-$I$1+0,8)+1,"日勤","日勤","準夜","準夜","夜勤","夜勤","休み","休み") |
| B班(C2) | =CHOOSE(MOD(A2-$I$1+2,8)+1,"日勤","日勤","準夜","準夜","夜勤","夜勤","休み","休み") |
| C班(D2) | =CHOOSE(MOD(A2-$I$1+4,8)+1,"日勤","日勤","準夜","準夜","夜勤","夜勤","休み","休み") |
| D班(E2) | =CHOOSE(MOD(A2-$I$1+6,8)+1,"日勤","日勤","準夜","準夜","夜勤","夜勤","休み","休み") |
手順4:下にコピーする
B2〜E2を選んで、右下の小さな四角をつかんで下へ引っ張ります(オートフィル)。 月末まで引っ張れば完成です。
実際に動かすとこうなります(基準日 2026/9/7 の例)。
| 日付 | A班 | B班 | C班 | D班 |
|---|---|---|---|---|
| 9/7 | 日勤 | 準夜 | 夜勤 | 休み |
| 9/8 | 日勤 | 準夜 | 夜勤 | 休み |
| 9/9 | 準夜 | 夜勤 | 休み | 日勤 |
| 9/10 | 準夜 | 夜勤 | 休み | 日勤 |
| 9/11 | 夜勤 | 休み | 日勤 | 準夜 |
| 9/12 | 夜勤 | 休み | 日勤 | 準夜 |
| 9/13 | 休み | 日勤 | 準夜 | 夜勤 |
| 9/14 | 休み | 日勤 | 準夜 | 夜勤 |
| 9/15 | 日勤 | 準夜 | 夜勤 | 休み |
横に見ると、どの日も日勤・準夜・夜勤・休みが1つずつ並んでいます。 8日たつと最初に戻ります。この数式は実際にエクセルで動かして確認したものです。
翌月はどうするか
A列の日付を変えるだけです。A2に翌月の1日を入れれば、下の日付も数式も全部ついてきます。 基準日(I1)は変える必要がありません。何年先でも正しく計算されます。
ここが「先月のファイルをコピーして直す」やり方との決定的な違いです。 コピー方式だと、月をまたぐときに周期がずれていないか毎回確認が要ります。 数式方式は基準日から計算しているので、ずれようがありません。
色をつける(条件付き書式)
文字だけだと見にくいので、勤務ごとに色をつけます。
- B2〜E32(表の範囲)を選ぶ
- 「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「文字列」
- 「夜勤」と入れて、色を選ぶ(濃い青など)
- 同じ手順で「準夜」「休み」にも色をつける
夜勤だけ濃い色にしておくと、自分の班の夜勤がいつか一目で分かります。
12日周期・16日周期の場合
「日勤3日 → 準夜3日 → 夜勤3日 → 休み3日」の12日周期なら、数式の2か所を変えます。
MOD(…,8)→MOD(…,12)- CHOOSE の中身を12個に増やす
- 班のずらし幅は
+0, +3, +6, +9(周期÷班の数=12÷4=3)
16日周期なら、16 と +0, +4, +8, +12 です。
5直3交代の場合
5つの班で回す場合は、周期10日・休み4日が一般的です。
- 班の列を5つに増やす(E班を足す)
- ずらし幅は
+0, +2, +4, +6, +8
5直3交代の年間休日は約146日と、4直より大幅に多くなります。 その分、人員は25%多く必要です。詳しくは4直3交代とは?で比較しています。
よくあるつまずき
「#VALUE!」と出る
A列の日付が「文字」として入っている可能性があります。 セルを選んで「ホーム」→「数値」の欄が「文字列」になっていたら、「日付」に変えてから入れ直してください。
全部の班が同じ勤務になる
ずらす数(+0, +2, +4, +6)を変え忘れています。B〜D班の数式をもう一度見てください。
実際の勤務表と合わない
基準日(I1)が間違っています。「A班が日勤の1日目だった日」を入れてください。 日勤2日目の日を入れると、全部が1日ずれます。
下にコピーしたら基準日がずれた
$I$1 のドル記号が抜けています。I1 のままコピーすると、行ごとに参照先がずれていきます。
数式を書きたくない人へ
ここまで読んで「面倒だな」と思ったら、それが正直な感想だと思います。 この記事に書いたことをそのまま実装したのが、下のツールです。
年月と勤務パターンを選ぶだけで表ができ、「エクセル用に保存」を押せばそのままエクセルで開けます。 基準日も1回合わせれば保存されるので、翌月は開くだけです。 4直3交代のほか、12日周期・16日周期・5直3交代・2交代にも対応しています。
数式の仕組みを知ったうえで使うと、「なぜ基準日が要るのか」が腑に落ちるはずです。