0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ShiftCrafter Part 7:休日数(土日+祝日数)を自動でそろえる月次2交代シフト(マトリクスCSV/ICS/検証レポート)

Posted at

part07_shiftcrafter.png

3行まとめ

  • **休日数(=土日+入力した祝日数)**を、職員ごとに自動でそろえる月次2交代シフト作成ツール
  • さらに 「土日を含む2連休」を月2回以上になるように寄せる(固定希望が最優先)
  • 出力は マトリクスCSV / ICS / 検証レポート。ブラウザ内完結で配布とチェックが速い

これは何?(Part 7の狙い)

月次の勤務表で地味につらいのが「公休数の帳尻合わせ」と「週末の連休」です。
ShiftCrafter Part 7 は、この2つを “数として” そろえたうえで、日勤/夜勤(+必要なら早出/遅出)を埋める ヒューリスティック自動割当です。

  • 休日数固定(公休数):土日の数+入力した祝日数
  • 土日を含む2連休:月2回以上を目標(固定希望がある日はそちらが優先)
  • CSVはマトリクス形式:人×日で一目で確認・共有

対象(できること)

  • 月次 / 2交代(日勤・夜勤)+必要なら 早出・遅出
  • 職員の クラス(A=リーダー/B=一般) を扱い、日勤/夜勤にAを最低人数入れる
  • 夜勤上限(週/月、さらに 時短Sの月上限 を別枠で設定)
  • 希望・制約(休、日、夜、×夜)を反映
  • 夜勤翌日は自動的に「明け」(イベント/休日数の扱いは後述)

使い方(最短3ステップ)

  1. デモを開く(PCブラウザ推奨)
  2. 左パネルに入力
    • 対象月、必要人数(平日/土日祝、夜勤、必要なら早出/遅出)
    • クラスAの最低人数、夜勤上限(週/月)
    • 祝日設定、職員リスト、希望・制約
  3. **[シフト自動作成] → [Matrix CSV][ICS][検証レポート]**で確認・配布

入力項目のポイント

1) 必要人数(平日 / 土日祝)

  • 日勤必要数(平日)
  • 日勤必要数(土日祝)
  • 夜勤必要数(全体)
  • 早出・遅出 必要数(任意)
    ※ 早出・遅出を使わないなら 0 のままでOK

2) クラスAの最低人数

  • 日勤A最低(平日)
  • 日勤A最低(土日祝)
  • 夜勤A最低

「その日のリーダー枠」を雑に固定せず、最低ラインだけ保証して残りは平準化します。

3) 夜勤上限(週 / 月)

  • 週の夜勤上限
  • 月の夜勤上限(通常)
  • 月の夜勤上限(時短S)
    ※ 「時短Sを夜勤に入れない」なら、ここを 0 にすると運用に近づきます(×夜指定が多い現場でも扱いやすい)

4) 祝日設定(重要)

ここは2パターンで使えます。

  • (A) 日数だけ入力:例 2

    • 休日数(公休数)だけに加算されます(“祝日を休日扱いする日付” は増えない
  • (B) 日付を列挙:例 11, 23

  • その日付は 土日祝扱いになり、日勤必要数も「土日祝」の設定が適用されます

  • (C) “日だけ” もOK:例 11(対象月の11日として解釈)

コツ:
「祝日は人員を減らす」なら 日付列挙(B)
「公休数だけ合わせたい」なら 日数(A)

5) 職員リスト(名前:クラス:S)

1行1名で、次のように書きます。

  • 田中:A(クラスA)
  • 鈴木:B(クラスB)
  • 佐藤:B:S(クラスB+時短S)

A=リーダー, B=一般, :S=時短 のイメージです。

6) 希望・制約(休/日/夜/×夜)

1行1件。以下のどちらの並びでもOKです。

  • 2026-02-03 田中 休
  • 田中:2026-02-03:休

種類の例:

  • (省略時も休扱い)
  • ×夜(NoNight:その日は夜勤に入れない)

ルールと優先順位(Part 7の肝)

ツール内の優先順位は次の通りです。

