Mihata
仕事効率化(DX)2026.07.16

シフト表をエクセルで自動作成する方法|無料テンプレートと関数の作り方【2026】

「毎月のシフト表づくりに何時間もかかっている」「無料でエクセルのまま自動化できないか」——飲食・小売・介護など、現場のシフトを組む責任者からよく聞く悩みです。エクセルは追加コストなしで始められ、関数と条件付き書式を組み合わせれば、集計や曜日表示、人数チェックの多くを自動化できます。この記事では、無料テンプレートの入手先から、実務で使う関数の作り方、そしてエクセルの限界と次の一手までを、現場目線でまとめます。

先に結論です。エクセルでのシフト表は、Microsoft公式の無料テンプレートを土台にすれば初期費用0円で始められます。曜日表示はTEXT関数、土日の色分けは条件付き書式、勤務日数や必要人数の集計はCOUNTIF/COUNTIFSで自動化でき、覚える関数は実質4〜5個で十分です。ただし人数が増えて希望シフトの収集やダブルブッキング検知が必要になると手作業が急増するため、どこまでエクセルで、どこから別の手段かの線引きが肝心です。

エクセルでシフト表を無料自動化できる?全体像

結論として、日々の集計や見た目の自動化はエクセルの標準機能だけで十分に実現できます。必要なのは「シフト記号を決める→プルダウンで入力→関数で集計→条件付き書式で色分け」という4段構えの型です。特別なマクロ(VBA)は不要で、関数と入力規則だけで大半は完結します。

一方で、自動化には得意・不得意があります。エクセルが得意なのは「入力済みのシフトを数える・見やすくする」ことで、苦手なのは「希望を集めて最適に割り当てる」ことです。まずは得意な部分から自動化し、限界を感じたら手段を切り替える、という順序が現場では現実的です。

無料テンプレートの入手先(まず土台を用意する)

ゼロから作るより、公式の無料テンプレートを土台にした方が早く、崩れにくいです。実務では、テンプレートをコピーして自店舗の人数・時間帯に合わせて列を足すところから始めるのが定石です。以下はいずれも無料で入手できます。

Microsoftの「シフト管理表(月別・日別)」テンプレートは、時間帯ごとに何人が実働しているかを一目で確認できる構成になっており、そのまま使い始められます。まずは公式テンプレートで骨格を作り、次章の関数で自動化を足していくのがおすすめです。

シフト表を関数で自動化する作り方(ステップ)

ここからは、無料テンプレートに足すと効く自動化を、実務で使う順に紹介します。行に従業員名、列に日付を並べた表を前提にします。

1. プルダウンでシフト記号を選択式にする

まず「早・日・遅・夜・休」などのシフト記号を決め、入力をプルダウン化します。入力するセル範囲を選び、[データ]タブ→[データの入力規則]→[設定]で[入力値の種類]を「リスト」にし、[元の値]に 早,日,遅,夜,休 のようにカンマ区切りで入れるだけです(ドロップダウンリストを作成する|Microsoft Support)。表記ゆれ(「休み」「休」)が集計を壊す原因になるため、選択式にして記号を固定することが自動化の前提になります。

2. 曜日を自動表示し、土日を判定する

日付の下に曜日を自動で出すには =TEXT(日付セル,"aaa") を使います。書式コード「aaa」は「月・火・水」といった短い日本語の曜日を返し、「aaaa」にすると「月曜日」とフルで表示されます(TEXT関数|Microsoft Support)。土日判定には WEEKDAY関数を使い、既定では日曜が1、土曜が7の整数が返ります(WEEKDAY関数|Microsoft Support)。日付を1つ入れれば曜日が自動で並ぶので、毎月の打ち直しがなくなります。

3. 条件付き書式で土日・「休」に色を付ける

