• 作成日 : 2025年10月16日

スプレッドシートでシフト表を作るには?基本設計から自動化まで実践的な作成手順を解説

Googleスプレッドシートでシフト表を作成することで、クラウド上での共有、リアルタイムでの更新、スマホからの確認などスムーズに対応できます。Excelと比べて共有や同時編集の運用が簡単なのがメリットです。

本記事では、実用的なシフト表の作成手順から、関数を使った自動計算、見やすいデザインの工夫、運用上の注意点まで解説します。

スプレッドシートでシフト表を作る基本設計は?

スプレッドシートでシフト表を作成する際は、まず月間カレンダー形式、週間タイムテーブル形式、リスト形式の3つの基本レイアウトから、業務に最適な形式を選択することが重要です。

それぞれの形式には特徴があり、業種や管理方法によって使い分けることで、効率的なシフト管理を実現できます。基本設計をしっかりと行うことで、後の運用がスムーズになります。

月間カレンダー形式の設計

月間カレンダー形式は、一般的なシフト表のレイアウトです。横軸に日付、縦軸に従業員名を配置し、1ヶ月分のシフトを一覧で確認できます。

基本的な構成要素
  • A列:従業員名
  • B列以降:日付(1日~31日)
  • 1行目:曜日表示
  • 2行目:日付表示
  • 3行目以降:各従業員のシフト

この形式の利点は、月全体の人員配置を俯瞰できることです。特定の日に人員が不足していないか、連勤が続いていないかなど、バランスを確認しやすくなります。また、印刷時にもA4やA3用紙に収まりやすく、掲示用としても適しています。

セルのサイズは、シフト記号(早番:E、遅番:L、休み:休など)が見やすいよう、幅30ピクセル、高さ25ピクセル程度に設定します。フォントサイズは10〜12ポイントが適切です。

画面倍率や印刷設定に応じて読みやすさ優先で調整してください。

週間タイムテーブル形式の設計

時間帯別の詳細な管理が必要な場合は、週間タイムテーブル形式が適しています。横軸に曜日、縦軸に時間帯を配置し、各時間帯の配置人員を記入します。

レイアウト構成
  • A列:時間帯(9:00、10:00…)
  • B〜H列:月曜日〜日曜日
  • 各セル:その時間帯に勤務する従業員名

飲食店や小売店など、時間帯によって必要人数が変動する業種に最適です。ピークタイムの人員配置や、引き継ぎ時間の重複なども視覚的に確認できます。1週間単位で作成し、月4〜5枚のシートで1ヶ月分を管理します。

リスト形式での管理

データベース的な管理を重視する場合は、リスト形式が有効です。1行に1件のシフト情報を記録し、フィルターや並べ替えで必要な情報を抽出します。

列構成例
  • A列:日付
  • B列:曜日
  • C列:従業員名
  • D列:勤務開始時刻
  • E列:勤務終了時刻
  • F列:休憩時間
  • G列:実働時間

この形式は、給与計算システムとの連携や、勤務実績の集計に適しています。QUERY関数やピボットテーブルを使用することで、様々な角度からデータを分析できます。

スプレッドシートでシフト表を作る手順は?

実際にシフト表を作成する手順は、テンプレートの準備、基本情報の入力、書式設定、関数の実装、共有設定の5つのステップで進めることです。

各ステップを丁寧に実行することで、見やすく使いやすいシフト表が完成します。

ステップ1:テンプレートシートの準備

新規スプレッドシートを作成し、基本的な枠組みを設定します。

まず、シート名を「2024年1月シフト」のように分かりやすい名前に変更します。次に、必要な行と列を確保します。月間カレンダー形式の場合、従業員20名、31日分を想定すると、最低でも25行×35列程度が必要です。

ヘッダー部分(1〜3行目)を固定表示にすることで、スクロールしても日付が常に見えるようにします。「表示」→「固定」→「3行」を選択して設定します。同様に、A列(従業員名)も固定すると使いやすくなります。

ステップ2:日付と曜日の自動入力

日付と曜日を手動で入力するのは非効率なため、関数を使って自動化します。

B1セルに年月の基準日を入力(例:2024/1/1)し、B2セルに以下の数式を入力します。

=IF(MONTH(DATE(YEAR($B$1),MONTH($B$1),COLUMN()-1))=MONTH($B$1),DAY(DATE(YEAR($B$1),MONTH($B$1),COLUMN()-1)),””)

この数式により、その月の日付のみが表示され、存在しない日(2月30日など)は空白になります。

曜日の表示は、B3セルに以下の数式を入力します。

=IF(B2=””,””,TEXT(DATE(YEAR($B$1),MONTH($B$1),B2),”ddd”))

これらの数式を右にコピーすることで、1ヶ月分の日付と曜日が自動的に生成されます。

ステップ3:従業員情報の入力と管理

A列に従業員名を入力しますが、単純な文字入力ではなく、データ入力規則を使用して管理します。

