はじめに:「今月もシフト表に半日潰れた」という方へ
正直に言います。
わたし、以前の職場でシフト管理を任されたとき、毎月3〜4時間かかっていました。スタッフの希望を紙で集めて、手書きで表に転記して、「あれ、この人ダブってる」と気づいて修正して…の繰り返し。
そのくせミスは減らない。スタッフから「この日は入れないって言いましたよ?」と言われてひたすら謝る。あの時間と精神的なコストは、いったい何だったんだろうと今でも思います。
この記事は、そんな「シフト表地獄」からちょっとでも楽になってほしいと思って書きました。
Excelを使えば、ゼロから作っても1〜2時間、テンプレートを使えば30分以内でシフト表が仕上がります。しかも一度仕組みを作れば、翌月からはほぼコピーして日付を変えるだけ。
「Excelって難しそう」と思っている方も大丈夫です。わたし自身、最初は関数のことなんて何もわかりませんでしたから。一緒に、少しずつ見ていきましょう。
この記事でできるようになること
- 見やすくて使いやすいシフト表のレイアウトを作れる
- 曜日の自動表示・入力ミスの防止など、ちょっとした便利機能を使える
- スタッフの希望を効率よく反映できる仕組みが作れる
- 人員の過不足を色で一目確認できる表が作れる
- VBAやPower Queryで自動化の「第一歩」が踏み出せる
- テンプレートをダウンロードして、すぐ使える形に整えられる
「とにかく今すぐ使えるシフト表が欲しい」という方は、第10章のテンプレート活用から読んでいただいても構いません。
01. 作る前に5分だけ整理しておくこと
Excelを開く前に、ちょっとだけ頭の中を整理しましょう。ここを飛ばすと、後で「やっぱり列が足りなかった」「もう一列追加したら表がずれた」といったことが起きやすくなります。わたしも何度かやらかしました。
管理単位を決める
「1週間分を毎週作る」か「1ヶ月分を月初に一気に作る」か、どちらの方が現場に合っていますか?週次の方が細かく調整できますが、月次の方が全体像を把握しやすいです。
時間帯の区切りを決める
「早番・遅番」の2区分なのか、「9〜13時・13〜17時・17〜21時」の3区分なのか、最初に決めておくと列の設計がスムーズになります。
スタッフリストを手元に用意する
名前と役割(例:ホール担当、レジ専任など)をひとまとめにしておくと、後でドロップダウンリストを作るときに役立ちます。
希望の集め方と共有方法を決める
「LINEで報告→手入力」なのか「Googleフォームで回収→貼り付け」なのか。これだけで毎月の手間がかなり変わります。詳しくは第06章で紹介します。
02. 基本レイアウトの作り方
では実際に作っていきましょう。
行と列の配置
最もスタンダードな形は、横軸(列)に日付・時間帯、縦軸(行)にスタッフ名を並べる構成です。
| 名前 | 11/1 早番 | 11/1 遅番 | 11/2 早番 | 11/2 遅番 |
|---|---|---|---|---|
| 田中 | ○ | ○ | ○ | |
| 佐藤 | ○ | ○ |
日付と時間帯を1列にまとめるか、2行に分けて見やすくするかはお好みで。
見やすく整えるコツ
- 日付セルは中央揃え+太字にする
- 勤務時間帯の列幅を統一する
- スタッフ名の列は左端に固定(「ウィンドウ枠の固定」機能が便利)
セル結合は便利ですが、後でフィルター操作をしたいならなるべく避けた方が無難です。わたしは結合した表を後からいじろうとして、エラーだらけになったことがあります。
03. 入力をラクにする3つの機能
① ドロップダウンリストで入力ミスゼロへ
「○」「×」「△」を毎回手入力していると、うっかり「〇」(全角丸)と「○」(半角丸)が混在してしまい、後でCOUNTIFがうまく機能しないことがあります。
設定方法(2分でできます):
- 入力対象のセル範囲を選択
- 「データ」タブ → 「データの入力規則」
- 「リスト」を選び、
○,×,△を入力
これだけで、クリックするとプルダウンで選べるようになります。表記ゆれが一気になくなります。
② TEXT関数で曜日を自動表示
日付セルが A1 にあるとして、隣のセルに次の関数を入れると曜日が自動で表示されます。
=TEXT(A1,"aaa")
表示例:月、火、水…
曜日によって配置する人数を変えている職場では、特に重宝します。
③ 条件付き書式で過不足を色分け
「土日は3人必要なのに、今日2人しかいない」という状態を、色だけで瞬時に確認できます。
設定例:
- その時間帯が空欄(0人)→ 赤色
- 2人以上入っている → 緑色
手順:
- 該当セル範囲を選択
- 「ホーム」タブ → 「条件付き書式」→ 「新しいルール」
- 「数式を使用して…」を選択し、条件を入力
この色分けを入れてから、「あの時間帯、誰もいなかった」というミスがほぼなくなります。
04. スタッフの希望を効率よく集める方法
「希望の集め方」を変えるだけで、作業時間が半分以下になることがあります。
Googleフォームを使う
Googleフォームは無料で使えて、回答が自動的にスプレッドシートに蓄積されます。聞く項目は最低限これだけあれば十分です。
- 氏名(プルダウンで選択させると入力ミスが減る)
- 希望勤務日(チェックボックス形式が見やすい)
- 希望時間帯
- 備考(出られない日など)
締切日をフォームの「回答受付終了日」で自動設定しておくと、締切管理も楽になります。
回収データをExcelに貼り付けるコツ
Googleスプレッドシートで集まったデータは、そのままコピー&ペーストでExcelに貼れます。
貼り付けた後、名前順に並び替え→日付フィルター設定の順で整理すると、「○日は誰が入れるか」が一目でわかるようになります。
希望と確定シフトの突合チェック
希望を反映したかどうかの確認には、「希望表」と「確定表」を2列並べて比較する方法が便利です。
=A1<>B1
この式を使って条件付き書式を設定すると、希望と確定が食い違っているセルだけ色が変わるようになります。
05. シフトの自動化に挑戦してみよう
「自動化」と聞くと難しそうに感じるかもしれませんが、最初の一歩はそんなに大げさなものではありません。
COUNTIF関数で人員数を自動カウント
特定の時間帯に「○」が何個あるかを自動でカウントするだけで、だいぶ楽になります。
=COUNTIF(B2:B10,"○")
この数字と「必要人数」を並べておけば、一目で過不足がわかります。
VBAで「空欄を自動で埋める」処理(初心者向け)
VBAというのは、Excel専用のプログラミング機能です。難しそうに聞こえますが、最初は「特定のセルに文字を自動で入れる」程度のことから始めれば大丈夫です。
Sub 自動割当()
Dim i As Integer
For i = 2 To 10
If Cells(i, 2).Value = "" Then
Cells(i, 2).Value = "○"
End If
Next i
End Sub
これは「B2からB10の中で空欄があれば○を入れる」という処理です。実務では条件を追加して「この人は週3日まで」などのルールを組み込んでいきます。
Power Queryで複数シートを統合する
「希望表」と「確定表」が別々のシートやファイルにある場合、Power Queryを使えばボタン1つで統合できます。
手順の概要:
- 「データ」タブ → 「データの取得」→ 「ブックから」
- 統合したいシートを選択
- 不要な列を削除・並び替え
- 「読み込み」で一覧化
最初の設定に少し時間がかかりますが、一度作れば毎月ほぼ自動で更新されるようになります。
06. よくあるミスとその防ぎ方
シフト表でありがちなトラブルを、事前に防ぐ方法をまとめました。
ダブルブッキング・入力漏れ
- 条件付き書式で空白セルを自動着色
- COUNTIF関数で「同じ人が同じ時間に複数入っていないか」をチェック
- フィルターで特定のスタッフだけ表示して確認する
古いバージョンを配布してしまう
- ファイル名に日付・版番号を入れる(例:
shift_202511_v2.xlsx) - OneDriveやGoogle Driveで共有すれば、常に最新版が共有されます
上書き・ファイル破損
- 定期的に別名保存をする(月ごとにフォルダを分けるのがおすすめ)
- 重要なシートにはシート保護を設定して、誤編集を防ぐ
- 最終版はPDF形式でも保存しておく
07. 管理・共有をさらに効率化するテクニック
クラウド共有で「最新版がわからない」問題を解消
OneDriveやGoogle Driveで共有すれば、ファイルが常に1つだけ存在する状態になり、「どれが最新?」という混乱がなくなります。Google スプレッドシートなら複数人での同時編集も可能なので、マネージャーとリーダーが一緒に調整する職場にも向いています。
印刷・PDF配布の際の注意点
- 印刷範囲を明示的に設定する(設定していないと余分な列まで印刷される)
- ヘッダーに店舗名と対象期間を記載する
- PDF形式で配布すれば改変リスクがなく安心
個人情報の取り扱いに注意
スタッフの名前や勤務時間は個人情報です。Excelにはパスワード設定機能があります。
- 「ファイル」→ 「情報」→ 「ブックの保護」
- 「パスワードを使用して暗号化」
- パスワードを設定して保存
共有の範囲を最小限にするのも、大切な考え方です。
08. テンプレートを活用して即戦力にする
ゼロから作るのが大変な場合は、既存のテンプレートを使うのが最速の近道です。
テンプレートの探し方
「Excel シフト表 テンプレート 無料」で検索すると、さまざまな形式のテンプレートが見つかります。以下のような機能があるものを選ぶと後から手間が減ります。
- 日付・曜日が関数で自動反映される
- 時間帯ごとの入力欄が分かれている
- COUNTIF等で人数が自動集計される
自分の現場に合わせてカスタマイズする
テンプレートはあくまで「出発点」です。次のような点を自分用に変えましょう。
- 時間帯の名称と枠数を現場に合わせる
- スタッフの名前をドロップダウンリストに登録する
- 余計なマクロや数式は一旦削除して、シンプルな状態から使い始める
現場のルールを数式に組み込む
たとえばこんなルールがある職場では、条件付き書式や関数でルールを自動チェックできます。
- 週末はベテラン2名以上が必須
- 高校生アルバイトは21時以降の勤務不可
- 1人あたりの週次シフト上限がある
一度組み込んでしまえば、確認の手間が大幅に減ります。
まとめ:まず「基本の表」を1枚、作ってみてください
この記事で紹介したことを、すべて一度にやろうとしなくて大丈夫です。
最初はシンプルな表を1枚作って、ドロップダウンリストだけ追加してみる。それだけでも、毎月の作業時間はかなり変わります。
余裕が出てきたら条件付き書式を追加して、さらに時間ができたらVBAに挑戦してみる。そういう順番で少しずつ積み上げていくのが、長続きするやり方だと思っています。
「Excelは難しい」という感覚は、最初の一歩を踏み出すと意外とすぐ消えます。ぜひ、今日の業務の隙間に、1枚だけ作ってみてください。
この記事が少しでも参考になれば、本当にうれしいです。ありがとうございました。
この記事のポイントまとめ
- 作成前に「管理単位・時間帯区分・希望の集め方」を整理する
- 基本レイアウトは「横軸=日付、縦軸=スタッフ」が扱いやすい
- ドロップダウンリスト・TEXT関数・条件付き書式の3つでグッと楽になる
- Googleフォームで希望を集めると、転記ミスと集計時間が減る
- 自動化はCOUNTIF関数から始めて、慣れたらVBAへ
- テンプレートを活用して、自分の現場用にカスタマイズするのが最速


コメント