エクセルの勤務表を20日締めにするには、前月21日から当月20日までの日付を並べ、曜日を日付に連動させます。締め年がC4、締め月がG4なら、C4に「2026」、G4に「6」を入力したときの対象期間は、2026年5月21日〜6月20日です。
既存の月次勤務表でも、年・月の入力欄と日付・曜日の数式を設定すれば、同じ考え方で更新できます。まず配布Excelで表示を確かめ、その後に既存表へ設定する手順を説明します。自動化するのは日付・曜日の表示であり、スタッフの勤務は別途入力します。
20日締めの勤務表は前月21日から作る
最初に決めるのは、「何月分」という呼び名ではなく、締め日が属する年月です。給与の支払月とも分けて考えてください。
たとえば、架空の店舗で「6月20日締めの勤務表」を作るなら、入力する締め月は6です。勤務表には5月21日から6月20日までを載せます。社内でこの期間を別の呼び方にしていても、数式へ渡す月は変えません。
担当者間で取り違えないよう、入力欄の見出しも「対象月」だけでなく、「締め年」「締め月」としておきましょう。印刷した表にも対象期間が見えれば、勤務予定を確認するスタッフと日付の認識をそろえられます。
ここで扱うのは、日付を横方向に並べる勤務表です。配布表は31日分の列とスタッフ6名分の空の勤務欄を持ち、期間が短いときは右端の日付・曜日を空欄にする構成です。
無料Excelで締め年・月を変えてみる
まずは、次のファイルを保存して開いてください。既存表を置き換えず、数式の結果を比較するためにも使えます。
20日締めの勤務表Excelをダウンロード(無料) シート名は「20日締め」です。最初は勤務欄に触れず、C4とG4だけを変更します。
| セル・範囲 | 役割 | 操作・確認内容 |
|---|---|---|
| C4 | 締め年 | 西暦を数値で入力 |
| G4 | 締め月 | 1〜12の数値を入力 |
| C6 | 開始日 | 前月21日になっているか確認 |
| G6 | 終了日 | 当月20日になっているか確認 |
| L6 | 期間の日数 | 後述の検算表と照合 |
| C9:AG9 | 日付 | 31列のうち必要な日数だけ表示 |
| C10:AG10 | 曜日 | 日付に連動して表示 |
| C11:AG16 | 勤務入力 | 担当者が勤務記号を入力 |
年・月のセルには「2026年」「6月」という文字列ではなく、「2026」「6」のように数値を入れてください。C6・G6・L6は確認用なので、表示された結果を直接書き換えないようにします。
架空の記入例で日付と勤務欄を確かめる
利用前に、次の例がお使いのExcelでも同じ結果になるか確認してください。Excelの全バージョンでの表示・操作を保証するものではありません。
- C4へ「2026」、G4へ「6」を入力する。
- C6が2026年5月21日、G6が2026年6月20日、L6が31になっているか見る。
- 日付行が5/21〜6/20、曜日行の先頭が「木」、末尾が「土」になっているか確かめる。
- 架空の勤務例として、C11に「日」、D11に「休」、E11に「早」を入力する。
これで1人目の最初の3日間に勤務記号が入ります。曜日行の「日」は日曜日ですが、勤務欄の「日」は日勤を表す例です。両者を混同しないよう、勤務記号の意味を職場内でそろえてください。
年月を変えても、勤務記号は自動で割り当てられません。試しに入れた記号は、実際の予定を作る前に消しておきます。
既存の勤務表へ日付と曜日の数式を設定する
配布表を使わず、今の帳票を残したい場合は、次の手順で設定します。用意するのは、既存勤務表のコピー、作成する対象期間、職場で採用済みの勤務条件です。
以下では配布表と同じセル番地を例にします。自分の表で列や行が違う場合は、年・月・日付の位置を先に対応させてください。
バックアップを取り、年・月の入力欄を確保する
元のファイルを別名で保存し、作業用のコピーを開きます。次に、空いている場所へ締め年と締め月の入力欄を設けましょう。
この例では、C4が年、G4が月、C9が日付の先頭です。日付行にはC9:AG9の31列、その下に曜日行のC10:AG10を確保します。既存の合計列などがある場合は、数式を上書きしない配置にしてください。
数式中の$C$4と$G$4は、コピーしても参照先を変えないための指定です。一方、前日を参照するC9は固定せず、右へコピーしたときにD9、E9と動かします。(マイクロソフト)
自分の表で年がB2、月がE2、最初の日付がD5なら、本文のC4・G4・C9をそれぞれの実セルへ置き換えます。年・月だけを固定し、前日セルの列参照は動かすという関係を保つのが要点です。
C9に前月21日の開始日を入れる
先頭の日付セルC9へ、次の式を入力します。
=DATE($C$4,$G$4-1,21)
締め月から1を引き、前月の21日を開始日にしています。C4が2026、G4が6なら、式は2026年5月21日を作ります。
DATE関数は、年・月・日から日付を作る関数です。月に0を指定した場合も前年側へ繰り下げて扱うため、締め月が1月でも前月を求められます。(マイクロソフト)
この段階でセルに大きな数値が出ても、すぐに式を消す必要はありません。日付の表示形式は、次の手順でまとめて設定します。
D9から右へコピーし、20日を超えた列を空欄にする
隣のD9には、次の式を入力してください。
=IF(C9="","",IF(C9+1<=DATE($C$4,$G$4,20),C9+1,""))
この式では、左隣が空欄なら空欄を返し、日付がある場合だけ翌日を調べます。翌日が当月20日以内なら表示し、20日を超えるなら空欄にします。条件によって返す結果を分ける部分にIF関数を使っています。(マイクロソフト)
D9を入力したら、D9の右下にある小さな四角をAG9までドラッグし、D9:AG9へ数式を右コピーします。
右へ広げるのは、C9の開始日式ではなく、D9の翌日式です。C9の式をそのまま横へコピーすると、どの列も同じ開始日を参照してしまいます。
続いてC9:AG9を選択し、表示形式をm/dにします。Windows版Excelのリボン操作なら、[ホーム]→[書式]→[セルの書式設定]を開き、[表示形式]の[ユーザー定義]で[種類]へm/dを入力して[OK]を押します。mは月、dは日を表示する指定です(2026-09-16時点の案内)。(マイクロソフト)
これで「5/21」のように読めます。右端の空欄は、列を削除した状態ではなく、数式が空文字を返している状態です。翌月に31日分が必要になれば、その列にも日付を表示する構成になっています。
C10に曜日を入れ、AG10まで右コピーする
曜日行の先頭C10には、次の式を入力します。
=IF(C9="","",CHOOSE(WEEKDAY(C9,1),"日","月","火","水","木","金","土"))
入力後は、C10の数式をAG10まで右コピーしてください。日付行が空欄の列では、曜日も空欄にします。
WEEKDAY(C9,1)は、日曜日を1、月曜日を2として、土曜日の7までの数値を返します。(マイクロソフト)
その数値を使い、CHOOSEで「日・月・火・水・木・金・土」の7つから対応する文字を選ぶ仕組みです。曜日を手入力せず、上の日付から求めるため、年月の変更に連動します。(マイクロソフト)
ここまで設定したら、日付行と曜日行を別々に修正する運用はやめ、C4・G4から更新する形にそろえましょう。
2月・うるう年・年またぎの結果を確認する
数式を設定した後は、日数の異なる期間へ切り替えて確認します。次の表は、ここまでの数式で得られるはずの検算用の期待値です。実際の職場の勤務実績を示すものではありません。
| 締め年月 | 初日 | 最終日 | 日数 | 右端の余り |
|---|---|---|---|---|
| 2026年6月 | 2026/5/21 | 2026/6/20 | 31日間 | なし |
| 2026年5月 | 2026/4/21 | 2026/5/20 | 30日間 | AG列が空欄 |
| 2027年3月 | 2027/2/21 | 2027/3/20 | 28日間 | AE〜AG列が空欄 |
| 2028年3月 | 2028/2/21 | 2028/3/20 | 29日間 | AF〜AG列が空欄 |
| 2027年1月 | 2026/12/21 | 2027/1/20 | 31日間 | なし |
28日間・29日間の確認では、2月を含む「3月20日締め」を指定する点に注意してください。締め月の3月が31日あるからといって、対象期間も31日間になるわけではありません。
配布表ならC6・G6・L6と日付行を照合します。既存表に同じ確認欄がない場合は、日付行の最初と最後、表示された日付の列数を表と比べれば確認できます。曜日も、たとえば2027年2月21日の列が「日」になるか確かめましょう。
結果が違う場合は、開始日式、右コピーした式、年・月の参照先の順に見直します。途中の列だけを手入力の日付で直すと、その場では整っても次の月に連動しなくなるため、数式を戻して確認してください。
翌月へ更新するときは勤務入力だけ消す
月替わりで注意したいのは、日付が変わっても、勤務欄の旧入力は同じセルに残ることです。年月だけを変えた状態を、翌月の勤務表が完成した状態として扱ってはいけません。 更新は次の順序で行います。
- 旧月のファイルを、締め年月が分かる名前で保存する。
- 保存したファイルを複製し、翌月の作業用にする。
- 配布表の勤務入力範囲C11:AG16だけを選び、Deleteキーで内容を消す。
- C4・G4を新しい締め年・月へ変更する。
- 初日・最終日・日数・曜日と、右端の空欄を確認する。
- 新しい勤務予定を入力する。
セルを選択してDeleteキーを押すと、書式を残して内容を消せます。行・列の削除や[すべてクリア]とは操作が異なります。(マイクロソフト)
配布表ではC9:AG10の日付・曜日の数式を消さないでください。既存表ではC11:AG16という番地をそのまま使わず、実際の勤務記号の手入力範囲へ読み替えます。集計式が混在する場合、そのセルは消去対象から外します。
配布表には、日付のない列に勤務記号があると赤くなる確認用の表示があります。ただし、これは旧入力をすべて見つける機能ではありません。
たとえば31日間の表から28日間の表へ変えたとき、AG列に残った記号は日付がないため赤くなります。一方、C11に残った記号は、C列に新しい日付があるため、この確認では赤くなりません。赤いセルだけを消すのではなく、勤務入力範囲全体を空にしてから新予定を入れる必要があります。
勤務記号と休日の扱いを職場に合わせる
配布表の勤務記号は、次のような使い方を想定した例です。
| 記号 | この例での意味 |
|---|---|
| 日 | 日勤 |
| 早 | 早番 |
| 遅 | 遅番 |
| 夜 | 夜勤 |
| 休 | 休日 |
| 有 | 有休 |
独自の記号を使う場合は、凡例だけでなく勤務欄の入力規則も調整してください。入力範囲を選び、[データ]→[データの入力規則]でリストの設定内容を確認し、職場で使う候補に変更します。(マイクロソフト)
この表は祝日を自動判定しません。土日を全員の休日にする仕組みでもないため、営業日、シフト希望、必要人数、採用済みの勤務条件を見ながら予定を記入します。日付のない右端の列は、勤務欄も空欄のままにしてください。
日付を整えた後のシフト管理
ここまでで整うのは、20日締めの期間、日付・曜日の連動、月替わりの入力更新です。勤務記号を入れただけで勤務時間や給与が集計されるわけではありません。
給与の締め集計や勤務時間計算は別作業として扱ってください。開始・終了時刻や休憩から時間を求める必要がある場合は、勤務時間を自動計算する手順を確認できます。
日付の更新を整えても、シフト希望と必要人数を突き合わせる作業が毎月残る場合は、勤務配置そのものの支援を検討できます。シフトラでは、希望・必要人数・自然な日本語のルールを整理してシフト案を作成し、内容を確認してExcelへ出力できます。(シフトラ)
これは、今回の20日締め表の数式を自動修復したり、法令への適合を保証したりする機能ではありません。勤務の最終確定と労務上の判断は職場で行います。
まずは利用中のExcelで検算例を確かめ、旧入力を消した勤務欄へ新しい予定を入れてから、職場の条件と照合して確定しましょう。