別シートに「従業員マスター」を作成し、従業員情報を一元管理します。マスターシートには、従業員名、雇用形態、時給、連絡先などを記録します。

シフト表のA列では、データ入力規則を設定して、従業員マスターから選択できるようにします。

  1. A4:A30を選択
  2. 「データ」→「データの入力規則」
  3. 条件:「リストを範囲で指定」
  4. 範囲:従業員マスター!A:A

これにより、入力ミスを防ぎ、従業員の追加・削除も簡単に管理できます。

ステップ4:シフト記号と条件付き書式

シフトの種類を記号で表現し、視覚的に分かりやすくします。

よく使用されるシフト記号
  • E(Early):早番
  • L(Late):遅番
  • N(Night):夜勤
  • 休:休日
  • 有:有給休暇

これらの記号に対して、条件付き書式を設定して色分けします。シフト入力範囲(B4:AF30)を選択し、「表示形式」→「条件付き書式」から設定します。

条件付き書式の設定例
  • セルが「E」の場合:背景色を薄い青
  • セルが「L」の場合:背景色を薄い緑
  • セルが「N」の場合:背景色を薄い紫
  • セルが「休」の場合:背景色を薄いグレー

色は薄めに設定することで、文字が読みやすくなります。

ステップ5:自動集計機能の実装

各種集計を自動化することで、管理の効率が大幅に向上します。

日別の出勤人数集計 32行目に、各日の出勤人数を集計する数式を入力:

=COUNTIF(B4:B30,”<>休”)-COUNTIF(B4:B30,””)

個人別の月間勤務日数 AG列に、各従業員の月間勤務日数を集計:

=COUNTIF(B4:AF4,”<>休”)-COUNTIF(B4:AF4,””)

シフト種類別の集計 COUNTIF関数を使用して、早番・遅番・夜勤それぞれの回数を集計:

=COUNTIF(B4:AF4,”E”)  // 早番の回数

これらの集計により、公平性のチェックや人件費の概算が可能になります。

勤務時間の自動計算を実装する方法は?

シフト記号から勤務時間を自動計算する仕組みを作ることで、給与計算の基礎データを効率的に生成でき、手計算によるミスを防止できます。

VLOOKUP関数やSWITCH関数を活用することで、複雑な勤務体系にも対応可能です。

シフトマスターの作成

別シートに「シフトマスター」を作成し、各シフトの詳細情報を管理します。

シフトマスターの構成
  • A列:シフト記号(E、L、N等)
  • B列:開始時刻(9:00、14:00等)
  • C列:終了時刻(18:00、22:00等)
  • D列:休憩時間(1:00等)
  • E列:実働時間(8:00等)

このマスターを参照することで、シフト記号から自動的に勤務時間を算出できます。

VLOOKUP関数での時間計算

シフト表に入力された記号から、実働時間を自動取得する数式:

=IFERROR(VLOOKUP(B4,シフトマスター!$A:$E,5,FALSE),0)

この数式により、「E」と入力すれば自動的に「8:00」などの実働時間が別セルに表示されます。

月間の総労働時間は、SUM関数で集計:

=SUM(B34:AF34)

時給制の場合は、この総労働時間に時給を掛けることで、概算給与を自動計算できます。

複雑なシフトパターンへの対応

分割勤務や変則シフトにも対応できる仕組みを作ります。

例えば、「E+」という記号で早番の延長(残業あり)を表現する場合:

=IF(RIGHT(B4,1)=”+”,VLOOKUP(LEFT(B4,1),シフトマスター!$A:$E,5,FALSE)+1,VLOOKUP(B4,シフトマスター!$A:$E,5,FALSE))

この数式により、通常の勤務時間に1時間を加算できます。より複雑な計算が必要な場合は、SWITCH関数やIFS関数を組み合わせて実装します。

見やすく使いやすいデザインの工夫は?

シフト表の視認性を高めるには、適切な色使い、罫線の設定、フォントの選択、印刷レイアウトの最適化が重要で、これらを組み合わせることでプロフェッショナルな仕上がりになります。

デザインの良し悪しは、日々の運用効率に直結します。

配色とテーマの設定

シフト表は毎日確認するものなので、目に優しい配色を心がけます。

