Excelシフト表を1時間で作る方法|現場で使える完全手順【バイト管理向け】

シフト表を1時間で作る方法についての図解 Excel

はじめに:「今月もシフト表に半日潰れた」という方へ

正直に言います。

わたし、以前の職場でシフト管理を任されたとき、毎月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分でできます):

  1. 入力対象のセル範囲を選択
  2. 「データ」タブ → 「データの入力規則」
  3. 「リスト」を選び、○,×,△ を入力

これだけで、クリックするとプルダウンで選べるようになります。表記ゆれが一気になくなります。

② TEXT関数で曜日を自動表示

日付セルが A1 にあるとして、隣のセルに次の関数を入れると曜日が自動で表示されます。

=TEXT(A1,"aaa")

表示例:月、火、水…

曜日によって配置する人数を変えている職場では、特に重宝します。

③ 条件付き書式で過不足を色分け

「土日は3人必要なのに、今日2人しかいない」という状態を、色だけで瞬時に確認できます。

設定例:

  • その時間帯が空欄(0人)→ 赤色
  • 2人以上入っている → 緑色

手順:

  1. 該当セル範囲を選択
  2. 「ホーム」タブ → 「条件付き書式」→ 「新しいルール」
  3. 「数式を使用して…」を選択し、条件を入力

この色分けを入れてから、「あの時間帯、誰もいなかった」というミスがほぼなくなります。


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つで統合できます。

手順の概要:

  1. 「データ」タブ → 「データの取得」→ 「ブックから」
  2. 統合したいシートを選択
  3. 不要な列を削除・並び替え
  4. 「読み込み」で一覧化

最初の設定に少し時間がかかりますが、一度作れば毎月ほぼ自動で更新されるようになります。


06. よくあるミスとその防ぎ方

シフト表でありがちなトラブルを、事前に防ぐ方法をまとめました。

ダブルブッキング・入力漏れ

  • 条件付き書式で空白セルを自動着色
  • COUNTIF関数で「同じ人が同じ時間に複数入っていないか」をチェック
  • フィルターで特定のスタッフだけ表示して確認する

古いバージョンを配布してしまう

  • ファイル名に日付・版番号を入れる(例:shift_202511_v2.xlsx
  • OneDriveやGoogle Driveで共有すれば、常に最新版が共有されます

上書き・ファイル破損

  • 定期的に別名保存をする(月ごとにフォルダを分けるのがおすすめ)
  • 重要なシートにはシート保護を設定して、誤編集を防ぐ
  • 最終版はPDF形式でも保存しておく

07. 管理・共有をさらに効率化するテクニック

クラウド共有で「最新版がわからない」問題を解消

OneDriveやGoogle Driveで共有すれば、ファイルが常に1つだけ存在する状態になり、「どれが最新?」という混乱がなくなります。Google スプレッドシートなら複数人での同時編集も可能なので、マネージャーとリーダーが一緒に調整する職場にも向いています。

印刷・PDF配布の際の注意点

  • 印刷範囲を明示的に設定する(設定していないと余分な列まで印刷される)
  • ヘッダーに店舗名と対象期間を記載する
  • PDF形式で配布すれば改変リスクがなく安心

個人情報の取り扱いに注意

スタッフの名前や勤務時間は個人情報です。Excelにはパスワード設定機能があります。

  1. 「ファイル」→ 「情報」→ 「ブックの保護」
  2. 「パスワードを使用して暗号化」
  3. パスワードを設定して保存

共有の範囲を最小限にするのも、大切な考え方です。


08. テンプレートを活用して即戦力にする

ゼロから作るのが大変な場合は、既存のテンプレートを使うのが最速の近道です。

テンプレートの探し方

「Excel シフト表 テンプレート 無料」で検索すると、さまざまな形式のテンプレートが見つかります。以下のような機能があるものを選ぶと後から手間が減ります。

  • 日付・曜日が関数で自動反映される
  • 時間帯ごとの入力欄が分かれている
  • COUNTIF等で人数が自動集計される

自分の現場に合わせてカスタマイズする

テンプレートはあくまで「出発点」です。次のような点を自分用に変えましょう。

  • 時間帯の名称と枠数を現場に合わせる
  • スタッフの名前をドロップダウンリストに登録する
  • 余計なマクロや数式は一旦削除して、シンプルな状態から使い始める

現場のルールを数式に組み込む

たとえばこんなルールがある職場では、条件付き書式や関数でルールを自動チェックできます。

  • 週末はベテラン2名以上が必須
  • 高校生アルバイトは21時以降の勤務不可
  • 1人あたりの週次シフト上限がある

一度組み込んでしまえば、確認の手間が大幅に減ります。


まとめ:まず「基本の表」を1枚、作ってみてください

この記事で紹介したことを、すべて一度にやろうとしなくて大丈夫です。

最初はシンプルな表を1枚作って、ドロップダウンリストだけ追加してみる。それだけでも、毎月の作業時間はかなり変わります。

余裕が出てきたら条件付き書式を追加して、さらに時間ができたらVBAに挑戦してみる。そういう順番で少しずつ積み上げていくのが、長続きするやり方だと思っています。

「Excelは難しい」という感覚は、最初の一歩を踏み出すと意外とすぐ消えます。ぜひ、今日の業務の隙間に、1枚だけ作ってみてください。

この記事が少しでも参考になれば、本当にうれしいです。ありがとうございました。


この記事のポイントまとめ

  • 作成前に「管理単位・時間帯区分・希望の集め方」を整理する
  • 基本レイアウトは「横軸=日付、縦軸=スタッフ」が扱いやすい
  • ドロップダウンリスト・TEXT関数・条件付き書式の3つでグッと楽になる
  • Googleフォームで希望を集めると、転記ミスと集計時間が減る
  • 自動化はCOUNTIF関数から始めて、慣れたらVBAへ
  • テンプレートを活用して、自分の現場用にカスタマイズするのが最速

コメント

タイトルとURLをコピーしました