excel

【Excel】エクセルでシフト表を簡単に作る方法(月間予定・カレンダー自動・月間スケジュール表)

エクセルで月間シフト表を作る基本設定 - 対象年月と表の配置
当サイトでは記事内に広告を含みます

エクセルで月間のシフト表を作成すると、勤務日、休み、早番、遅番などを一覧で管理できます。

手書きの勤務表では日付や曜日の修正に時間がかかりますが、数式を使った月間スケジュール表なら、対象年月を変えるだけでカレンダー部分を更新できます。

最初に日付の土台を作り、次に担当者と勤務記号を入力できる形へ整えることが、見やすく使いやすいシフト表を作る近道です。

月間シフト表作成の流れ

対象年月を入力する

日付と曜日を自動表示する

氏名と勤務記号を入力する

条件付き書式で休日や勤務を見やすくする

この記事では、Excelの標準機能と数式を使い、毎月使い回せる月間予定表を作る方法を解説します。

サンプルデータは1行目にヘッダーがある前提で説明するため、既存の勤務表へ応用したい場合にも役立つでしょう。

 

エクセルで月間シフト表を作る基本設定

それではまず、月間予定と勤務入力を両立できるシフト表の基本設定について解説していきます。

氏名 1日 2日 3日 4日 5日
田中 早 早 休 遅 休
佐藤 休 日 日 休 早
鈴木 遅 休 早 早 休

勤務記号は職場のルールに合わせて変更できますが、文字数をそろえると表全体が整って見えます。

氏名は左端の列、日付は右方向へ並べる形式にすると、人数が増えてもスクロールしながら確認しやすくなります。

 

対象年月と表の配置

最初に、シフト表の基準となる年月を入力するセルを決めましょう。

たとえばB2セルに対象年月を入力し、表示形式をyyyy年m月に設定すると、閲覧する人にも対象月が伝わりやすくなります。

エクセルで月間シフト表を作る基本設定 - 対象年月と表の配置

B4セルから右方向には日付、A6セルから下方向にはスタッフ名を配置する構成が扱いやすい形です。

氏名欄と日付欄の間に空白を入れすぎると、横に長いシフト表では視線が移動しにくくなります。

最初は必要最小限の列で作り、備考欄や勤務時間欄は運用を始めてから追加する方法が安心です。

【操作のポイント】年月入力セルは表の左上付近に固定し、日付計算で参照するセルを一つに絞ります。

 

勤務記号と入力ルール

続いては、シフトに使う勤務記号を確認していきます。

早番は早、日勤は日、遅番は遅、夜勤は夜、休日は休のように、誰が見ても意味を判断しやすい記号を決めます。

勤務記号を最初から統一しておくと、後から勤務回数を数える数式も作りやすくなります。

エクセルで月間シフト表を作る基本設定 - 勤務記号と入力ルール

勤務開始時刻まで管理したい場合は、記号の代わりに早番や遅番と入力する方法もあります。

ただし列幅が広くなりやすいため、日別の一覧性を優先する月間シフト表では短い記号が便利です。

入力する人が複数いる場合は、シートの余白に記号の説明を置いておくと認識違いを防げます。

【操作のポイント】記号の種類は増やしすぎず、休みと勤務の区別を最優先にします。

 

列幅とウィンドウ枠の固定

続いては、見やすい表示に整える操作を確認していきます。

日付列は幅を狭め、氏名列は氏名が切れない程度に広げると、1画面に表示できる日数が増えます。

日付の下に曜日を表示する場合でも、列幅を極端に狭くすると文字が詰まり、入力ミスを招くかもしれません。

表示タブのウィンドウ枠の固定を使えば、下へスクロールしても氏名や日付の見出しを表示できます。

人数が多い勤務表ほど、先頭列と見出し行を固定する効果が大きくなります。

【操作のポイント】入力開始セルの左上を基準にウィンドウ枠を固定すると、氏名と日付を同時に残せます。

 

月間カレンダーの日付を自動表示する数式

続いては、対象年月から日付と曜日を自動で表示する数式を確認していきます。

