エクセルのシフト表で名前の重複をチェックするには、同じ日の列だけで一致する名前を数え、2枠以上に入っているセルを条件付き書式で赤くする方法が使えます。表全体ではなく、日付ごとに比較範囲を分けるのがポイントです。(Microsoft サポート)
以下では、記入例入りのExcelと、既存の配置表に設定する数式を紹介します。行うのは、入力済みの予定の重複チェックです。空いている枠への自動割当や、必要人数の自動集計とは異なります。
同じ日の名前だけを重複チェックする
ここで確認する「重複」は、同じ職員が同じ日に2枠以上へ入力されている状態です。9月1日と9月2日に同じ人が出勤することは、重複に含めません。
表全体を選んで条件付き書式の「重複する値」を設定すると、別の日に入力した同じ名前まで色付けの対象になります。同じ日だけを調べたい場合は、1列ずつ比較する数式ルールを設定しましょう。(Microsoft サポート)
配置表と、従業員ごとの勤務記号表を分ける
配布Excelは、日付が横、配置枠が縦、各セルに職員の名前を入れる配置表です。従業員ごとの行に「早」「遅」「休」を入力する勤務表とは、セルの意味が違います。
| 表の形式 | 縦方向に並ぶもの | 横方向に並ぶもの | セルに入力する内容 |
|---|---|---|---|
| 今回の配置表 | 配置枠1、配置枠2… | 日付 | S001 スタッフAなど |
| 従業員ごとの勤務表 | 職員ID・氏名 | 日付 | 早、遅、休など |
勤務記号表へ今回の式をそのまま設定しても、職員の二重配置は確認できません。元の勤務表から、その日に各枠を担当する職員を確認し、配置表へ転記してください。入力は1セルに1人とします。
配布Excelで、赤いセルが消えるまで試す
名前の重複チェック用Excelをダウンロード 配布ファイルはマクロを使わず、SUMPRODUCTと条件付き書式で判定する構成です。シート名は「日別重複」。架空のスタッフと2026年9月の日付を使った記入例が入っています。
| 用途 | セル範囲 | 内容 |
|---|---|---|
| 対象日付 | C5:I5 | 7日分の日付 |
| 名前の入力 | C6:I13 | 8配置枠×7日 |
| 判定結果 | C17:I24 | 該当する位置に「重複」を表示 |
まずは職場の予定に置き換えず、記入例で入力と表示の関係を確かめましょう。お使いのExcelで、次の変化になるかを確認してから実務に使ってください。
記入例のC7を空欄にして確認する
記入例では、9月1日のC6とC7に、どちらも「S001 スタッフA」が入っています。試す順序と、数式上想定する表示は次のとおりです。
- 変更前を確認する。 C6・C7の両方が赤く、対応するC17・C18に「重複」が表示されることを確かめます。
- C7の内容だけを消す。 セルや行を削除せず、C7を空欄にしてください。
- 入力欄と結果欄を見直す。 C6・C7の両方から赤い色が消え、C17・C18の「重複」も消えることを確認します。
9月2日のD6にも「S001 スタッフA」がありますが、別の日なので9月1日の重複判定には入りません。C7を空欄にしたあとも、D6の入力は残してください。
元の勤務表を見ながら職場の予定へ置き換える
試し終えたらファイルを別名で保存し、C5:I5の日付とC6:I13の記入例を、職場の予定へ置き換えます。用意するのは、元の勤務表、対象日付、職員ID付きの氏名です。
名前は、職員名簿で統一した「ID+氏名」を転記してください。C17:I24は結果式のある場所なので、名前を貼り付けたり、「重複」の文字を手で消したりしません。
この配置表は日付の値を照合して列をまとめる仕組みではなく、列ごとに判定します。1日を複数列に分けず、各列に異なる対象日付を設定する前提です。
既存のシフト表に条件付き書式を設定する
既存表を使う場合は、先にコピーを保存しましょう。以下は名前の入力範囲がC6:I13の場合です。実際の表が異なる場合は、先頭セルと配置枠の範囲を読み替えます。
操作案内は、2026-09-15時点のMicrosoft公式資料を基にしたWindows版向けです。Mac版やWeb版などでは、画面や項目名が異なる場合があります。(Microsoft サポート)
数式ルールと赤い塗りつぶしを設定する
- C6を起点に、名前の入力範囲「C6:I13」を選択します。
- [ホーム]→[条件付き書式]→[新しいルール]を開きます。
- [数式を使用して、書式設定するセルを決定]を選びます。
- 数式欄に、次の式を入力します。
=AND(C6<>"",SUMPRODUCT(--(C$6:C$13=C6))>1)
- [書式]→[塗りつぶし]で赤を選び、[OK]を押します。
- ルールの画面でも[OK]を押して設定を保存します。
条件付き書式では、数式の判定結果がTRUEになるセルへ、指定した書式を適用します。上の式は、選んだ範囲の左上セルがC6であることを前提にしています。(Microsoft サポート)
適用先と、表示がずれていないかを確かめる
[条件付き書式]→[ルールの管理]を開き、適用先が「=$C$6:$I$13」になっているか確認してください。適用先は色を付ける範囲であり、式の中にある比較範囲とは役割が異なります。(Microsoft サポート)
表全体の「重複する値」ルールが以前から残っている場合は、そのルールも確認します。今回の目的に合わないルールだけを修正・削除し、必要な書式までまとめて消さないようにしましょう。
設定後はコピーした表で同日の2セルへ同じ名前を入れ、片方を空欄にして再確認します。色がずれる場合は、適用先の先頭がC6か、式の「C6」に不要な「$」が付いていないかを見直してください。
日付列だけを数える数式の読み方
式を丸ごと暗記する必要はありません。「空欄を除く」「同じ列で数える」「2件以上なら知らせる」の3点を押さえると、既存表へ設定するときにも迷いません。
空欄を除き、一致数が2以上なら色を付ける
冒頭の「C6<>""」は、C6が空欄ではないという条件です。ANDで後半の条件と組み合わせ、空欄を赤くする対象から除外しています。
次の部分が、同じ日の一致数を求める計算です。
SUMPRODUCT(--(C$6:C$13=C6))
「C$6:C$13=C6」で、C列の8枠をC6と比較します。一致する位置はTRUE、一致しない位置はFALSEとなり、「--」でそれぞれ1と0に変換します。このように論理値を数値へ変換してSUMPRODUCTで扱う方法は、Microsoftの技術資料でも説明されています。(Microsoft Learn)
今回の式では、変換した1と0をSUMPRODUCTで合計し、一致数として使います。(Microsoft サポート)
例えば、C6とC7だけが同じ名前なら一致数は2です。自分自身のセルも1件に含むため、最後の「>1」で2件以上を判定します。C7を空欄にすると、C6の一致数は1へ減ります。
行を固定し、日付列は追随させる
「C$6:C$13」の「$」は、行番号の6と13を固定するためのものです。列のCには付けていないため、右隣のD列を判定するときは「D$6:D$13」へ移ります。行だけを固定する、複合参照の使い方です。(Microsoft サポート)
一方、比較する名前の「C6」は相対参照です。C7を判定するときはC7、D6を判定するときはD6へ追随します。(Microsoft サポート)
つまり、各日付列の6~13行目を固定して見渡し、その中で判定中のセルと同じ名前を数える仕組みです。比較範囲を「$C$6:$C$13」にすると列まで固定されるので、今回の式ではCの前に「$」を付けません。
結果欄に「重複」を表示する
色だけでなく文字でも確認したい場合は、C17に次の式を入れ、C17:I24へコピーします。配布版には、この結果式も入っています。
=IF(C6="","",IF(SUMPRODUCT(--(C$6:C$13=C6))>1,"重複",""))
外側のIFは、入力セルが空欄なら結果も空欄にするための処理です。名前があるときだけ内側の判定へ進み、一致数が2以上なら「重複」、それ以外は空欄を返します。(Microsoft サポート)
C17はC6、C18はC7に対応します。「重複」を消したいときは結果欄ではなく、対応する名前の入力欄を修正してください。
同姓同名と表記の違いを整理する
氏名だけでは、同姓同名の職員を区別できません。配布例の9月2日には、D6に「S001 スタッフA」、D10に「S007 スタッフA」を入れています。名前が同じでもIDが違うため、別人として比較する例です。
ただし、この式はID部分だけを抜き出すのではなく、IDと氏名を含むセル全体を比較します。同じIDでも氏名や空白の入れ方が違えば、同じ値として扱えない場合があります。
前後の空白や全角・半角の違いを見つけたら、職員名簿と照合して正しい表記へそろえましょう。氏名だけを一括補正して別人を混同しないよう、まずIDで本人を確認し、その人の表記を統一して転記します。
配布版の一致比較では、名前に含まれる「*」「?」をワイルドカードとして扱いません。一方、英字の大文字・小文字は区別しないため、大小だけが異なるIDで別人を識別する用途には使わないでください。(シフトラ)
記号を含まない単純な名前ならCOUNTIFを使う方法もありますが、今回は式を増やさず、配布版と同じSUMPRODUCT方式で統一します。(Microsoft サポート)
重複を修正して、次の週に引き継ぐ
名前の重複を見つけたあとも、色を消すことだけを目的にしないでください。元の勤務表と照らし合わせ、残す配置と直す配置を判断します。
赤いセルは自動削除せず、兼務と空欄を確認する
赤は、誤りの確定ではなく確認候補です。例えば、架空の運用として午前と午後の別枠を同じ職員が担当できる職場なら、同日に名前が2回あっても、予定どおりかもしれません。
この式は勤務時刻を参照せず、時間帯の重なりも判定しません。「重複の削除」で一括処理せず、担当枠と時刻を確認してから、不要な入力だけを消すか、別の職員へ変更しましょう。
また、空欄は重複ではありませんが、未配置のままです。 C7を空欄にして赤い色が消えても、その枠に必要な人がそろったことにはなりません。必要人数、担当できる役割、本人のシフト希望は別に確認してください。
ファイルを複製し、枠を増やすときは3か所を更新する
次の週は、設定済みのファイルを複製し、日付と名前の入力内容を更新します。結果表を残しておけば、同じ考え方で確認を続けられます。
配置枠を増やす場合は、入力欄だけを広げないことが重要です。例えば、ほかの項目と重ならないよう9枠目を14行目に設けるなら、次の3か所をまとめて変更します。
- 条件付き書式の比較範囲を「
C$6:C$13」から「C$6:C$14」へ変更する。 - 条件付き書式の適用先を「
=$C$6:$I$14」へ広げる。 - C17の結果式も比較範囲の末尾を14行目へ変更し、結果表をC17:I25までコピーし直す。
変更後は、追加した9枠目と既存の枠へ同じ名前を入れ、両方で重複を拾うか試してください。行や列を不用意に削除せず、入力内容の修正と表の構造変更を分けて扱いましょう。
名前の確認と自動割当を分けて考える
入力した予定の重複確認だけなら、ここまでのExcel設定で進められます。一方、シフト管理で「誰をどこへ割り当てるか」を毎回考え直しているなら、勤務案を作る工程は別の課題です。
シフトラでは、シフト希望・必要人数・自然な日本語で入力したルールを基に勤務案を生成し、担当者が確認したうえでExcelへ出力する流れを取れます。これは、既存Excelの名前重複をその場で修正する機能ではなく、勤務案の作成と出力を支援するものです。(シフトラ)
まずは同じ日の同じ職員だけを比較し、赤いセルの理由を確認して修正しましょう。そのうえで、残った空欄と必要人数・役割・シフト希望を確認し、勤務表を確定してください。時間帯ごとの不足も確認したい場合は、休憩を除いて時間別の人数を数える方法を参照してください。