チェック可能な全ての警告を解析します。
正常に確保成功時は下図
確保に一部失敗した場合は、▲印が先頭に付加
外套の行をクリックすると、詳細が下右図のように表示されます。
"★警告" が表示されている項目は、以下の個別メニューからも詳細を参照できます。
期間内における
勤務ごとの回数が、勤務種別表で指定する
回数下限を満たしているかをチェックする。
例:下図のシフト表を解析
勤務種別表で、
日勤、
遅出の
回数下限を、それぞれ
7,4回として解析
下図のように出力される。
それぞれ、
勤務回数 不足数 名簿順序 ID 氏名 を表す。
回数下限に違反する勤務が
無い場合は、「
勤務回数下限未満はありません!」を表示
連続する勤務が
制限回数を超えているかを解析
例:下記のシフト表を解析
制限回数
6回の場合
エラーは表示されない。
制限回数
5回の場合
制限を超えている 回数:期間〜ID:氏名 がリストで表示される
連続する休みが
制限回数を超えているかを解析
例:下記のシフト表を解析
制限回数
3回の場合
エラーは表示されない。
制限回数
2回の場合
制限を超えている 日数:期間〜ID:氏名 がリストで表示される
要員設定の「
連続勤務必須パターン」の条件が守られているかを検査。
下図の例では、「夜」→「明」が連続勤務必須パターンであるが、2か所(青枠)で規則が守られていない部分がある。
検査を実行すると、下記のように分析される。
本例での違反原因は、上図青枠で「夜→明」とした場合、「
連続勤務日数オーバー」になるため。
(ここでは連続勤務日数上限は「
4」日となっている)
メンバーの
組合せ必須条件を検査。
下記は不足が発生した場合の表示例
それぞれ、以下の意味を表す。
日付 条件番号 勤務番号 勤務名 必要人数 非厳守スイッチ状態
調査したシフト表
メンバー組み合わせ必須条件
フレックス要員(複数の勤務での
人数合計で要員確保)が満たされているかをチェック。
下図は、「フレックス要員」の条件で
条件B : 勤務番号 2,3(早出1、早出2)の人数が、4人
になるように要員確保。
「
4 −1」となっているのは、4人必要なのに、1名
不足していることを表す。
連休の個数を一覧で表示。
連休とは連続する休み(1個のみも休み含)と定義し、勤務を
〇、休みを
−とするとき
〇−−〇〇−−−〇−〇〇−−〇
の場合、休み数は8個、連休個数は4個(単休:1個、2連休:2個、3連休:1個)となります。
下図は、取得例
解析の元になるシフト表
1週間単位での勤務日数を一覧で表示。
指定するパラメータは半角カンマ区切りで、
勤務種別No ,
基点曜日 ,
NG長
勤務種別No:0以上の値(または省略)、0(省略)の場合は全勤務対象
基点曜日:0 日曜 1〜7 日曜〜土曜)
NG長:(省略可)チェックする日数(この値以上の日数に「'」記号が付加される)
起動すると、勤務種別番号と、基点曜日が尋ねられる。
下図の例では、勤務番号=1(日勤) 基点曜日=7(土曜)となる。
(勤務番号に0を指定すると全勤務)
下図は、解析結果例
解析の元になるシフト表
ユーザースクリプトで、土曜基点の1週間で、日勤を2回より多い場合は不可として作成
Option Explicit
function JudgeKinmu()'勤務可能判定
if 週間勤務日数(1,7)>2 then JudgeKinmu=-1
end function
上の解析結果からも、土曜基点で日勤が3回以上になることはありません。
ある種の
勤務で、
特定の2人の組み合わせになる
回数を、それぞれの個人間で
一覧表示する。
勤務番号
3(早出2:▽)のメンバー間の組み合わせ回数一覧
結果
以下は、メンバー間の組み合わせ回数において
勤務番号
2(△)と勤務番号
3(▽)の場合の
合計回数一覧
結果
解析の元になるシフト表
勤務種別表の「
回数下限」に従い、勤務配置を調整します。
赤枠が指定の勤務回数下限に達していないメンバーの勤務回数
調整成功時
調整前の状態
調整完了後
調整失敗時
調整に失敗した勤務名、メンバー名が表示されます。
調整失敗時は、「
ランダム交換 →
勤務回数下限調整」 を繰り返してみて下さい。
それでも調整失敗する場合は、設定した
条件に無理があります。(もしくは、本ツールの性能限界・・・・)
勤務日数自動調整がオンの場合、予定休み(勤務)日数に達するように、
指定された割り当て勤務を割り振ります。
予定休み(勤務)日数が指定されていることが条件。
勤務日数自動調整を行わずシフト表を作成した場合、または、
調整に失敗した場合に使用します。
手順:
1.シフト作成を実施
2.本「勤務日数調整」を実行
3.最適化(次項)を実施
割り当て失敗時
ランダム交換 → 勤務日数調整 を数回繰り返すと成功する場合があります。
シフト作成後に、特定の日に
勤務を入れ込む場合に使用します。
ただし、全員が予定の勤務日数に達している場合は不可なので、
勤務日数
自動調整をオフにして作成した場合や、
予定休み数を指定しない場合に使用できます。
ここでは、勤務日数自動調整をオフにして作成したシフト表に適用します。
下図で、一番上の「340 徳川家斉」さんの何処かに勤務を入れたいのですが、
すでに予定の勤務日数に達しているため、勤務を挿入できません。
そこで、本機能を使用して、340の人の勤務を他の人と交換して、余裕を作ります。
メニュから「
勤務除去(個人)」をクリック。
「340」と入力して「OK」をクリック
「340」の人の勤務が、他の人の「休み」と交換されて余裕ができました。
以降、
・
勤務を手動で入力
・
勤務日数自動調整
・
最適化
を順に実施すれば手動調整完了です。
交換対象から特定グループを除外したい場合
IDに続けて、半角スペース、グループ番号を入力します。
グループ「10」(上から5人目まで)は交換対象から
除外されます。
グループメンバー全員に対して勤務の除去を行う場合は、「
勤務除去(グループ)」を使用します。
グループ番号を入力して「OK」をクリックすると
グループ番号「10」のメンバーの勤務が、その他のグループメンバーの「休み」と交換されて、
勤務の余裕ができました。
メンバー間の勤務回数を、なるべく偏りが無い状態に調整します。
ランダム交換
作成されたシフト表の勤務配置を、設定条件の範囲内でランダムに入れ替えます。
この場合、メンバー間の勤務回数の偏りなどは無視されます。
勤務日数自動調整、勤務回数下限調整がうまくいかない場合に、ランダム交換を行うと成功の確率が高くなります。
シフト作成にあたっては、さまざまな組み合わせが試せるように、
乱数を使って割振り順序などを決定しています。
よって、同じ条件でも、(最終結果は同じになるとしても)作成過程のシフト状態は異なります。
「
乱数初期化なし」とすると、決まった乱数配列に従い実行されますので、
全く同じ作成過程が再現できます。
どうしてもシフト作成に失敗する場合、エラーが発生する場合、などに原因特定の為に使用する機能です。
ほぼツール開発者用ですが、ユーザー様にも役立つ場合があるかもしれません。
障害報告/質問を送る場合、
同じ状態を再現できれば、ユーザー様/開発者共に助けになる場合があります。
上中央図、乱数系列( -1 ) に表示されている「-1」が乱数シード値です。
負の場合、その値を基にした乱数系列が作成され、
常に同じシフト表が作成されます。
− シード値:-1 → -2 → -3 ・・・と減算
+ シード値:・・・→ -3 → -2 → -1 と加算
正の場合、毎回
異なるシフト表が作成されます。(既定値)