色分けは条件付き書式の「数式を使用して書式設定するセルを決定」で行います。日付が2行目に横並びなら、土曜は =WEEKDAY(B$2)=7、日曜は =WEEKDAY(B$2)=1 という数式ルールで列全体を塗り分けられます。「休」のセルを目立たせたいときは =B3="休" のように、対象範囲の左上セルを基準にした数式を入れます。参照の $ の付け方が肝で、行だけ固定したいなら B$2、列だけ固定したいなら $B2 と、固定したい方向にだけ $ を付けます。

4. 勤務日数とシフト種別を集計する(COUNTIF/COUNTIFS)

各人の勤務日数は COUNTIF(範囲, 検索条件) で数えます。たとえば従業員1人分の1か月が C3:AG3 なら、=COUNTIF(C3:AG3,"休") で休みの日数、=COUNTIF(C3:AG3,"早") で早番の回数が出ます(COUNTIF関数|Microsoft Support)。「早番かつ特定の週」のように条件を重ねたいときは COUNTIFS(条件範囲1, 条件1, …) を使い、複数条件のAND集計ができます(COUNTIFS関数|Microsoft Support)。

5. 日別の必要人数を満たすかチェックする

「その日その時間帯に何人いるか」は、日付の列を縦にCOUNTIFで数えます。表の一番下に集計行を作り、たとえば早番の実働人数を =COUNTIF(D$3:D$12,"早") として右方向にコピーすれば、各日の早番人数が一気に並びます。ここで範囲を D$3:D$12 のように行を絶対参照($)で固定しておくのがポイントで、固定を忘れるとコピー時に範囲がずれて数え漏れが起きます。必要人数の行と見比べれば、人手不足の日がひと目でわかります。

6. 名前・時給を紐付けて勤務時間を合計する(XLOOKUP)

従業員名から時給や標準勤務時間を引くには XLOOKUP(検索値, 検索範囲, 戻り配列) が便利で、既定で完全一致・列の左右を問わず引ける後継関数です(XLOOKUP関数|Microsoft Support)。別シートの名簿から =XLOOKUP(A3, 名簿!$A$2:$A$50, 名簿!$B$2:$B$50) のように時給を引き、勤務時間の合計と掛け合わせれば人件費の概算まで自動化できます。XLOOKUPはExcel 2016・2019では使えないため、その場合は従来の VLOOKUP で代替します。

つまずきやすい注意点

自動化が壊れる原因はだいたい決まっています。第一にCOUNTIFの範囲固定漏れ——集計式をコピーすると参照範囲がずれるので、動かしたくない範囲は $ で固定します。第二にTEXTの曜日コード——曜日は必ず半角の「aaa」(または「aaaa」)で、全角や別記号では正しく出ません。第三に条件付き書式の $ の向き——列で塗り分けたいのに $B2 のように列を固定すると意図とずれるので、固定したい方向を意識して付けます。この3点を押さえるだけで、崩れにくいシフト表になります。

手作り・無料テンプレ・専用ツールの比較

どこまでエクセルでやるかは、店舗の規模と希望シフト収集の有無で決めます。向き・不向きを整理すると次のとおりです。

観点

エクセル手作り

無料テンプレート

専用シフト管理ツール

費用

0円

0円

月額課金が中心

導入の早さ

作り込みに時間

すぐ使える

設定・登録が必要

自由度

非常に高い

高い(改変前提)

ツールの範囲内

希望シフト収集

手作業

手作業

スマホから自動収集

ダブルブッキング検知

弱い(自作次第)

弱い

自動チェック

向いている規模

小〜中規模

小〜中規模

中〜大規模・多店舗

数名〜十数名で、自分がシフトを組む立場ならエクセルで十分です。集計の型が固まった請求まわりも同じ発想で自動化でき、請求書をエクセルで無料自動化する方法と合わせると、バックオフィス全体の手作業を減らせます。

エクセル自動化の限界と、次の一手

