オプションメニュー

メニュー
シフト表解析
 全警告チェック)
 勤務回数下限チェック
 連続勤務数超過チェック
 連続休み数超過チェック
 連続勤務禁止パターンチェック
 連続勤務必須パターンチェック
 メンバー組み合わせ必須チェック
 フレックス要員チェック
 連休個数一覧
 週間勤務日数一覧
 組合せ回数一覧
 勤務日数調整可能一覧
 交換可能勤務一覧
 スクリプト関数テスト
 勤務可能判定
作成後の調整
 勤務回数下限調整
 勤務日数調整
 勤務除去(個人)
 勤務除去(グループ)
 最適化
 ランダム交換
保守
バックアップと復元

強制情報更新
乱数を初期化しない
メニューを全て展開畳む

シフト表解析

全警告チェック

チェック可能な全ての警告を解析します。

正常に確保成功時は下図



確保に一部失敗した場合は、▲印が先頭に付加
外套の行をクリックすると、詳細が下右図のように表示されます。


"★警告" が表示されている項目は、以下の個別メニューからも詳細を参照できます。

勤務回数下限チェック

期間内における勤務ごとの回数が、勤務種別表で指定する回数下限を満たしているかをチェックする。
例:下図のシフト表を解析



勤務種別表で、日勤遅出回数下限を、それぞれ7,4回として解析



下図のように出力される。
それぞれ、勤務回数 不足数 名簿順序 ID 氏名 を表す。




回数下限に違反する勤務が無い場合は、「勤務回数下限未満はありません!」を表示

連続勤務数超過チェック

連続する勤務が制限回数を超えているかを解析

例:下記のシフト表を解析


制限回数 6回の場合


エラーは表示されない。


制限回数 5回の場合


制限を超えている 回数:期間〜ID:氏名 がリストで表示される


連続休み数超過チェック

連続する休みが制限回数を超えているかを解析

例:下記のシフト表を解析


制限回数 3回の場合


エラーは表示されない。


制限回数 2回の場合


制限を超えている 日数:期間〜ID:氏名 がリストで表示される


連続勤務禁止パターンチェック

連続勤務必須パターンチェック

要員設定の「連続勤務必須パターン」の条件が守られているかを検査。

下図の例では、「夜」→「明」が連続勤務必須パターンであるが、2か所(青枠)で規則が守られていない部分がある。



検査を実行すると、下記のように分析される。
本例での違反原因は、上図青枠で「夜→明」とした場合、「連続勤務日数オーバー」になるため。
(ここでは連続勤務日数上限は「」日となっている)

メンバー組み合わせ必須チェック

メンバーの組合せ必須条件を検査。
下記は不足が発生した場合の表示例

それぞれ、以下の意味を表す。
 日付 条件番号 勤務番号 勤務名 必要人数 非厳守スイッチ状態



調査したシフト表



メンバー組み合わせ必須条件


フレックス要員チェック

フレックス要員(複数の勤務での人数合計で要員確保)が満たされているかをチェック。
下図は、「フレックス要員」の条件で
 条件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人の組み合わせになる回数を、それぞれの個人間で一覧表示する。

勤務番号(早出2:▽)のメンバー間の組み合わせ回数一覧



結果



以下は、メンバー間の組み合わせ回数において
勤務番号(△)と勤務番号(▽)の場合の合計回数一覧



結果



解析の元になるシフト表

勤務日数調整可能一覧

交換可能勤務一覧

勤務可能判定

スクリプト関数テスト


作成後の調整

勤務回数下限調整

勤務種別表の「回数下限」に従い、勤務配置を調整します。
赤枠が指定の勤務回数下限に達していないメンバーの勤務回数
調整成功時
調整前の状態


調整完了後
調整失敗時
調整に失敗した勤務名、メンバー名が表示されます。


