勤務回数()
機能 : 指定期日内での勤務割り当て回数を返す
書式 : 勤務日数( 勤務番号[,開始日] [,終了日] [,ID] )
引数 : 勤務番号:調査する勤務番号 省略時は全勤務が対象
開始日:調査期間の開始日 省略時は期間初日
終了日:同、終了日 省略時は期間末日
ID : 調査対象者のID 省略時は割り当て予定者のID
戻り値: 勤務回数
注意 :下旬で回数制限すると、確保不可の可能性増大
使用例
IDにより回数制限する期間を指定
432,435,438,439,441 1日〜9日 「
夜」
不可 A
572,573,574,575,576 10日〜19日 「
午」
1回まで
B
729,730,731,732,733 20日〜29日 勤務
7回まで
C
作成したシフト表
赤枠内が上記
A,B,C の制限を受けている
使用したスクリプト ID指定
グループで指定する場合は下記のように記述
VbScript 「Select Case」コマンド リファレンス
勤務の分散化
勤務種別表で「勤務間隔」を指定する方法の他に、本関数を使用することも可能
下図は、「
午」および「
▲」を期間内で分散化したもの
それぞれ
赤枠には、「
午」および「
▲」が共に
1回しか割り当てられない。
青枠 内も同様。
あわせて、期間内で分散化されている。
使用したスクリプト
組合せ回数
機能 :指定勤務で指定ID間の組合せ回数を返す
書式 :組合せ回数 勤務番号 , ID1 , ID2 )
引数 :勤務番号
ID1 ID番号1
ID2 ID番号2
戻り値:回数
★「
組合せ回数一覧」(シフト表解析)を使用して、作成済みのシフト表から解析可
例1:同一日に
340と
341が勤務1となる組合せ回数を
1まで
if 組合せ回数(1,340,341) >1 then JudgeKinmu = -1
例2:同一日に
340と
341の組合せで、勤務
2と勤務
3の回数合計を
3まで
if ( 組合せ回数(2,340,341) +組合せ回数(3,340,341) ) >3 then JudgeKinmu = -1
例3:下図は青枠内のメンバーで、「
日勤」の組合せを期間内に
1回までとして制限
・作成結果
青枠内の人の組合せで、
赤枠がを
日勤の
同日勤務。最大一回となっている。
・スクリプト:(340〜344での2人の組み合わせを全て記述)
Option Explicit
function JudgeKinmu()'勤務可能判定
if 組合せ回数(1,340,341)>1 then JudgeKinmu=-1
if 組合せ回数(1,340,342)>1 then JudgeKinmu=-1
if 組合せ回数(1,340,343)>1 then JudgeKinmu=-1
if 組合せ回数(1,340,344)>1 then JudgeKinmu=-1
if 組合せ回数(1,341,342)>1 then JudgeKinmu=-1
if 組合せ回数(1,341,343)>1 then JudgeKinmu=-1
if 組合せ回数(1,341,344)>1 then JudgeKinmu=-1
if 組合せ回数(1,342,343)>1 then JudgeKinmu=-1
if 組合せ回数(1,342,344)>1 then JudgeKinmu=-1
if 組合せ回数(1,343,344)>1 then JudgeKinmu=-1
end function