対象年月 1日 2日 3日 4日
2026年10月 1 2 3 4
曜日 木 金 土 日

日付を手入力すると、月が変わるたびに31列分を直す必要があります。

DATE関数とCOLUMN関数を組み合わせると、月初日から連続する日付を自動作成できます。

 

月初日を作るDATE関数

月間カレンダーの日付を自動表示する数式 - 月初日を作るDATE関数

まずは、B2セルに対象年月として2026年10月1日を入力します。

入力後に表示形式をyyyy年m月へ変更すれば、セルの内部では日付として扱いながら、表示は月だけにできます。

B4セルに月初日を表示する場合は、次の数式を入力します。

=DATE(YEAR($B$2),MONTH($B$2),1)

YEAR関数はB2セルから年を取り出し、MONTH関数は月を取り出します。

DATE関数の3番目の引数を1にすることで、その月の1日を確実に作れます。

セル参照の$B$2は絶対参照です。

数式を右へコピーしたときも、対象年月のセルがずれないようにする重要な設定となります。

【操作のポイント】年月のセルには文字列ではなく、日付として認識される値を入力します。

 

右方向へ連続した日付を作る方法

次に、C4セルから右方向へ日付を連続表示する方法を確認していきます。

B4セルに月初日の数式を入れた場合、C4セルには=B4+1と入力します。

この数式は左隣の日付に1日を加えるため、右へコピーすると2日、3日、4日と連続した日付になります。

月間カレンダーの日付を自動表示する数式 - 右方向へ連続した日付を作る方法

月末の翌日まで表示された場合は、表示形式をdに設定していても翌月の1日が混ざるため注意が必要です。

月末以降を空白にしたいときは、次のようにIF関数を追加します。

=IF(MONTH(B4+1)=MONTH($B$2),B4+1,””)

MONTH関数で翌日の月と対象月を比較し、同じ月なら日付、異なる月なら空白を返す仕組みです。

31日まで列を用意しておけば、28日までの月や30日までの月にも同じ表を使えます。

【操作のポイント】数式を右へコピーする前に、月末を超えたセルを空白にする条件を入れます。

 

曜日表示と表示形式

続いては、日付の下に曜日を表示する方法を確認していきます。

B5セルに=B4と入力し、セルの表示形式をaaaに設定すると、日付に対応した月、火、水の曜日を表示できます。

曜日を別の数式で求めたい場合は、=TEXT(B4,”aaa”)という方法も使えます。

日付セルが空白のときに曜日だけが表示されるのを防ぎたい場合は、IF関数で空白判定を加えましょう。

=IF(B4=””,””,TEXT(B4,”aaa”))

この数式では、B4セルが空白なら何も表示せず、日付がある場合だけ曜日を表示します。

土曜日と日曜日を色分けする前に、曜日行を独立させておくと条件付き書式の設定が簡単です。

【操作のポイント】日付行はd、曜日行はaaaの表示形式にすると、数値と曜日を見分けやすくなります。

 

勤務入力をしやすくするプルダウン設定

続いては、勤務記号の入力ミスを減らすプルダウン設定を確認していきます。

氏名 1日 2日 3日
高橋 早 ▼ 休 遅
伊藤 日 夜 明

プルダウンを設定すると、セルごとに文字を打ち込まなくても、候補から勤務記号を選択できます。

表記ゆれを防ぎ、勤務回数の集計結果を正確にするためにも入力規則は有効です。

 

勤務記号一覧の作成

それではまず、プルダウンで使う勤務記号一覧について解説していきます。

シフト表とは別の場所、たとえばAH2からAH7に早、日、遅、夜、明、休と縦に入力します。

一覧を表の右端や別シートに置くと、印刷時に勤務表へ表示されにくくなります。

勤務記号を後から追加する可能性がある場合は、一覧の下に数行の余白を作っておくと便利です。

勤務記号の例

早 早番

日 日勤

遅 遅番

夜 夜勤

明 夜勤明け

休 公休

記号の意味は職場によって違うため、既存の就業規則や勤務区分に合わせて設定してください。