調整失敗時は、「ランダム交換勤務回数下限調整」 を繰り返してみて下さい。
それでも調整失敗する場合は、設定した条件に無理があります。(もしくは、本ツールの性能限界・・・・)

勤務日数調整

勤務日数自動調整がオンの場合、予定休み(勤務)日数に達するように、
指定された割り当て勤務を割り振ります。
予定休み(勤務)日数が指定されていることが条件。

勤務日数自動調整を行わずシフト表を作成した場合、または、
調整に失敗した場合に使用します。
手順:
1.シフト作成を実施
2.本「勤務日数調整」を実行
3.最適化(次項)を実施

割り当て失敗時
ランダム交換 → 勤務日数調整 を数回繰り返すと成功する場合があります。

勤務除去(個人)

シフト作成後に、特定の日に勤務を入れ込む場合に使用します。
ただし、全員が予定の勤務日数に達している場合は不可なので、
勤務日数自動調整をオフにして作成した場合や、予定休み数を指定しない場合に使用できます。

ここでは、勤務日数自動調整をオフにして作成したシフト表に適用します。

下図で、一番上の「340 徳川家斉」さんの何処かに勤務を入れたいのですが、
すでに予定の勤務日数に達しているため、勤務を挿入できません。


そこで、本機能を使用して、340の人の勤務を他の人と交換して、余裕を作ります。

メニュから「勤務除去(個人)」をクリック。


「340」と入力して「OK」をクリック


「340」の人の勤務が、他の人の「休み」と交換されて余裕ができました。


以降、
勤務を手動で入力
勤務日数自動調整
最適化
を順に実施すれば手動調整完了です。



交換対象から特定グループを除外したい場合

IDに続けて、半角スペース、グループ番号を入力します。


グループ「10」(上から5人目まで)は交換対象から除外されます。

勤務除去(グループ)

グループメンバー全員に対して勤務の除去を行う場合は、「勤務除去(グループ)」を使用します。


グループ番号を入力して「OK」をクリックすると


グループ番号「10」のメンバーの勤務が、その他のグループメンバーの「休み」と交換されて、
勤務の余裕ができました。


最適化

メンバー間の勤務回数を、なるべく偏りが無い状態に調整します。

ランダム交換

作成されたシフト表の勤務配置を、設定条件の範囲内でランダムに入れ替えます。
この場合、メンバー間の勤務回数の偏りなどは無視されます。
勤務日数自動調整、勤務回数下限調整がうまくいかない場合に、ランダム交換を行うと成功の確率が高くなります。


保守

初期化 データベースを初期化
インポート データベースを
     他のファイルから転送

バックアップと復元

現在のデータベースを別ファイルとして保存。
また、自動バックアップの設定変更

バックアップと復元の詳細

強制情報更新

シフト表の表示を強制的に再表示します。
設定後に変更が反映されない場合などに使用(文字色、背景色、集計値が更新されないなど)

乱数を初期化しない


シフト作成にあたっては、さまざまな組み合わせが試せるように、乱数を使って割振り順序などを決定しています。
よって、同じ条件でも、(最終結果は同じになるとしても)作成過程のシフト状態は異なります。
乱数初期化なし」とすると、決まった乱数配列に従い実行されますので、全く同じ作成過程が再現できます。

どうしてもシフト作成に失敗する場合、エラーが発生する場合、などに原因特定の為に使用する機能です。
ほぼツール開発者用ですが、ユーザー様にも役立つ場合があるかもしれません。
障害報告/質問を送る場合、同じ状態を再現できれば、ユーザー様/開発者共に助けになる場合があります。



上中央図、乱数系列( -1 ) に表示されている「-1」が乱数シード値です。
負の場合、その値を基にした乱数系列が作成され、常に同じシフト表が作成されます。
 − シード値:-1 → -2 → -3 ・・・と減算
 + シード値:・・・→ -3 → -2 → -1 と加算
正の場合、毎回異なるシフト表が作成されます。(既定値)
×
PageTop