月末になると、前月のシフト表をコピーして日付と曜日を打ち直し、土日の色を塗り直し、一人ずつ休みの数を数える。この作業は、Excelの関数だけでほとんど不要にできます。マクロ(VBA)は使わないので、Macでもそのまま動きます。
1. 日付と曜日を「年と月」から自動で出す
表の上に「年」と「月」を入れるセルを1つずつ作り、日付の列はそこから計算させます。1日目:=DATE(年,月,1)2日目以降:左のセル+1曜日:日付のセルを参照して =TEXT(日付,"aaa")(「月」「火」…と出ます)これで、翌月は「月」のセルを1つ変えるだけで全部の日付と曜日が入れ替わります。31日がない月は、月が変わったら空白にする式を入れておきます。
2. 土日と祝日を自動で色分けする
「条件付き書式」で、曜日が土曜なら青、日曜なら赤、と設定します。祝日は別シートに一覧を作っておき、COUNTIF でその一覧に含まれる日を赤くします。毎月手で塗る作業がなくなるうえ、塗り忘れで「祝日なのに人を入れすぎた」というミスも防げます。
3. 出勤日数・公休数を自動で数える
各人の行の右端に、記号ごとの数を出す列を作ります。公休の数:=COUNTIF(その人の行,"公")早番の数:=COUNTIF(その人の行,"早")さらに「公休が月9日未満なら赤」のように条件付き書式をかけておけば、数え間違いがなくなります。日ごとの列の下にも同じように数を出せば、「この日は早番が2人足りない」がひと目でわかります。
4. 連勤オーバーを色で警告する
いちばん見落としやすいのが連勤です。「6日連続で出勤になっているセル」を条件付き書式で赤くする設定を入れておくと、組んでいる途中で気づけます。「夜勤明けの翌日は休み」のようなルールも、隣のセルとの組み合わせで同じように警告を出せます。
自動で組ませるより、「人が組んで、表が止める」
「ボタンを押したら全部組まれる」形も作れますが、実際の現場では希望休・急な欠勤・相性など、ルールにしにくい事情が必ず出てきます。人が組んで、ルール違反だけを表が赤く知らせる形のほうが、長く使われることが多いです。私自身も、職場の24名分の当番ローテーション表をこの形で作って使っています。
シフト表の作成・作り替えをお受けしています
今お使いのシフト表(Excelでも、紙の写真でも)と守りたいルールを送っていただければ、見た目はそのままで上の4つの仕組みを足したファイルにします。ゼロからの設計もできます。▼ Excelのシフト表・勤務表を作ります(5,000円)
https://coconala.com/services/4414242">
https://coconala.com/services/4414242関数や集計まわりを個別に相談したい方はこちら。▼ Excelの関数・集計・VBAで手作業をなくします(3,000円〜)
https://coconala.com/services/4385171">
https://coconala.com/services/4385171