【操作のポイント】入力規則の候補は、表内の入力文字と完全に同じ表記で登録します。

 

データの入力規則によるリスト

続いては、データの入力規則でリストを作る操作を確認していきます。

勤務を入力する範囲を選択し、データタブからデータの入力規則を開きます。

入力値の種類でリストを選び、元の値へ勤務記号一覧の範囲を指定します。

shift.xlsx – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示
並べ替え フィルター データの入力規則 重複の削除

データの入力規則

入力値の種類 リスト

元の値 =$AH$2:$AH$7

☑ ドロップダウン リストから選択する

➤
勤務入力セルを選択して設定
候補一覧の範囲を元の値に指定します

元の値は=$AH$2:$AH$7のように絶対参照で指定すると、表をコピーしても範囲がずれません。

設定後にセルを選択すると、右側に小さな矢印が表示され、候補をクリックして入力できます。

直接入力も許可したままにすると、候補外の文字が混ざる可能性があるため、運用ルールも決めておきましょう。

【操作のポイント】入力規則は勤務入力範囲全体にまとめて設定し、セルごとの設定漏れを防ぎます。

 

空白日と入力範囲の調整

続いては、月末以降の空白日への入力を防ぐ工夫を確認していきます。

月間シフト表では31日分の列を作ることが多いため、2月や30日までの月では余分な列が残ります。

日付行が空白の列は薄い灰色にし、勤務入力をしないというルールを決めると見落としを減らせます。

入力規則だけでは日付の有無を判定できないため、条件付き書式と組み合わせるのが実用的です。

日付セルが空白の列を選びやすくしないよう、後述する条件付き書式で色を付けましょう。

【操作のポイント】日付のない列は入力対象外と明示し、翌月の勤務記号を誤入力しないようにします。

 

休日と勤務状況を見やすくする条件付き書式

続いては、土日、祝日、休日の勤務記号を見やすくする条件付き書式を確認していきます。

氏名 3日 土 4日 日 5日 月
田中 休 早 遅
佐藤 日 休 休

色分けは見た目を整えるだけでなく、休日勤務、休みの偏り、未入力セルを早く見つけるための仕組みです。

条件付き書式は入力内容や日付に応じて自動で表示を変えられるため、毎月の修正作業を減らせます。

 

土曜日と日曜日の色分け

それではまず、曜日に合わせた列の色分けについて解説していきます。

日付行が4行目、勤務入力が6行目以降の場合、勤務表の範囲を選択してから条件付き書式の新しいルールを開きます。

土曜日を判定する数式は=WEEKDAY(B$4,2)=6です。

=WEEKDAY(B$4,2)=6

=WEEKDAY(B$4,2)=7

WEEKDAY関数の2を指定すると、月曜日が1、日曜日が7として返されます。

土曜日には薄い青、日曜日には薄い赤を指定すると、カレンダーらしい見た目になります。

列全体を色付けしたい場合は、適用先を勤務表の入力範囲まで広げてください。

【操作のポイント】日付の行番号だけを固定するB$4の参照にして、横方向へ判定を動かします。

 

休日記号と未入力セルの強調

続いては、勤務記号に応じた色分けを確認していきます。

休と入力されたセルだけに色を付けるには、セルの値が休に等しい条件を指定します。

休みを淡いグレー、夜勤を淡い紫、早番を淡い黄色にすると、勤務の分布を直感的に確認できます。

未入力セルを確認したい場合は、=B6=””を条件にして、薄い黄色などを設定する方法があります。

未入力セルの条件式

=B6=””

未入力の色と休日の色を似せないことが、確認漏れを防ぐポイントです。

ただし、月末以降の空白列まで未入力として色付けされる場合は、日付の空白判定を追加します。

【操作のポイント】未入力判定では、月末以降の空白列を除外する条件も検討します。

 

月末以降の列を薄く表示する方法

続いては、存在しない日付の列を薄くする方法を確認していきます。

日付行が空白なら勤務入力範囲も薄いグレーにする条件式は、=B$4=””です。

