BtoBマーケ支援
ChatGPTでシフト表は作れます。ただし作れる範囲は明確に決まっています。スタッフ10名前後・勤務区分3つ以内・1か月分までなら、この記事のプロンプトをコピペするだけで希望休を反映した表が出ます。それを超えると、必要人数を満たさない日が混ざります。労働基準法の制約は、そもそもプロンプトに書ききれません。その線引きまで含めて全部書きます。
おすすめの無料ドヤマーケAIサービス!
ドヤ勤怠
勤怠記録と集計を効率化し、日々の労務管理をわかりやすくします。
目次
結論:ChatGPTでシフト表が作れる条件と、作れない条件
プロンプトを書く前に決める5つの制約
【全文公開】希望休を反映する基本プロンプト
入力データの作り方(コピペ用テンプレート)
【全文公開】連勤上限と必要人数を制約に加えた実務プロンプト
【全文公開】出力を検算させるプロンプト
人数が増えると何が起きるか(破綻の実態と原因)
労働基準法の制約はプロンプトに書ききれない(e-Gov法令検索で条文確認)
ChatGPTで足りるケース/足りなくなる条件
シフト作成手段の比較表
どの手段を選ぶかの判断フロー
運用チェックリスト(コピペ可)
よくある質問
まとめ
1. 結論:ChatGPTでシフト表が作れる条件と、作れない条件
先に線を引きます。実際に手を動かすと、境界はかなりはっきりしています。
条件 | ChatGPT単体で回るか |
|---|---|
スタッフ10名前後、勤務区分(早番・遅番・休)3つ以内、1か月分 | 回ります。この記事のプロンプトで完結します |
希望休を反映させる | 回ります。ただし「希望休は絶対」と明示的に優先順位を書く必要があります |
各日の必要人数を満たす | 10名程度なら回ります。20名を超えると充足漏れが出ます |
連勤上限を守る | 「5連勤まで」程度の単純なルールなら回ります |
夜勤明けの扱い、勤務間インターバル | 指示は書けますが、月の後半で守られなくなりやすいです |
30名以上・複数拠点・スキル要件つき | 回りません。毎回どこかが崩れます |
労働基準法への適合を担保する | 担保できません。 後述のとおり制約を書ききれません |
シフト作成は「制約充足問題」と呼ばれる種類の計算です。変数(誰をどの日のどの区分に入れるか)が増えるほど、組み合わせが爆発的に増えます。ChatGPTは言語モデルであって、この種の全探索を保証する仕組みは持っていません。だから「小さければ正しく解ける、大きくなると部分的に間違える」という挙動になります。ここを理解して使えば、十分に実用になります。
2. プロンプトを書く前に決める5つの制約
いきなりChatGPTに「シフト表を作って」と投げても使える表は出ません。出力が安定しない原因のほとんどは、指示側で制約が決まっていないことにあります。次の5つを紙に書き出してから始めます。
制約1:勤務区分の定義
何時から何時までを何と呼ぶかを固定します。曖昧なまま渡すと、ChatGPTが勝手に「中番」を作ります。
早番:9:00-18:00(休憩60分)
遅番:13:00-22:00(休憩60分)
公休:終日休み
有休:終日休み(有給扱い)
制約2:各日の必要人数
曜日ごとに違う場合は曜日ごとに書きます。ここを「だいたい3人」と書くと出力もだいたいになります。
平日:早番2名・遅番2名
土日祝:早番3名・遅番3名
制約3:希望休
スタッフごとに日付をリスト化します。「希望休は絶対条件」なのか「可能な限り」なのかを、必ず明示します。書かないとChatGPTは勝手に譲ります。
制約4:連勤の上限
「5連勤まで」「6連勤は不可」のように数値で書きます。「なるべく連勤を避けて」は指示として機能しません。
制約5:個人ごとの上限・下限
月の出勤日数、週の所定労働日数、扶養内で働くスタッフの上限など。ここを渡さないと、特定の1人に出勤が偏ります。
3. 【全文公開】希望休を反映する基本プロンプト
まずは最小構成です。スタッフ8〜12名、1か月分を想定しています。このままコピーして、【】の中を自社の情報に置き換えれば動きます。
あなたはシフト作成の実務担当者です。以下の条件で【2026年9月】のシフト表を作成してください。
# 前提
- 対象期間:2026年9月1日(火)〜9月30日(水)
- 出力形式:Markdownの表。1行=1スタッフ、1列=1日。列見出しは「9/1(火)」の形式
- セルに入れる値は次の4つのみ:早番 / 遅番 / 公休 / 有休
# 勤務区分の定義
- 早番:9:00-18:00(休憩60分)
- 遅番:13:00-22:00(休憩60分)
- 公休:終日休み
- 有休:終日休み(本人申請済み)
# 各日の必要人数(絶対条件)
- 月〜金:早番2名、遅番2名
- 土日:早番3名、遅番3名
- 祝日(9/21、9/22、9/23):土日と同じ扱い
# スタッフ一覧と月の出勤日数
| 氏名 | 雇用形態 | 月の出勤日数 | 対応可能な区分 |
|---|---|---|---|
| A | 正社員 | 21日 | 早番・遅番 |
| B | 正社員 | 21日 | 早番・遅番 |
| C | 正社員 | 21日 | 早番・遅番 |
| D | パート | 16日 | 早番のみ |
| E | パート | 16日 | 遅番のみ |
| F | パート | 12日 | 早番・遅番 |
| G | パート | 12日 | 早番・遅番 |
| H | アルバイト | 10日 | 遅番のみ |
# 希望休(絶対条件。1日たりとも出勤に変えてはいけない)
- A:9/5、9/6
- B:9/12、9/13、9/14
- C:9/20
- D:9/3、9/17
- E:9/8、9/9
- F:9/22、9/23
- G:(なし)
- H:9/27、9/28
# 制約の優先順位(上ほど強い。下位を犠牲にしてでも上位を守ること)
1. 希望休を必ず公休にする
2. 各日の必要人数を満たす
3. 連続勤務は5日までとする(6連勤以上を作らない)
4. 各スタッフの月の出勤日数を、指定した日数±1日の範囲に収める
5. 特定の個人に土日出勤が偏らないようにする
# 出力に必ず含めるもの
1. シフト表(Markdownの表)
2. スタッフ別の集計表(早番回数/遅番回数/公休日数/出勤日数合計/最長連勤日数)
3. 日別の充足チェック表(各日の早番人数・遅番人数と、必要人数を満たしているかの○×)
4. 上記の優先順位1〜5のうち、守れなかった項目があれば「未達リスト」として日付と理由を明記
# 禁止事項
- 希望休の日を出勤に変えない
- 表の中に「早番 / 遅番 / 公休 / 有休」以外の文字列を書かない
- 人数が足りない日を、足りているかのように書かない。足りない場合は必ず未達リストに書く
このプロンプトの肝は最後の3ブロックです。「集計表」「充足チェック表」「未達リスト」を必ず出させることで、間違いが表面化します。これを書かないと、見た目はきれいで中身が間違っている表が出てきます。人間側のチェック工数が跳ね上がります。
もう1点あります。「禁止事項」で「足りているかのように書かない」と明示しています。言語モデルは指示を満たそうとして、満たせない場合でも満たしたかのように出力を整えることがあります。それを封じるために、未達を報告することを明示的に許可・要求します。
4. 入力データの作り方(コピペ用テンプレート)
上のプロンプトで一番手間がかかるのは、スタッフ一覧と希望休の整形です。ここを毎月ラクにするテンプレートを置きます。
希望休の集め方(そのまま配れる依頼文)
【9月シフト希望休の提出について】
提出期限:8月20日(水)まで
提出先:このメッセージに返信
以下の形式でそのまま返信してください。
------
氏名:
希望休(日付のみカンマ区切り):例)5, 6, 12
希望休以外に出勤できない日があれば:
今月出勤できる最大日数:
------
※希望休は原則3日まで。4日以上の場合は理由を添えてください。
日付を「9/5」ではなく「5」で集めるのがコツになります。月をまたいだ書き間違いが減ります。
集まった希望休をプロンプトに変換する
回収したテキストをそのままChatGPTに貼り、次の変換プロンプトを使います。
以下はスタッフから回収したシフト希望のテキストです。
これを、次の形式に整形してください。余計な説明は書かず、整形結果だけを出力してください。
# 出力形式
- A:9/5、9/6
- B:9/12、9/13、9/14
# ルール
- 日付は「9/日」の形式に統一する
- 日付が読み取れない場合は、その行を「【要確認】氏名:原文」として別枠にまとめる
- 勝手に日付を補完しない
# 元テキスト
(ここに回収したテキストを貼る)
「勝手に補完しない」「読み取れないものは要確認に回す」を書いてください。これがないと、判読できない希望休を推測で埋めてきます。シフトの希望休は推測されると事故になります。
5. 【全文公開】連勤上限と必要人数を制約に加えた実務プロンプト
基本プロンプトで出力が安定したら、実務で必要になる制約を足します。ここでは飲食・小売・介護など、勤務間インターバルや夜勤が絡む現場を想定した拡張版を出します。
あなたはシフト作成の実務担当者です。以下の条件で【2026年9月】のシフト表を作成してください。
制約は「絶対条件」と「努力条件」に分けています。絶対条件は1つも破らないでください。
絶対条件を全て満たすシフトが存在しない場合は、シフト表を作らずに「作成不能」と回答し、
どの制約とどの制約が衝突しているかを具体的に説明してください。
# 対象期間
2026年9月1日(火)〜9月30日(水)
# 勤務区分
- 日勤:9:00-18:00(休憩60分/実働8時間)
- 遅番:13:00-22:00(休憩60分/実働8時間)
- 夜勤:17:00-翌9:00(休憩120分/実働14時間)
- 明け:夜勤の翌日。終日勤務なし(勤務としてカウントしない)
- 公休:終日休み
# 絶対条件
A1. 希望休の日は必ず公休にする
A2. 夜勤の翌日は必ず「明け」にする。明けの翌日を夜勤にしない
A3. 連続勤務は5日まで(公休・明けを挟まずに6日以上勤務させない)
A4. 各日の必要人数を満たす
- 月〜金:日勤3名、遅番2名、夜勤1名
- 土日祝:日勤4名、遅番2名、夜勤1名
A5. 「夜勤不可」と指定されたスタッフを夜勤に入れない
A6. 勤務終了から次の勤務開始まで11時間以上空ける
(例:遅番22:00終了の翌日に日勤9:00開始は11時間空くので可。
遅番の翌日に早出7:00開始があれば不可)
# 努力条件(絶対条件を守った上で、できる範囲で満たす)
B1. 各スタッフの月の出勤日数を指定日数±1日に収める
B2. 土日の出勤回数をスタッフ間で均等に配分する
B3. 夜勤回数をスタッフ間で均等に配分する
B4. 同じスタッフに3連続で同じ区分を割り当てない
# スタッフ一覧
| 氏名 | 月の出勤日数 | 夜勤 | 対応可能な区分 |
|---|---|---|---|
| A | 20日 | 可 | 日勤・遅番・夜勤 |
| B | 20日 | 可 | 日勤・遅番・夜勤 |
| C | 20日 | 不可 | 日勤・遅番 |
| D | 20日 | 可 | 日勤・遅番・夜勤 |
| E | 18日 | 不可 | 日勤のみ |
| F | 18日 | 可 | 日勤・遅番・夜勤 |
| G | 16日 | 不可 | 遅番のみ |
| H | 16日 | 可 | 日勤・遅番・夜勤 |
| I | 14日 | 不可 | 日勤・遅番 |
| J | 12日 | 不可 | 日勤のみ |
# 希望休(絶対条件)
- A:9/5、9/6
- B:9/12、9/13
- C:9/20、9/21
- D:9/3
- E:9/8、9/9、9/10
- F:9/22、9/23
- G:(なし)
- H:9/27、9/28
- I:9/15
- J:9/1、9/2
# 出力
1. シフト表(Markdown。1行=1スタッフ、1列=1日)
2. 日別充足チェック表(日勤・遅番・夜勤の人数/必要人数/充足○×)
3. スタッフ別集計(日勤/遅番/夜勤/明け/公休/出勤日数/最長連勤)
4. 絶対条件A1〜A6の検証結果(各条件ごとに「違反なし」または違反の具体箇所)
5. 努力条件B1〜B4について、達成できなかった項目と理由
# 禁止事項
- 絶対条件を破った表を、破っていないかのように出力しない
- 検証結果を省略しない
- 実在しない日付を作らない
「作成不能なら作成不能と答えろ」という指示を先頭に置いたのが最大のポイントです。これを書かないと、条件が矛盾している場合でも無理やり表を作ってきます。現場でこれをそのまま使うと、翌月の途中で人が足りないことに気づきます。
6. 【全文公開】出力を検算させるプロンプト
シフト表が出てきたら、必ず別ターンで検算させます。同じチャットの続きで投げます。
今出力したシフト表を、あなた自身が作成者ではないと仮定して監査してください。
表を作り直す必要はありません。監査結果だけを出力してください。
# 監査項目
1. 希望休の日に出勤が入っていないか(スタッフごとに希望休の日付とセルの値を1つずつ照合)
2. 各日の必要人数を満たしているか(30日分すべて数え上げる)
3. 6連勤以上になっているスタッフがいないか
4. 夜勤の翌日が「明け」になっているか
5. 各スタッフの出勤日数が指定日数±1日に収まっているか
# 出力形式
- 項目ごとに「合格」または「不合格」を書く
- 不合格の場合、該当するスタッフ名と日付をすべて列挙する
- 「おそらく問題ない」という書き方をしない。数えた結果だけを書く
この検算を挟むと、初回出力で3〜5件の違反が見つかることが珍しくありません。言語モデルは表を「それらしく」作るのは得意ですが、30日×10名=300セルの整合性を1回の生成で完全に取るのは苦手です。生成と検証を分けると精度が上がります。
検算で違反が出たら、次のプロンプトで修正させます。
指摘された違反箇所だけを修正してください。
違反がなかった部分のセルは1つも変更しないでください。
修正後に、同じ監査項目でもう一度検証結果を出力してください。
「違反がなかった部分は変更するな」を書かないと、修正のたびに表全体が作り直されて、直ったところが壊れます。
7. 人数が増えると何が起きるか(破綻の実態と原因)
ここが正直に書かれていない記事が多いです。実際に起きることを書きます。
スタッフ8〜12名
ほぼ問題なく回ります。検算で1〜2件の指摘が出る程度です。修正プロンプトで収束します。
スタッフ15〜20名
日別の必要人数が満たせない日が出始めます。特に月末に近い列(25日以降)で崩れやすいです。表を左から順に埋めていくため、後半になるほど選択肢が狭まり、辻褄が合わなくなります。検算を2〜3回繰り返すと収束することもありますが、直す過程で別の日が壊れることがあります。
スタッフ25名以上/複数拠点/スキル要件つき
収束しなくなります。Aを直すとBが壊れ、Bを直すとAが戻ります。この状態に入ったら、プロンプトを工夫しても抜けられません。制約充足問題としての規模が、言語モデルが1回の生成で扱える範囲を超えています。
破綻を遅らせる3つの工夫
完全な解決にはなりませんが、実用上の限界は押し上げられます。
月を分割します。 1〜15日と16〜30日で2回に分けます。後半のプロンプトに「前半15日の最終3日分のシフト」を渡し、連勤の連続性を保たせます
先に固定枠を決めます。 夜勤・土日など制約が厳しい枠を人間が先に埋め、残りだけをChatGPTに割り当てさせます
区分を減らします。 中番・早出などを一時的に統合し、区分3つで作ってから人間が細分化します
8. 労働基準法の制約はプロンプトに書ききれない(e-Gov法令検索で条文確認)
ここがChatGPT活用の最大の限界になります。プロンプトに「労働基準法を守って」と書いても、法令適合は担保されません。理由を条文ベースで示します。以下はすべてe-Gov法令検索で原文を確認しました(確認日:2026年8月5日)。
労働時間の原則(労働基準法第32条)
使用者は、労働者に、休憩時間を除き一週間について四十時間を超えて、労働させてはならない。(第1項) 使用者は、一週間の各日については、労働者に、休憩時間を除き一日について八時間を超えて、労働させてはならない。(第2項)
シフト表は「誰がいつ出勤するか」しか表現しません。実働時間の集計は表の外にあります。上のプロンプトでは実働8時間と定義していますが、休憩の実際の取得状況までは表に載りません。
休憩(労働基準法第34条)
使用者は、労働時間が六時間を超える場合においては少くとも四十五分、八時間を超える場合においては少くとも一時間の休憩時間を労働時間の途中に与えなければならない。(第1項)
条文は「労働時間の途中に」与えることを求めています。シフト表に「休憩60分」と書いてあっても、実際に途中で取れたかどうかは別の記録の問題になります。ChatGPTが作った表は、この点について何も証明しません。
休日(労働基準法第35条)
使用者は、労働者に対して、毎週少くとも一回の休日を与えなければならない。(第1項) 前項の規定は、四週間を通じ四日以上の休日を与える使用者については適用しない。(第2項)
ここが実務で最もこじれます。「5連勤まで」という制約は、第35条とイコールではありません。第1項の「毎週少くとも一回」の「週」がいつからいつまでを指すかは、就業規則の定めによります。日曜起算なのか、賃金計算期間に合わせるのかで、同じシフト表でも適法・違法の判定が変わり得ます。プロンプトに「週1日の休日」と書いても、ChatGPTはこの起算日を知りません。
さらに第2項の変形休日制(4週4休)を採る場合、単位となる4週間の起算日を就業規則で特定する必要があります。これも表の外にある情報です。
時間外・休日労働の上限(労働基準法第36条)
第36条第1項は、過半数組合または過半数代表者との書面による協定(36協定)を締結し行政官庁に届け出た場合に、時間外・休日労働をさせられると定めています。上限は同条第3項・第4項で次のように規定されています。
前項の限度時間は、一箇月について四十五時間及び一年について三百六十時間(第三十二条の四第一項第二号の対象期間として三箇月を超える期間を定めて同条の規定により労働させる場合にあつては、一箇月について四十二時間及び一年について三百二十時間)とする。(第4項)
第5項は、臨時的に限度時間を超える必要がある場合について、1か月100時間未満・1年720時間以内の範囲で特別条項を定められるとし、45時間を超えられる月数を年6か月以内と定めています。第6項では、次の2点が「超えてはならない」条件として置かれています。
一箇月について労働時間を延長して労働させ、及び休日において労働させた時間 百時間未満であること。(第6項第2号) 対象期間の初日から一箇月ごとに区分した各期間に当該各期間の直前の一箇月、二箇月、三箇月、四箇月及び五箇月の期間を加えたそれぞれの期間における労働時間を延長して労働させ、及び休日において労働させた時間の一箇月当たりの平均時間 八十時間を超えないこと。(第6項第3号)
第6項第3号は、直前2か月・3か月・4か月・5か月・6か月それぞれの平均が80時間以内であることを求めています。つまり、今月のシフト表が適法かどうかを判定するには、過去5か月分の実績が必要になります。ChatGPTに1か月分のシフト表だけを渡して「上限規制に適合しているか」を聞いても、答えようがありません。これが、プロンプトに書ききれない最大の理由です。
変形労働時間制を採る場合
1か月単位の変形労働時間制(第32条の2)や1年単位の変形労働時間制(第32条の4)を採用している事業場では、労使協定または就業規則で定めた各日・各週の労働時間が基準になります。第32条の4第1項第4号は、対象期間における労働日および労働日ごとの労働時間を協定で定めることを求めています。この協定の内容そのものがシフト作成の制約条件になりますが、協定書はPDFやWordで存在し、プロンプトに全文を貼るのは現実的ではありません。
結論:ChatGPTに法令適合の判定をさせない
以上を踏まえた実務上の運用は1つに絞られます。
ChatGPTには「割り当ての組み合わせを考える」作業だけをさせます
法定休日の付与、休憩の実取得、時間外労働の上限(特に複数月平均)は、シフト表とは別の記録・集計で管理します
36協定の内容、変形労働時間制の採否、法定休日の起算日は、就業規則と協定書を確認します
個別の判断は、所轄の労働基準監督署または社会保険労務士に確認してください。本記事は条文の所在を示すものであり、個別事案の適法性を判定するものではありません。
9. ChatGPTで足りるケース/足りなくなる条件
ChatGPTを貶す必要はありません。実際、下の条件に当てはまる事業場は、有料の専用ツールを入れなくて大丈夫です。
ChatGPTで足りるケース
スタッフ10名前後で、勤務区分が3つ以内
シフトの型が毎月ほぼ同じで、変わるのは希望休だけ
作成者が1人で、他の人が同じ手順を再現する必要がありません
作った表はスプレッドシートやLINEで共有すれば足ります
勤怠の打刻・集計は別の仕組みで既に回っています
この条件なら、月に30分の作業がChatGPTで10分になります。それで十分です。
足りなくなる条件(5つ)
毎月、条件を貼り直す手間が積み上がります。 スタッフの入退社・出勤可能日の変更のたびに、プロンプト内の表を手で直します。この編集作業が、シフト作成そのものより重くなります
出力がブレます。 同じプロンプトを2回投げると違う表が出ます。「先月と同じ考え方で作った」ことを説明できません
チームで共有・再現できません。 作成者が休むと、誰もプロンプトの場所と使い方を知りません。属人化がそのまま残ります
履歴が残りません。 「9月14日のシフトを誰がいつ変更したか」がチャット履歴の中に埋もれます。労務トラブルのときに提示できる形になっていません
業務固有の制約を書ききれません。 前章のとおり、36協定の内容・法定休日の起算日・過去5か月の時間外実績は、プロンプトに載せられません
3・4・5は、プロンプトをどれだけ工夫しても解決しません。これらは「道具の種類が違う」という話になります。
10. シフト作成手段の比較表
シフト作成を扱うツールを、同じ基準で並べます。金額は各社公式ページの表記で、本記事の執筆時点(2026年8月5日)に確認できたものだけを記載します。確認できなかったものは「確認できず」と書きます。推測の数字は入れていません。
手段・ツール | 注力 | シフトの自動作成 | 希望休の収集 | 勤怠打刻との連携 | 料金(公式表記) | 欠点 |
|---|---|---|---|---|---|---|
ドヤ勤怠 | ★注力(自社サービス) | なし。シフト自動作成機能は持ちません | シフト表の登録・共有は可能 | 打刻・集計まで1本 | 統一プラン月9,980円(税込)で全14サービス使い放題。人数無制限。無料版あり | シフトの自動生成はできません。大規模シフトの最適化を求める用途には向きません。提供開始からの実績が浅いです |
ChatGPT(この記事のプロンプト) | - | 生成はできますが正しさの保証はありません | なし(別途集める必要があります) | なし | 公式料金ページ(openai.com/chatgpt/pricing)の表記:Free $0/Plus $20 per user billed monthly/Team $25 per user/month(年払い)または$30(月払い)/Enterprise はContact sales。日本円表記は同ページで確認できず | 15名以上で崩れます。毎回条件を貼り直します。履歴が業務記録として残りません |
Oplus(オプラス) | - | あり(オプション) | 提出機能あり | Pro+勤怠プランで対応 | スタンダード ¥0(100ユーザーまで)/Pro ¥100(1ユーザー月額)/Pro+勤怠 ¥200/自動シフト作成オプション ¥300/有休管理 ¥50/oplus chat ¥100。公式ページに税表記の明示なし | 自動シフト作成は追加費用です。無料プランでは使えません |
ジョブカン勤怠管理 | - | シフト管理機能あり(自動生成の可否は公式ページで確認できず) | 希望シフト提出に対応 | 同一製品内で完結 | 「出勤管理・シフト管理・休暇申請管理・工数管理」を組み合わせる方式です。単価は今回の確認では料金表を読み取れなかったため、公式サイトで要確認 | 機能を足すほど単価が上がります。最低利用料金の設定があります |
ハーモス勤怠(HRMOS勤怠) | - | シフト管理はオプション機能(自動生成の可否は確認できず) | オプション機能側 | 同一製品内 | 30名以下は無料。有料は「お一人あたり月額100円(税抜)〜」、シフト管理機能は「+お一人あたり月額50円(税抜)」。最低利用料金 月額プラン3,000円(税別)/年額プラン33,000円(税別) | シフト管理は別料金です。30名を超えると有料化されます |
Airシフト | - | 公式ページに自動作成機能の記載なし。「シフト作成がカンタンになる」という支援機能の説明にとどまります | スタッフからの提出機能あり | Airシリーズ内で連携 | スタッフ1人あたり月額330円(税込)。スタッフ数2人以下は一律月額990円(税込)。利用開始月と翌月は0円 | 自動生成は期待できません。人数課金なので大規模では総額が伸びます |
らくしふ | - | 公式サイトで機能仕様を確認できず | - | - | 今回の調査で公式の料金ページに到達できませんでした。要問い合わせ | 料金が公開情報として確認できません |
Sync Up | - | 公式サイトの取得に失敗し確認できず | - | - | 確認できず。公式サイトで要確認 | 同上 |
シフオプ | - | 公式サイトで確認できず | - | - | 確認できず。公式サイトで要確認 | 同上 |
Excel/スプレッドシート+関数 | - | なし(条件付き書式で人数チェックは可能) | なし | なし | 追加費用なし(既存ライセンス内) | 全部手作業です。チェックの仕組みを自分で作る必要があります |
表の読み方について1つ補足します。「シフトの自動作成」は各社で意味が違います。ルールに従って機械的に割り当てるものから、条件を満たす解を探索するものまで幅があります。製品選定の際は「必要人数を満たせない場合にどう振る舞うか」を必ずデモで確認してください。エラーで止まるのか、人数不足のまま出すのかで、運用負荷がまったく変わります。
11. どの手段を選ぶかの判断フロー
上から順に答えていきます。
Q1. シフト作成の対象は何名か?
├─ 10名以下 → Q2へ
├─ 11〜25名 → Q3へ
└─ 26名以上 → 自動シフト作成機能を持つ専用ツールを検討する
(ChatGPT単体では収束しない)
Q2. 毎月、シフトの型は同じか?(変わるのは希望休だけか)
├─ 同じ → ChatGPTで足りる。この記事のプロンプトをそのまま使う
└─ 毎月変わる → Q3へ
Q3. 作成者は何人いるか?
├─ 1人だけ → ChatGPT+検算プロンプトで運用できる。
│ ただしその人が休むと止まることを許容する
└─ 複数人/引き継ぎがある → Q4へ
Q4. 勤怠の打刻・集計は既に別のシステムで回っているか?
├─ 回っている → シフト作成に特化したツールを追加する
└─ 回っていない/Excel → 勤怠管理システム側で
シフト機能を持つものにまとめる
Q5. 自動シフト作成にいくらまで出せるか?
├─ 1人あたり月300円まで出せる → 自動作成オプションを持つツール
└─ 追加費用を出さない → ChatGPT+人の手直しで運用する
12. 運用チェックリスト(コピペ可)
ChatGPTで作ったシフト表を公開する前に、必ず人間が確認する項目です。このリストをそのままスプレッドシートに貼って、毎月チェックします。
【入力チェック】
□ 今月入社・退職したスタッフを一覧に反映したか
□ 出勤可能日数の変更(扶養調整・学業都合など)を反映したか
□ 希望休の提出漏れがないか(未提出者に確認したか)
□ 有給休暇の申請分をシフト表に反映したか
□ 祝日・臨時休業日・イベント日を必要人数に反映したか
【出力チェック】
□ 希望休がすべて公休になっているか(1人ずつ日付を照合)
□ 各日の必要人数を満たしているか(全日を数える)
□ 6連勤以上のスタッフがいないか
□ 夜勤の翌日が明けになっているか(夜勤がある場合)
□ 出勤日数が個人ごとの上限を超えていないか
□ 土日祝の出勤が特定の1人に偏っていないか
【法令まわりのチェック(人が判断する)】
□ 就業規則で定めた法定休日の起算日に照らして、
毎週1回(または4週4日)の休日が確保されているか
□ 見込みの時間外労働が36協定の月の上限内に収まるか
□ 直近5か月の時間外+休日労働の実績と合算して、
複数月平均80時間以内に収まる見込みか
□ 休憩時間が労働時間の途中に取得できる勤務パターンになっているか
□ 判断に迷う点は、所轄の労働基準監督署または社会保険労務士に確認したか
【公開前チェック】
□ 確定版であることを明記して共有したか
□ 変更が入った場合の連絡方法を決めているか
□ シフト表を業務記録として保存する場所を決めているか
「法令まわりのチェック」は、ChatGPTに任せません。前章のとおり、判定に必要な情報がプロンプトの外にあるためです。
13. よくある質問
Q1. ChatGPTの無料版でもシフト表は作れますか
作れます。この記事の基本プロンプトは無料版でも動きます。OpenAIの公式料金ページ(openai.com/chatgpt/pricing)では、Freeプランが$0と記載されています(2026年8月5日確認)。ただし無料プランには利用回数の上限があり、具体的な上限値は同ページでは確認できませんでした。長いシフト表を何度も作り直すと上限に当たる可能性があるため、最新の条件はOpenAI公式で確認してください。
実務上の注意点は2つあります。1つは、無料版だと長い表の生成が途中で切れやすいことです。「15日分ずつ2回に分けて出力してください」と指示すると回避しやすいです。もう1つは、検算プロンプトを回す分だけやり取りが増えるので、上限に当たりやすくなることです。
Q2. スタッフの氏名や希望休をChatGPTに入れていいですか
原則として、氏名は入れずに記号(A・B・C)で処理することを勧めます。シフト作成に必要なのは制約条件だけで、実名は不要です。出力後に手元で氏名に置き換えれば大丈夫です。
そのうえで、ChatGPTのデータの扱いについて、OpenAIのヘルプセンター「Data Controls FAQ」には次の記載があります(2026年8月5日確認)。設定は「プロフィールアイコン → Settings → Data Controls」から「Improve the model for everyone」をオフにできます。オフにすると「conversations will still appear in your chat history but won't be used to train ChatGPT」と説明されています。また同ページには「Yes, our Team, Enterprise, and Edu plans offer additional data controls.」との記載があり、法人向けプランではデータ管理の選択肢が追加されるとされています。公式料金ページのTeam・Enterpriseの説明欄には「No training on your data」の表記があります。
会社として使うなら、次の3点を先に決めてください。
個人名・住所・電話番号・マイナンバーは入力しない、という社内ルールを文書にします
使うプランと、モデル学習に関する設定を統一します
誰が入力してよいかを決めます(シフト作成担当者に限定するなど)
最終的な可否判断は、自社の情報管理規程と、OpenAIの最新の利用規約・プライバシーポリシーを確認して行ってください。
Q3. 出力されたシフト表をExcelに貼れますか
貼れます。Markdownの表をそのままコピーすると崩れるので、プロンプトの出力形式に次の1行を足します。
シフト表は、Markdownの表に加えて、タブ区切り(TSV)の形式でも出力してください。
TSVで出力させれば、Excelやスプレッドシートにそのまま貼り付けて表として展開されます。CSVを指定するより、カンマとの衝突がない分TSVのほうが安定します。
Q4. 毎月同じプロンプトを使えば、同じ品質になりますか
なりません。同じプロンプトを同じ日に2回投げても、割り当ては変わります。言語モデルの生成には確率的な要素があるためです。品質を一定に保つには、生成そのものではなく検算の工程を固定します。前述の監査プロンプトを毎回必ず通し、チェックリストで人が最終確認します。「出力を信じる」のではなく「検証手順を固定する」ほうに寄せます。
Q5. ChatGPTが作ったシフト表で労基法違反になったら、責任はどこにありますか
使用者にあります。労働基準法の義務は使用者に課されており、シフト表をどの道具で作ったかは免責の理由になりません。第8章で示したとおり、法定休日の起算日、36協定の内容、過去5か月の時間外実績といった判定材料はプロンプトの外にあります。ChatGPTの出力は「たたき台」であり、適法性の判断は人が行います。不明点は所轄の労働基準監督署または社会保険労務士に確認してください。
Q6. シフト表は保存しなければいけませんか
労働基準法第109条は、使用者に対し「労働者名簿、賃金台帳及び雇入れ、解雇、災害補償、賃金その他労働関係に関する重要な書類」を5年間保存することを義務づけています(e-Gov法令検索で確認、2026年8月5日)。ただし第143条第1項により、当分の間は「三年間」と読み替えられます。
厚生労働省労働基準局の「改正労働基準法等に関するQ&A」(令和2年4月1日)では、第109条の対象となる記録の例として「出勤簿、タイムカード等の記録」「始業・終業時刻など労働時間の記録に関する書類」が挙げられています。シフト表そのものが第109条の対象に当たるかは、その事業場での位置づけによります。確定したシフトを勤務実績の記録として扱っているなら、保存の対象として扱うのが安全です。判断に迷う場合は所轄の労働基準監督署に確認してください。
14. まとめ:ChatGPTは「割り当てを考える道具」として使う
この記事の要点を3つに絞ります。
1つ目です。スタッフ10名前後・勤務区分3つ以内なら、この記事のプロンプトでシフト表は作れます。希望休を「絶対条件」として明示し、集計表・充足チェック表・未達リストを必ず出力させます。生成と検算を別のターンに分けます。この3点を守れば実用になります。
2つ目です。15名を超えると崩れ始め、25名以上では収束しなくなります。これはプロンプトの工夫では解決しません。月を分割する、固定枠を先に人が埋める、区分を減らすといった対処で限界は押し上げられますが、根本的には道具を変える判断になります。
3つ目です。労働基準法への適合は、ChatGPTに判定させません。第35条の法定休日の起算日、第36条の上限規制(特に第6項第3号の複数月平均80時間)、変形労働時間制の協定内容は、いずれもプロンプトの外にある情報を必要とします。シフト表は割り当ての設計図であって、法令適合の証明書ではありません。
そのうえで、シフト作成の次に必ず来るのが「実際に何時から何時まで働いたか」の記録です。シフト表がどれだけ精密でも、打刻と集計が手作業なら、月末に同じ量の作業が待っています。シフトの自動生成は要らない、打刻から締めまでを人数無制限の定額で回したい、という条件なら、ドヤ勤怠が候補になります。統一プラン月9,980円(税込)で全14サービスが使い放題になり、無料版から試せます。ただしシフトの自動作成機能は持たないので、シフト最適化そのものを求めるなら本記事の比較表にある専用ツールを検討してください。
ドヤ勤怠:https://doya-ai.surisuta.jp/kintai/dashboard
参照した一次情報
労働基準法(昭和二十二年法律第四十九号)第32条・第32条の2・第32条の4・第34条・第35条・第36条・第109条・第143条:e-Gov法令検索 https://laws.e-gov.go.jp/law/322AC0000000049 (2026年8月5日確認)
厚生労働省労働基準局「改正労働基準法等に関するQ&A」令和2年4月1日 https://www.mhlw.go.jp/content/000617980.pdf (2026年8月5日確認)
OpenAI「ChatGPT Pricing」 https://openai.com/chatgpt/pricing/ (2026年8月5日確認)
OpenAI Help Center「Data Controls FAQ」 https://help.openai.com/en/articles/7730893-data-controls-faq (2026年8月5日確認)
Oplus 料金プラン https://opluswork.com/plan (2026年8月5日確認)
Airシフト https://airregi.jp/shift/ (2026年8月5日確認)
ハーモス勤怠 料金 https://hrmos.co/kintai/price/ (2026年8月5日確認)



