You are on page 1of 33

Synchro-Schedule DBR

Scheduling Workbook
A Guide to the Formulas on the Capacity
Constrained Resource (CCR#)Worksheets
Ver 1 Rel 1 March 2, 2010

Suite 300 3665 Kingsway


Vancouver, BC Canada V3B 1G8
Tel: 604-668-3253
email: drbsupport@synchronix.com
The following five slides detail
the User-Defined Functions used
in the CCR# worksheets
Header: Earliest Scheduled Release
Function: dbrRelease(O6,$P$2,$L$2,N6,M6)
Where:
O6 is the Planned Start Time of the current WO No.
$P$2 is the CCR Shop Calendar (I.e. function will concatenate
value in Cell P2 to use vlookup function to the range
name SCD#)
$L$2 is the Gating Operation Shop Calendar
N6 is the Constraint Buffer Time of the current WO No.
M6 is the Pre-Drum Process Time of the current WO No.
Header: Time Off DRUM

Function: dbrTOD(O6,K6,$P$2)
Where:
O6 is the Planned Start Time of the current WO No.
K6 is the Scheduled Run-hours for the current WO No.
$P$2 is the reference to the CCR Shop Calendar range name
Header: Run-Hours Available on
DRUM
Function: dbrTAD(O6,P5,$P$2)
Where:
O6 is the Planned Start Time of the current WO No.
P5 is Time Off Drum of the PREVIOUS WO No.
$P$2 is the reference to the CCR Shop Calendar range name
Header: Available to Ship

Function: dbrATS(P6,$P$2,$T$2,S6,R6)
Where:
P6 is the Time Off Drum of the current WO No.
$P$2 is the reference to the CCR Shop Calendar range name
$T$2 is the reference to the Shipping Buffer / Completion
Resource Shop Calendar range name
S6 is the Shipping Buffer Time for the current WO No.
R6 (optional) is the Post-Drum Process Time for the
current WO No.
Header: Release Penetr'n

Function: dbrBufferPen(O6,L6,$P$2)
Where:
O6 is the Planned Start Time of the current WO No.
L6 is the Earliest Scheduled Release of the current WO
No.
$P$2 is the reference to the CCR Shop Calendar range
name.
The following slides detail the
formulas used in the CCR#
worksheets
Header: Seq No.
Formula:
=IF(COUNTA(INDIRECT("C"&ROW()&":C"&ROW(INDIRECT($A$1&"
LastRow"))))=0,"",ROW()-3)

Logical test 1:
Count the number of cells in Column C that have a value in them between the
current row and the CCR#LastRow range name (I.e. cell A## where the red
bar is at the bottom of the schedule)
If the count = 0 then return (a null set a blank cell), otherwise,
Return
The current row number minus 3
Header: Release Penetr'n
Formula:
=IF(AND(C6="",L6=""),"",IF(OR($C6="",L6="Invalid PST",O6="PST Not
Sched'd"),0,dbrBufferPen(O6,L6,$P$2)))
Logical test 1:
If both the cell in Column C and the cell in Column L of the current record is
blank then return a null set (blank cell), otherwise,
Logical test 2:
if any of these are true for the current record (cell in Column C is blank, or cell
in Column L is Invalid PST or the cell in Column O is PST Not Schedd)
then return zero (0%), otherwise,
Return
The calculated value of the dbrBufferPen() function
Header: WO No.

This is where you enter the work order identification to look


up in the appropriate Source Data range

Header: Batch Code


This is where you enter the work order batch identification to
look up in the appropriate Source Data range if this field is
imported from the System of Record or use it to uniquely
identify WO No.s that you split within the Drum
Header: WO Transfer Batch Qty
Formula:
=IF($C6="","",IF(NOT(ISNA(MATCH(C6,BubbleIndex,0))),"Bubble",IF(ISNA(
MATCH($C6,INDIRECT($A$1&"WOIndex"),0)),"NISD",X6)))
Logical test 1:
If the cell in Column C of the current record is blank then return a null string
(blank cell), otherwise,
Logical test 2:
If there is not an error when you match the value in Column C of the current
record to the range name BubbleIndex (I.e. the value exists in the
BubbleIndex range) then return Bubble, otherwise,
Logical test 3:
if the value in Column C of the current record is not in the CCR#WOIndex
range (not included in the source data table) then return NISD, otherwise,
Return
The value in Column X of the current record
Header: WO Status
Formula:
=IF($A6="","","--")
Logical test 1:
If the value in Column A of the current record is blank then return a balnk cell,
otherwise,
Return the value

Note:
If your System of Record contains a field value that identifies the status of the
work order through the flow of the value-chain you may want to import and
display that value. In that case substitute the formula on the next sheet.
Header: WO Status (Alternate)
Formula:
=IF($A6="","",IF(ISNA(MATCH(C6,INDIRECT($A$1&"WOIndex"),0)),"NISD
",INDEX(INDIRECT($A$1&"WOTable"),MATCH(C6,INDIRECT($A$1
&"WOIndex"),0),$F$2)))
Logical test 1:
If the value in Column A of the current record is blank then return a balnk cell,
otherwise,
Logical test 2:
If the value in Column C of the current record is not included in the
CCR#WOIndex range then return NISD, otherwise,
Return the value in the CCR#WOTable that is (the value in Cell $F$2) columns
to the right from the leftmost column of the table

Note:
You will have to change the value in the CCRHeadersTable for the CCR1
Lookup Offset Col for the field that Cell F2 is linked to.
Header: Promised Due Date
Formula:
=IF($C6="","",IF(NOT(ISNA(MATCH($C6,BubbleIndex,0))),"Bubble",IF(ISN
A(MATCH($C6,INDIRECT($A$1&"WOIndex"),0)),"NISD",INDEX(INDIRE
CT($A$1&"WOTable"),MATCH($C6,INDIRECT($A$1&"WOIndex"),0),
$G$2))))
Logical test 1: (explained before)
Logical test2:
If the value in Column C is contained in the range name BubbleIndex then
return Bubble, otherwise,
Logical test 3:
if the value in Column C is not found in the CCR#WOIndex then return
NISD, otherwise,
Return
The value in the CCR#WOTable that is in the (value in Cell $G$2)th column
for the WO No. record
Header: WO Description or SKU ID
Formula:
=IF($C6="","",IF(NOT(ISNA(MATCH($C6,BubbleIndex,0))),INDEX(Bubble
Table,MATCH($C6,BubbleIndex,0),2),IF(ISNA(MATCH($C6,INDIRECT($A
$1&"WOIndex"),0)),"Not In Source
Data",INDEX(INDIRECT($A$1&"WOTable"),MATCH($C6,INDIRECT
($A$1&"WOIndex"),0),$H$2))))
Logical test 1: (explained before)
Logical test 2:
If the value in Column C is found in the BubbleIndex range then return the
value in the 2nd column of the BubbleTable range, otherwise,
Logical test 3:
If the value in Column C is not included in the CCR#WOIndex range then
return Not In Source Data, otherwise,
Return
The value in the CCR#WOTable that is in the (value in Cell $H$2)th
column for the WO No. record
Header: Setup Time
Formula:
=IF($C6="","",VLOOKUP($I$2,SUCodes,2))

Logical test 1: (explained before), otherwise,


Return
The value in the SUCodes table that is in the 2nd column that matches the
value in Cell $I$2 (assuming you know the values in the table)
Header: System of Record Run-
Hours
Formula:
=IF($C6="","",IF(NOT(ISNA(MATCH(C6,BubbleIndex,0))),"Bubble",IF(ISN
A(MATCH(C6,INDIRECT($A$1&"WOIndex"),0)),"NISD",INDEX(INDIRE
CT($A$1&"WOTable"),MATCH(C6,INDIRECT($A$1&"WOIndex"),0),
$J$2)*(E6/X6))))
Logical test 1: (explained before), otherwise,
Logical test 2: (explained before), otherwise,
Logical test 3: (explained before), otherwise,
Return
The value in the CCR#WOTable that is in the (value in Cell $J$2)th column
for the WO No. record, multiplied by the value in Column E divided by the
value in Column X (I.e. the proportion of the WO Transfer Batch Qty versus
the WO Process Batch Qty)
Header: Scheduled Run-Hours
Formula:
=IF(C6="","",IF(J6="NISD",0,IF(J6="Bubble",INDEX(BubbleTable,MATCH(C6,
BubbleIndex,0),2+RIGHT($A$1,1)),INT(ROUND((I6+J6)*$K$2*1440,0))/1
440))
Logical test 1: (explained before), otherwise,
Logical test 2:
If the value in Column J is NISD then return zero (0:00), otherwise,
Logical test 3:
If the value in Column J is Bubble then return the value in the
BubbleTable range in the (2 + CCR#)th column, otherwise,
Return
The sum of the Setup Time plus the System of Record Run-Hours value
multiplied by the CCR Scheduled Hours Factor in Cell $K$2, rounded to the
nearest minute
Header: Earliest Scheduled Release
Formula:
=IF($C6="","",dbrRelease(O6,$P$2,$L$2,N6,M6))

Logical test 1: (explained before), otherwise,


Return
The value calculated from the dbrRelease function (explained on slide #1)
Header: Pre-Drum Process Time
Formula:
=IF($C6="","",IF(OR($M$2="None",E6="Bubble",E6="NISD"),0,INDEX(INDI
RECT($A$1&"WOTable"),MATCH(C6,INDIRECT($A$1&"WOIndex")
,0),$J$2)*(E6/X6)))

Logical test 1: (explained before),otherwise,


Logical test 2:
If the value in Cell $M$2 is None or the value in Column E is Bubble or
the value in Column E is NISD then return zero (0:00), otherwise,
Return
The value in the CCR#WOTable in the (value in Cell $J$2)th column for the
WO No. record, multiplied by the ratio of the value in Column E (WO
Transfer Batch Qty) divided by the value in Column X (WO Process Batch
Qty)
Header: Constraint Buffer Time
Formula:
=IF($C6="","",$N$2)

Logical test 1: (explained before), otherwise,


Return
the Default Constraint Buffer Time in Cell $N$2 (that is linked to the
ConfigTable range)
Note:
If your System of Record contains a field for a Constraint Buffer Time then
you will have to adjust the formula to lookup the data in the CCR#WOTable
range
Header: Planned Start Time
Formula:
=IF($A6="","",IF(ISERROR(K6),"Run-Hrs Error",IF(ISERROR(P5),"TOD
Error",P5)))
Logical test 1: (explained before), otherwise,
Logical test 2:
If there is an error value in Column K then return Run-Hrs Error, otherwise,
Logical test 3:
If there is an error value in Column P then return TOD Error, otherwise,
Return
The Time of Drum value (Col P) from the previous WO No.
Header: Time Off DRUM
Formula:
=IF($A6="","",IF(ISERROR(K6),"Run-Hrs Error",IF(K6="NISD","Check Run-
Hrs",IF(K6="",O6,dbrTOD(O6,K6,$P$2)))))
Logical test 1: (explained before), otherwise,
Logical test 2:
If there is an error value in Column K then return Run-Hrs Error, otherwise,
Logical test 3:
If the value in Column K is NISD then return Check Run-Hrs, otherwise,
Logical test 4:
If Column K is blank then return a blank cell, otherwise,
Return
The value calculated from the dbrTOD function (explained on slide #2)
Header: Run-Hours Available on
DRUM
Formula:
=IF($A6="","",IF(ROW()=4,0,dbrTAD(O6,P5,$P$2)))

Logical test 1: (explained before), otherwise,


Logical test 2:
If the current row number is four (4) then return zero (0:00), otherwise,
Return
The value calculated from the dbrTAD function (explained on slide #3)
Header: Post-Drum Process Time
Formula:
=IF($C6="","",IF(OR($R$2="None",E6="Bubble",E6="NISD"),0,INDEX(INDI
RECT($A$1&"WOTable"),MATCH(C6,INDIRECT($A$1&"WOIndex")
,0),$R$2)*(E6/X6)))
Logical test 1: (explained before), otherwise,
Logical test 2: (explained before), otherwise,
Return
The value in the CCR#WOTable in the (value in Cell $R$2)th column for
the WO No. record, multiplied by the ratio of the value in Column E (WO
Transfer Batch Qty) divided by the value in Column X (WO Process Batch
Qty)
Header: Shipping Buffer Time
Formula:
=IF($C6="","",$S$2)

Logical test 1: (explained before), otherwise,


Return
The Default Shipping Buffer Time value in Cell $S$2
Note:
If your System of Record contains a field for a Shipping Buffer Time then you
will have to adjust the formula to lookup the data in the CCR#WOTable
range
Header: Available to Ship
Formula:
=IF($C6="","",dbrATS(P6,$P$2,$T$2,S6,R6))

Logical test 1: (explained before), otherwise,


Return
The value calculated from the dbrATS function (explained on slide #4)
Header: Index Planned Load Day
Formula:
=IF(O6="","",IF(ISERROR(VLOOKUP(O6,INDIRECT("SCD"&RIGHT($A$1,1
)),1)),"Invalid
PST",INT(VLOOKUP(O6,INDIRECT("SCD"&RIGHT($A$1,1)),1))))
Logical test 1: (explained before), otherwise,
Logical test 2:
If there is an error when you lookup the Planned Start Time in the CCR# Shop
Calendar (SCD#) then return Invalid PST, otherwise,
Return
The date value in the CCR# Shop Calendar for the Planned Start Time of the
current WO No.
Header: Daily Planned Load
Formula:
=IF(O6="","",SUMIF(INDIRECT("Load"&RIGHT($A$1,1)),INDIRECT("L
oad"&RIGHT($A$1,1)),K:K))

Logical test 1: (explained before), otherwise,


Return
The sum of the Scheduled Run-Hours in Column K for all WO No.s that have
a Planned Start Time on the date in Column U
Header: Value-Chain
Formula:
=IF($C6="","",$A$1)

Logical test 1: (explained before), otherwise,


Return
The value in Cell $A$1 (ie. The CCR#)
Header: WO Process Batch Qty
Formula:
=IF($C6="","",IF(NOT(ISNA(MATCH(C6,BubbleIndex,0))),"Bubble",IF(ISNA(M
ATCH(C6,INDIRECT($A$1&"WOIndex"),0)),"NISD",INDEX(INDIRECT($
A$1&"WOTable"),MATCH(C6,INDIRECT($A$1&"WOIndex"),0),$X$2))
))
Logical test 1: (explained before), otherwise,
Logical test 2: (explained before), otherwise,
Logical test 3: (explained before), otherwise,
Return
The value in the CCR#WOTable in the (value in Cell $X$2)th column for the
WO No. record
Header: WO-Batch
Formula:
=IF(C6="","",IF(D6<>"",C6&"-"&D6,C6))

Logical test 1: (explained before), otherwise,


Logical test 2:
If the value in Column D is different than a blank cell then return the
concatenation of the value in Column C and a dash ( - ) and the value in
Column D, otherwise,
Return
The value in Column C (I.e. the WO No. only)

Note:
This column is used in some specific applications of this workbook. If those
characteristics (interactive constraints, which is very rarely seen) of a value-
chain exist in your organization, it is better to have this column left in than
removed.

You might also like