正直に書くと、エクセルのシフト表には限界があります。人数が増えるとファイルが重くなり、希望シフトを紙やメールで集めて手入力する工程が残り、そこがボトルネックになります。さらに、同じファイルを複数人で同時に編集すると上書きが起き、「誰が最新か」が分からなくなりがちです。ダブルブッキングの検知も、自作の数式では見落としが出ます。

こうした限界の多くは「関数の問題」ではなく「1枚のシートに役割を詰め込みすぎている」ことに起因します。入力・集計・共有を1ファイルで兼ねると、規模が増えた瞬間に破綻します。対処法は、スプレッドシート管理の限界とアプリ化という選択肢で解説しているように、入力と閲覧の役割を分け、必要な人が必要な画面だけを触れる形にすることです。

私たちMihataは、こうした「エクセル・スプレッドシートのアプリ化」も行っております。記事の途中で恐縮ですが、いま使っている表をそのまま活かしつつ、希望シフトの収集や同時編集の悩みを解けないか考えている方は、よろしければ合わせてご覧いただけたら嬉しいです。

難しいプログラミングなしで業務用の入力フォームや一覧画面を用意する発想は、ノーコードで社内の業務アプリを作る考え方が参考になります。顧客名簿など他の管理でも同じ壁にぶつかりやすく、Excel顧客管理の限界と乗り換えの判断基準も併せて読むと、エクセルを続ける・卒業するの線引きがはっきりします。

まとめ

エクセルでのシフト表は、公式の無料テンプレートを土台に、TEXT・WEEKDAY・COUNTIF・COUNTIFS・XLOOKUPの5関数と条件付き書式を押さえれば、初期費用0円で実務レベルまで自動化できます。まずは集計と色分けから始め、希望シフト収集や同時編集で手が止まったら、無理に数式で抱え込まず役割を分ける——この順序が失敗しないコツです。自社のシフト運用に合わせた自動化やアプリ化で迷ったら、お気軽にご相談ください。

シフト表の次に「集計を見える化」したくなったら、スプレッドシートでダッシュボードを作る方法が役立ちます。効率化の打ち手を広く知りたい場合は、中小企業向けの業務効率化ツールおすすめもあわせてどうぞ。

よくある質問

エクセルでシフト表を無料で自動作成できますか?

できます。Microsoft公式の無料テンプレートを土台にすれば初期費用0円で始められ、TEXTやCOUNTIFなどの標準関数と条件付き書式で曜日表示・色分け・人数集計を自動化できます。特別なマクロは不要です。

シフト表の自動化に必要な関数は何ですか?

曜日表示のTEXT、土日判定のWEEKDAY、勤務日数や種別の集計に使うCOUNTIFとCOUNTIFS、名前や時給の紐付けに使うXLOOKUP(またはVLOOKUP)の実質4〜5個で大半をまかなえます。

条件付き書式で土日に色を付けるにはどうすればいいですか?

条件付き書式の「数式を使用して書式設定するセルを決定」で、土曜は=WEEKDAY(日付セル)=7、日曜は=WEEKDAY(日付セル)=1という数式ルールを作り、塗りつぶし色を指定します。列で塗り分けるときは行だけを$で固定します。

無料のシフト表テンプレートはどこで手に入りますか?

Microsoftが公式に無料配布しており、月別・日別の「シフト管理表」テンプレートや、Excel用のスケジュールテンプレート集からダウンロードできます。自店舗の人数や時間帯に合わせて列を足して使うのがおすすめです。

エクセルと専用のシフト管理アプリはどちらがいいですか?

数名〜十数名で自分がシフトを組むならエクセルで十分です。人数が増えて希望シフトの収集や同時編集、ダブルブッキング検知が必要になったら、役割を分けたアプリ化や専用ツールへの切り替えを検討すると失敗しにくいです。

まずはお気軽にご相談ください

AI・IT・デザインに関するお悩みやご相談、お見積りのご依頼など、
どんなことでもお気軽にお問い合わせください。

お問い合わせ