ページ移動:JavaScriptを有効にして下さい!
3.連続勤務不可条件

連続してはいけない勤務の組み合わせを指定

「遅出の翌日は早出禁止」のような連続勤務禁止パターンを指定します。

パターンの指定方法

勤務は0,1,2,3 : 休み、日勤、早出、遅出 のように数字で表していますので、
連続する勤務も、遅出早出 となる場合は、32のように連続する数字で表現します。

1週間の勤務の連続状態をセルのままでは扱いが難しいので、連結数字とします。
下図セルJ4:J8の数字列
  (連結は「&」でセルを繋いでいます。
   もう少し期間を長くする場合は、連結用のユーザー定義関数を作成します。)
連続勤務不可パターンの指定表が、下図のR13:R17の黄色のセル。
(ここでは2つの連続としていますが、もっと多くの連続を指定しても可)

ソルバー用の設定条件:

連続不可条件で指定した数字列が、1週間の勤務数字列に含まれないようにします。
含まれるかどうかはCOUNTIF関数で判定(前後にワイルドカード「*」を付けて「含まれる」として算定)
-詳しい説明の例は「ワイルドカードを使った複数回答集計」を参照
-SEARCH関数を使っても可能

5パターン個別に指定するのも面倒なので、総和をとっています。
この総和(S18)=0をソルバーの制約条件とします。


補足:

数式 =(R13<>"")*COUNTIF($J$4:$J$8,"*"&R13&"*")  は、
=IF((R13="",0,COUNTIF($J$4:$J$8,"*"&R13&"*") と同じ

ソルバー設定フォーム

実行結果

割当勤務をすべて0の状態から開始してみると、下図のように見事に条件を満たして解が求まりました。


解が求まるまでに1~2分(PCの性能により大きく頃なる)
その間ステータスバー(画面左下)の目的セルの値が0に近づいていくのを見ていると、
・・・・ ドキドキ(0に収束するかしら?)します。



値がになったらソルバー成功です。


  

  




次の課題は、個人単位に、「xx日の遅番は不可」のように不可勤務を指定出来るようにします。

ページ移動:JavaScriptを有効にして下さい!

関連

×
PageTop