この条件を月末以降の列に適用すると、28日、30日、31日の有無が月ごとに自動で切り替わります。

数式を設定する際は、日付行だけ固定し、列記号は固定しない参照にします。

月が変わっても日数に合わせて見た目が変わるため、テンプレートとして再利用しやすくなります。

【操作のポイント】月末以降の表示を薄くしても、列そのものは残しておくと月替わり時の作業が不要です。

 

勤務回数と必要人数を確認する集計欄

続いては、シフト表の勤務回数と人員状況を確認する集計欄を解説していきます。

氏名 早番回数 日勤回数 休日数
田中 8 7 9
佐藤 7 8 9

勤務を割り当てた後は、担当者ごとの勤務回数と日別の配置人数を確認します。

COUNTIF関数を使えば、勤務記号の数を自動集計でき、公平な割り当ての確認にも役立ちます。

 

個人別の勤務回数を数えるCOUNTIF関数

それではまず、個人別の勤務回数を数える方法について解説していきます。

田中さんの勤務入力範囲がB6からAF6で、早番の回数を数える場合は次の数式を使います。

=COUNTIF(B6:AF6,”早”)

COUNTIF関数は、指定した範囲の中から条件に一致するセルを数える関数です。

条件の早は文字列なので、必ず二重引用符で囲みます。

休みの回数を数える場合は、条件だけを休に変えれば同じ仕組みで集計できます。

集計欄の数式は下方向へコピーできるため、人数が増えても作業量は大きく増えません。

【操作のポイント】勤務入力の開始列と終了列を統一し、集計範囲に見出しや備考欄を含めないようにします。

 

日別の必要人数を確認する方法

続いては、日別の人員数を確認する方法を確認していきます。

早番の人数を日ごとに数える場合、日付の下または表の下部に集計行を設けます。

B20セルでB6からB15の早番を数えるなら、=COUNTIF(B6:B15,”早”)と入力します。

=COUNTIF(B6:B15,”早”)

この数式を右方向へコピーすると、各日の早番人数を確認できます。

必要人数が3人なのに集計結果が2人なら、該当日の人員不足に気付けます。

勤務表は個人の予定だけでなく、各時間帯に必要な人数を満たしているか確認することが重要です。

【操作のポイント】早番、日勤、遅番ごとに集計行を分けると、人員不足の時間帯を判断しやすくなります。

 

印刷範囲と月替わりの運用

続いては、完成した月間スケジュール表を運用する準備を確認していきます。

ページレイアウトで横向き、余白を狭いに設定すると、横長のシフト表を紙へ収めやすくなります。

印刷タイトルで氏名と日付の見出し行を指定すれば、複数ページに分かれた場合にも見出しを繰り返せます。

翌月分を作るときは、B2セルの対象年月だけを変更します。

日付、曜日、月末以降の薄い表示は数式と条件付き書式によって連動して更新されます。

元のテンプレートを残し、月ごとにシートを複製して管理する方法なら、過去の勤務実績も見返しやすくなります。

【操作のポイント】確定前のシフト表と確定後のシフト表を分けて保存すると、変更履歴を追いやすくなります。

 

まとめ 月間スケジュール表をエクセルで簡単に作る方法

エクセルでシフト表を簡単に作るには、対象年月を入力するセルを用意し、日付と曜日を数式で自動表示できる形にすることが基本です。

DATE関数、IF関数、TEXT関数を使えば、月初日から月末までのカレンダーを作り、日数が異なる月にも対応できます。

勤務記号は入力規則のプルダウンで統一し、休み、夜勤、未入力セルは条件付き書式で色分けすると確認しやすくなります。

さらにCOUNTIF関数で早番、日勤、休日などの回数を集計すれば、勤務の偏りや必要人数の不足も確認できます。

対象年月を変更するだけで使えるテンプレートに整えることが、毎月のシフト作成時間を減らすポイントです。

まずは少人数用の表から作成し、実際の運用に合わせて勤務区分、集計欄、備考欄を少しずつ追加していきましょう。