推奨する配色パターン
  • 背景:白または薄いベージュ(#FFFEF5)
  • ヘッダー:濃い青(#1E40AF)に白文字
  • 土曜日:薄い青(#DBEAFE)
  • 日曜日・祝日:薄いピンク(#FEE2E2)
  • 本日:黄色の枠線

TODAY関数を使った本日ハイライト:

=AND(B$2=DAY(TODAY()),MONTH($B$1)=MONTH(TODAY()))

この条件付き書式により、当日の列が自動的にハイライトされます。

罫線と区切りの効果的な使用

罫線を適切に使用することで、情報の区切りが明確になります。

罫線設定のポイント
  • 外枠:太線(2px)
  • 日付の区切り:細い実線(1px)
  • 週の区切り:やや太い線(1.5px)
  • 従業員5名ごと:点線で区切り

特に、週の始まり(月曜日)に縦の太線を入れることで、週単位での確認がしやすくなります。

レスポンシブな表示設定

様々なデバイスで見やすくするための工夫

PC表示用
  • 全体を100%表示で画面に収める
  • フォントサイズ11pt
  • セル幅35px
スマホ表示用
  • 重要な列(本日前後3日間)のみ表示
  • フォントサイズ14pt
  • タップしやすいセルサイズ

フィルタービューを活用することで、デバイスごとに最適な表示を切り替えられます。

共有と権限設定のベストプラクティスは?

シフト表を安全かつ効率的に共有するには、適切な権限設定、変更通知の設定、バックアップ体制の構築が不可欠で、これらにより情報漏洩や誤操作を防げます。

共有設定は、シフト表運用の要となる重要な部分です。

役職に応じた権限設定

Googleスプレッドシートの共有機能を使い、役職に応じて適切な権限を設定します。

権限設定の例
  • 管理者(店長・マネージャー):編集権限
    • すべてのセルを編集可能
    • 従業員の追加・削除
    • マスターデータの変更
  • リーダー(シフトリーダー):編集権限(制限付き)
    • シフト入力のみ可能
    • マスターデータは閲覧のみ
  • 一般従業員:閲覧権限
    • 自分のシフトを確認
    • 全体スケジュールの把握
保護されたシートと範囲を使用して、特定のセルのみ編集可能にする
  1. 「データ」→「保護されたシートと範囲」
  2. 編集可能な範囲を指定
  3. 例外ユーザーを設定

変更通知とコミュニケーション

シフトの変更を確実に伝達するシステムを構築します。

メール通知の設定: 「ツール」→「通知ルール」から、シートが編集された際にメール通知を送る設定をします。重要な変更のみ通知するよう、条件を細かく設定できます。

コメント機能の活用: 特定のセルにコメントを追加し、@メンションで担当者に通知

  • 急な変更依頼
  • シフト交換の相談
  • 確認事項の共有

更新履歴の記録: 別シートに「更新履歴」を作成し、いつ、誰が、何を変更したかを記録します。重要な変更は自動的にログを残すようGASで実装することも可能です。

シフト表作成時の重要な注意点は?

シフト表を作成・運用する際は、労働基準法の遵守、プライバシー保護、データのバックアップ、公平性の確保など、法的・倫理的な観点からの注意が必要です。

これらの注意点を守ることで、トラブルを未然に防げます。

労働基準法との整合性

シフト作成時に法令違反がないよう、自動チェック機能を実装します。

チェック項目と対策
  • 連続勤務日数:6日を超える連続勤務に警告
  • 勤務間隔:前日の終業から翌日の始業まで8時間~11時間を確保
  • 月間労働時間:法定労働時間を超過する場合に警告
  • 休日の確保:週1日以上の休日を確認(週1日以上または4週4日の休日が必要)

条件付き書式で警告表示

=COUNTIF(B4:G4,”<>休”)>=6

この条件で6連勤以上を赤色表示します。

プライバシーとセキュリティ

個人情報の取り扱いに注意し、必要最小限の情報のみ共有します。

表示制限すべき情報
  • 個人の連絡先(電話番号、住所)
  • 時給・給与情報
  • 個人的な休暇理由

これらの情報は、別の保護されたシートで管理し、必要な権限者のみアクセス可能にします。

外部共有の制限: 「共有設定」で「リンクを知っている全員」ではなく、「特定のユーザー」のみに共有を限定します。定期的に共有リストを確認し、退職者のアクセス権を削除することも重要です。

バックアップと復旧体制

データ消失に備えた対策を講じます。

自動バックアップの設定
  1. 定期的にシートのコピーを作成
  2. Google Apps Scriptで自動化:
    function createBackup() {var sheet = SpreadsheetApp.getActiveSpreadsheet();var folder = DriveApp.getFolderById(‘FOLDER_ID’);

    sheet.makeCopy(‘バックアップ_’ + new Date(), folder);}

バージョン管理: 「ファイル」→「変更履歴」→「変更履歴を確認」で、過去のバージョンに戻すことができます。重要な変更前には、名前を付けてバージョンを保存しておきます。

スプレッドシートでシフト表運用を成功させる

Googleスプレッドシートを使用したシフト表作成は、適切な設計と機能実装により、効率的な勤務管理を実現できます。基本的なレイアウトの選択から、自動計算機能の実装、見やすいデザインの工夫、適切な共有設定まで、段階的に構築していきましょう。

労働法規の遵守やプライバシー保護にも配慮しながら、組織に最適化されたシフト管理システムを構築することで、管理者の負担軽減と従業員の満足度向上を両立できるでしょう。

本記事で紹介した手法を参考に、まずは基本的なテンプレートから始めて、徐々に高度な機能を追加していくことをおすすめします。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事