AIのシフト表が条件を守らないときの確認方法|希望休・重複・不足人数
表はきれいにできたのに、よく見ると希望休の日に名前がある。「もう一度確認して」と頼んでも、今度は別の日の人数が足りない。そんなときは、指示を長くする前に、間違いを三つに分けて確認すると直す場所が見えてきます。希望休、同じ人の重複、必要人数を、Excelで一つずつ確かめる手順です。
読み終えたらできること
- — 故意に誤りを入れた表で確認を練習する
- — 数式の結果が合わない原因を切り分ける
- — 直した案を確定してよいか判断する
掲載例は説明用の架空データです。実際のChatGPTの出力や店舗の実績ではありません。
目次から読みたいところへ
AIの自己点検と、元データによる点検を分ける
「条件を守った」と返ってきても、元の希望表との照合は別の作業です。希望休違反、同じ人の重複、人数不足をそれぞれ判定します。人数が多い日だけ見ても、同じ人が二重に数えられていれば安心できません。
ここでは日中の一枠10:00〜14:00に限定し、Excelで再現できる小さな練習を用意します。時間が重なる複数枠、日をまたぐ勤務、休憩、資格配置、法令や契約条件を完全に検証する表ではありません。
最初に分けたい三つの原因
希望休への配置を見つけても、原因がいつも生成の誤りとは限りません。元の希望表が更新されていなかった、入力した日付の形式が違った、そもそも必要人数を満たせる人がいなかった、という場合もあります。原因を分けずに再作成を繰り返すと、正しい条件まで少しずつ変わってしまいます。
まず、本人から届いた希望とAIへ渡した表が一致しているかを見ます。次に、AIへ渡した表と出力が一致しているかを見ます。前者が違えば入力の修正、後者が違えば案の修正です。入力も出力も条件どおりなのに人数が足りなければ、条件自体を店長が調整する必要があります。
例として「S002は6日不可」が元メッセージにだけ残り、入力表では可になっていたら、案だけ直しても次回また起きます。逆に入力表で不可と書いてあるのに配置されていれば、その組を具体的に指摘できます。確認を始める前に、元の希望、入力した版、返ってきた案の三つをそろえておきましょう。
わざと誤りを入れた配置表を貼り付ける
新しいシートを「配置」とし、A1へ次のタブ区切りを貼り付けます。日付は照合用の文字列としてそろえるため、A列を先に文字列書式へ設定してください。B列も文字列にします。列が分かれなければ、区切り文字をタブとして読み込みます。
これはAIの実出力ではなく、異常を検出できるか試すための人工的なデータです。2行目と3行目は同じ勤務の重複、4行目は希望休への配置、5行目の日は必要人数に1人足りません。
日付 スタッフID 開始 終了
2026-10-05 S001 10:00 14:00
2026-10-05 S001 10:00 14:00
2026-10-06 S002 10:00 14:00
2026-10-07 S003 10:00 14:00希望休との一致をCOUNTIFSで調べる
別シート「希望休」を作り、A1に日付、B1にスタッフID、A2に2026-10-06、B2にS002を入れます。こちらのA・B列も文字列書式にそろえます。配置シートのE1を「希望休と一致」とし、E2に次の式を入れてE5までコピーしてください。
この式は同じ日付とIDの組が希望休表にあるかを数えます。E4が1、他は0が期待値です。「0」は希望休一覧との一致がないという意味だけで、勤務可や全条件合格を証明しません。未回答や勤務可能時間は別の表と照合します。
=COUNTIFS('希望休'!$A$2:$A$100,A2,'希望休'!$B$2:$B$100,B2)この節の参照資料:Microsoft「COUNTIFS 関数」
同じ人・同じ日の行数を数える
配置シートのF1を「同日同IDの行数」とし、F2に次の式を入れ、F5までコピーします。F2とF3は2、F4とF5は1になります。この練習では一人一日一行なので2以上を要確認にします。
分割勤務を許す店では、同じ日の二行だけで誤りとは決まりません。その場合は開始・終了時刻の重なりを確認する別の判定が必要です。正しい分割勤務まで削除しないでください。
=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,B2)この節の参照資料:Microsoft「COUNTIFS 関数」
数式を入れたのに結果が合わないとき
練習データと同じなのに結果が全部0になる場合は、まず一致条件に使ったセルを見ます。画面では同じ「10月6日」でも、片方は日付の値、片方は文字列になっていることがあります。この練習で日付を文字列にそろえているのは、日付計算よりも、同じ表記の組を見つけることに集中するためです。
次に、IDの前後に空白がないかを確認します。「S002」と「S002 」は見た目では気づきにくく、全角・半角の違いも紛れます。まず問題の二つのセルを別の空白シートへコピーして比較し、原因を確かめてから整えます。元の表を残さず一括で置換すると、本来別のコードまで同じものにしてしまうおそれがあります。
100行を超える表で使うなら、式の参照範囲も確認してください。記事の式は2〜100行目までの練習用です。101行目以降を追加しても、式は自動でその行を数えるとは限りません。データの最後の行に、確実に検出される組を一つ置いて結果を見ると、範囲漏れに気づけます。確認後は試験用の行を取り除きます。
必要人数は、重複を解消してから比較する
「人数」シートのA1:C1を日付・必要人数・配置行数にします。A2:A4は2026-10-05、2026-10-06、2026-10-07を文字列で入力し、B2:B4はすべて2です。C2に次の式を入れてC4までコピーします。
最初の結果は2・1・1ですが、5日の2行は同じ人です。重複する配置の一行を解消し、希望休違反の配置を外してから再集計すると1・0・1になります。必要人数との差は1・2・1です。行数を人数として扱えるのは一人一日一行を確認した後だけです。
=COUNTIFS('配置'!$A$2:$A$100,A2)| 日付 | 修正前の行数 | 有効な配置人数 | 不足 |
|---|---|---|---|
| 10月5日 | 2(同一人物が重複) | 1 | 1 |
| 10月6日 | 1(希望休と一致) | 0 | 2 |
| 10月7日 | 1 | 1 | 1 |
この節の参照資料:Microsoft「COUNTIFS 関数」
同じ日に二行あっても、時間が重ならない場合がある
ここまでの練習は一人一日一枠です。実際の店では、10〜13時と16〜19時のように、同じ人が二回入ることもあります。この場合、日付とIDの数が2でも、それだけで二重配置とはいえません。午前と夕方の勤務を誤って一行消さないよう、勤務の単位を先に決めます。
時間の重なりは、二つの区間のうち遅い方の開始時刻が、早い方の終了時刻より前かどうかで考えられます。10〜14時と13〜17時なら13〜14時が重なります。10〜14時と14〜18時なら、端の時刻は接しますが勤務時間は重なりません。引き継ぎに余裕が必要かどうかは、重複の判定とは別の店の条件です。
日をまたぐ勤務はさらに注意が必要です。「22:00〜02:00」を同じ日付の時刻だけで比較すると、終了が開始より前に見えます。開始日と終了日を持つ日時の表で確認するか、日中勤務だけの表と分けてください。この入門用COUNTIFSをそのまま夜勤の安全確認に使わず、扱える範囲を明確にしておきます。
希望休だけでなく「その時間に働けるか」も確認する
希望休一覧に名前がなければ、いつでも働けるわけではありません。学生スタッフが18時以降なら働ける日には、日付単位のチェックは通っても、16時からの配置は希望に合いません。開始と終了の両方が、確認済みの勤務可能な時間帯に入っているかを見ます。
たとえば勤務可能時間が18〜21時、配置案が18〜20時なら範囲内です。17〜20時なら開始が早すぎ、19〜22時なら終了が遅すぎます。いずれも一時間だけの違いですが、本人から見れば出勤できない案です。「ほぼ合っている」と処理せず、確認が必要な箇所として残してください。
未回答は希望休一覧にも載っていないため、この式だけでは見つかりません。勤務可の情報が確認できない人は、配置済みの表からIDと日付を拾って別に一覧にします。「不可ではない」と「可を確認した」の間を埋めるのは、本人への確認です。ここを明確にしておくと、完成後の差し戻しを減らせます。
不具合の場所を指定して修正を依頼する
再生成でほかの日が変わるのを避けるため、元の案、違反箇所、変更を許す範囲を渡します。代替候補の可否データがない場合は、不足を残したまま確認事項を返させます。
修正後は同じ検査をもう一度行います。一度違反が消えた後も、別の日や人に違反が移っていないかを確認します。
元の配置案と条件表を参照してください。
検出事項:2026-10-05のS001が二重、10-06のS002は希望休。
変更可能範囲:10月5日〜7日の未確定枠のみ。
確定済みの別日は変更しない。勤務可と確認できない人は追加しない。
出力:修正前・修正後・変更理由・未解消の不足。
条件を満たせる候補が不明なら、必要な確認事項を返してください。修正が終わったかを、同じ順番で判定する
誤りを一つ見つけると、ついその場で表を書き換えたくなります。けれども、複数の誤りがあると、何を直して何が残ったのか分からなくなります。まず「日付・ID・誤りの種類・状態」をメモし、修正前の版を残します。担当を交代するときも、そのメモがあれば同じ確認を最初からやり直さずに済みます。
再確認の順番は、入力の版、希望との一致、同じ人の重複、人数の順に固定すると追いやすくなります。違反した配置を外せば、その日は人数不足になります。最初に人数だけ合格にしても、希望を直した後に結果は変わります。最後に人数へ戻るのは、そのためです。
「エラー0件」の表示だけで終了にせず、何を検査したかを一緒に残します。この練習なら希望休の一致と一人一日一行の確認、日別人数です。担当業務、休憩、契約条件など、まだ確認していないものも書いておきます。別の人が表を見たときに、どこまで終わっているか分かることが、確認作業の仕上げです。
確認済みの印を、次の担当者が信じられる形にする
「確認済み」と書くときは、誰が何を見たかを一言添えます。希望休は店長が元の希望と比較、人数は副店長が修正後の表で集計、といった書き方です。確認者を増やすこと自体が目的ではありません。同じ箇所だけを二人で見て、別の条件が手つかずになるのを避けるためです。
一人で担当している場合も、作成と確認を分けると見方が変わります。配置を決めた直後には、選んだ理由ばかりに目が向きがちです。表を日付順に見た後でスタッフ別に並べてみるなど、向きを変えて点検します。並べ替えるときは表全体を対象にし、名前と時間が離れないよう原本を残して作業してください。
この練習の結果を書き残すなら、「重複1件、希望休違反1件を除いた後、5日1人・6日2人・7日1人不足」となります。「エラーを削除して完了」ではなく、その後に残った不足も記録します。代替の入力が済んだら、同じ検査を再実行して結果を更新します。
最後に、実際の配布版が確認した版と同じかを見ます。確認後に別の担当者が一枠変更していれば、以前の合格結果はそのまま使えません。確定後の変更には再確認する範囲を決め、日付と版番号を更新します。チェック式そのものよりも、どの版に対する結果かが分かることが、運用では大切です。
時間帯別の不足は別に確認する
この練習は日別の一枠しか扱いません。営業時間が長い店では「今日3人出勤」でも、閉店前に1人だけになる場合があります。開始・終了、休憩、担当業務を分けて点検します。
ShiftEngineの人数確認用ツールやExcel運用の解説を使い、確認対象に合う方法を選びます。表の検査ができることと、AIが自動で最適な配置を作れることは別です。
参考資料・記事について
公式資料の機能説明・制度案内を参照し、店舗向けの手順と記入例は当サイトで作成しています。想定例・試算は実在する店舗の実績ではありません。
- Microsoft:COUNTIFS 関数確認日:2026年9月14日
- OpenAI:Prompt engineering確認日:2026年9月19日
よくある質問
式が0なら、希望をすべて守っていますか?
いいえ。指定した希望休一覧に一致しないだけです。勤務不可時間、未回答、契約条件などは別に確認します。日付の形式が違うと一致を見逃すので形式もそろえます。
同じ人が一日に二行あると必ず間違いですか?
一人一日一枠の練習では要確認です。分割勤務がある場合は、同日の行数ではなく時間の重なりと勤務条件を確認します。
無料Excel診断
現在のExcelを見ながら、改善できる工程を確認する。
希望回収、未提出確認、転記、Excel出力のどの工程を省力化できるかを無料で診断します。