固定希望 > 土日連休確保 > 休日数調整 > 夜勤割当 > 平準化

  • 固定希望(休/日/夜/×夜)が最優先
  • 土日を含む2連休は「2日以上の連休ブロックの中に土曜か日曜が含まれる」ものを 月2回以上に寄せます
  • ※「明け(明)」は休日にカウントされない前提なので、連休にしたい場合は 休を明示するのが安全です
  • **休日数(公休数)**は、月末に向けて不足が出ないように自動調整(足りない人は勤務に寄りやすく、超過している人は休みに寄りやすい)
  • 連勤制限(目安):同じ職員の連勤が続きすぎないように抑制(ただし月末の帳尻で上書きされる場合があります)
  • 最後に 総割当・夜勤回数・直近の密度などを見て平準化

出力(マトリクスで “見える” のが正義)

1) 画面プレビュー(表)

  • 記号:空白=日勤等 / 夜=夜勤 / 明=明け / 休=休み / 早=早出 / 遅=遅出
  • [](角括弧):希望が満たされた勤務(×夜は対象外)
  • 日ごとの必要数に対して
  • 赤系:割当が多め(サープラス)
  • 青系:割当が不足(デフィシット)

2) Matrix CSV(shift_transposed.csv

人×日(+集計列)で落ちるので、Excel/スプレッドシート共有が楽です。

列イメージ:

  • Name, Class, 1(日), 2(月), ... , 出勤, 日勤, 夜勤, 休日

3) ICS(shift.ics

  • **終日イベント(All-day)**として出力
  • 休・明けはイベント化しない(=カレンダーを“勤務予定だけ”で埋める思想)

4) 検証レポート(画面内)

ダウンロードではなく、画面の pre にテキストで表示されます。

  • 休日数(公休数)チェック(不足/多め/OK)
  • 土日を含む2連休(月2回以上)チェック
  • 希望チェック(ミスマッチ一覧)

ありがちな運用メモ

  • 「明けを休みにカウントしたい」運用の場合は、このツールの 公休数の定義とズレます
    → まずは 検証レポートの公休数を基準に、ルール差分を明確にするのが安全です
  • 祝日を「土日祝の必要人数」で扱いたいなら、祝日を日付列挙してください(日数だけだと“公休数”にしか効きません)
  • ×夜(NoNight)が多い月は、夜勤必要数に対して人が足りないことがあります
    → 表(青)と検証レポートで早めに気づけます

よくある質問(FAQ)

Q. 「土日連休2回」って、祝日も含みますか?
A. “土曜か日曜を含む2連休ブロック” です(祝日単体は週末連休条件には入りません)。

Q. 希望が[]で囲まれる条件は?
A. 休/日/夜 が一致したときに [] 表示になります(×夜 は一致表示の対象外)。

Q. 出力ファイル名は?
A. shift_transposed.csvshift.ics です(日本語UI/English UIとも同名)。

免責・プライバシー

  • 本ツールは教育・業務補助目的の クライアントサイドWebアプリです
  • 入力データは ブラウザ内のみで処理され、外部送信しません
  • 実運用は所属施設の規程・労務基準・個人情報保護方針に従ってください
  • ライセンス:MIT(リポジトリ側の表記に合わせてください)

English Summary(150–250 words)

ShiftCrafter Part 7 is a browser-only monthly scheduling tool designed to reduce two recurring pains in rota creation: holiday quota balancing and weekend consecutive breaks. It targets a 2-shift operation (Day/Night) and can optionally allocate Early/Late shifts, while also enforcing minimum leader coverage via staff classes (A = leader, B = regular).

The key concept is a per-staff holiday quota, defined as (number of Saturdays + number of Sundays + entered public-holiday count). The generator automatically nudges assignments so each staff member’s Off days match the quota. In addition, it aims to secure at least two “weekend-including consecutive breaks” per month—i.e., blocks of 2+ consecutive days off that include a Saturday or Sunday—while respecting fixed requests first.

Outputs focus on operational clarity: a matrix-style CSV (shift_transposed.csv) for quick sharing and auditing, an ICS calendar file (shift.ics) exported as all-day events for work shifts only (Off/Post are omitted), and a built-in validation report that flags quota gaps, weekend-break counts, and request mismatches. All processing stays on the client; no data leaves your device.

リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?