P. 1
Scheduling Excel

Scheduling Excel

|Views: 1,597|Likes:
Published by Tony
This tutorial is aimed at spreadsheet literate people who are involved in planning and scheduling production activities. The techniques and formulas set out in this tutorial are being used by manufacturing companies daily; this is a practical, not an academic, exercise.
This tutorial is aimed at spreadsheet literate people who are involved in planning and scheduling production activities. The techniques and formulas set out in this tutorial are being used by manufacturing companies daily; this is a practical, not an academic, exercise.

More info:

Published by: Tony on May 06, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as XLS, PDF, TXT or read online from Scribd
See more
See less

03/02/2013

pdf

text

original

Thank you for downloading this free tutorial, I hope it will be of use to you.

Take a look at the model system at:
a Flash presentation that runs for 30 minutes
Introduction
Who Should Use This Tutorial
Background to Scheduling With a Spreadsheet
Build Your Own System
Interface to Your E! System
Brought to you by http://www.apiping.!om
http://www.produ!tion"s!heduling.!om/#"$%&y!les%Flash/'iewer.swf
"or years spreadsheets ha#e $een used to design and prototype scheduling systems%
They ha#e now grown up& and are $eing used to de#elop serious production scheduling
applications%
This tutorial is aimed at spreadsheet literate people who are in'ol'ed in planning and s!heduling
produ!tion a!ti'ities. The te!hni(ues and formulas set out in this tutorial are being used by manufa!turing
!ompanies daily) this is a pra!ti!al, not an a!ademi!, e*er!ise.
+e ha'e been designing, building and implementing produ!tion s!heduling systems for manufa!turing
!ompanies sin!e ,--0. +hen #&.s and spreadsheets were less !apable than they are now, we used
spreadsheets to design and prototype s!heduling algorithms, and to train on some of the prin!iples of
s!heduling. #rototype designs were then handed o'er to software de'elopers to write in more resilient
and effi!ient programming languages.
/ften the pressure was on to throw se'eral thousand re!ords of data at the prototypes and use them for
li'e s!heduling, before handing them o'er to the software de'elopers. $o, in order to .shoehorn. a big
s!heduling task into a small #&, we re!orded ma!ro.s that wrote a formula, !opied it down, o'erwrote the
!ells with 'alues, then mo'ed on to the ne*t !olumn, so that no memory !onsuming li'e formulas were
left behind. Typi!ally, most of the ma!ro !ode prepared downloaded data for s!heduling, and generated
reports from the s!hedule, with only a small portion of the ma!ro !al!ulating the s!hedule itself. +e
ended up with big !umbersome ma!ro dri'en s!heduling systems that ordinary, spreadsheet literate
people were lo!ked out of.
Thankfully we now ha'e powerful !omputers whi!h allow us to apply formulas to large amounts of data,
and we ha'e features su!h as 0*!el.s #i'otTable whi!h will re"arrange and summarise data for
s!heduling, and prepare reports without resorting to writing ma!ros. It makes the 1ob, of building a
s!heduling system with a spreadsheet, a whole lot easier, and within the !apability of the a'erage
speadsheet user.
/ur offering to our !lients has now !hanged, and we !an now gi'e them the option of either building a
s!heduling system for them, or tea!hing their staff to build one for themsel'es, and pro'iding guiden!e
while they do it.
/ur !lients in!lude !ompanies su!h as $hell, Toyota and 2nile'er, as well as many smaller
manufa!turing !on!erns. They all ha'e 03# or older 43#II systems, and ha'e felt that the fun!tionality
of their systems need to be e*tended to gi'e them the kind of responsi'e s!heduling they are looking for.
$preadsheet based s!heduling appli!ations ha'e been interfa!ed to $5#, Baan and many other 03#
systems.
#rodu!tion"$!heduling.!om
Structured and 'isciplined (pproach
E)mail Us:
We$ Site
$preadsheets ha'e earned themsel'es a bad reputation amongst software purists, be!ause they !an,
and often are, used in an unstru!tured way. Building a s!heduling system re(uires a stru!tured and
dis!iplined approa!h. #lease resist the trap, that many fall into, by !reating a table on a single worksheet
that looks like the report that you want to see. The approa!h used here is to !reate lists in the form of
databases, with a heading at the top of ea!h !olumn, and with uni'ersal formulas that !an be !opied and
pasted down a !olumn, and work on e'ery row. If all the !al!ulations are done in a stru!tured database,
then reports, with sub"totals and !harts, !an easily be !reated with a #i'otTable.
#rodu!tion"$!heduling64web.!o.a
www.#rodu!tion"$!heduling.!om
,789::3:.*ls &ontents
S*+E'U,I-. WIT+ ( S!E('S+EET
T(B,E O" *O-TE-TS
$e!tion
Introdu!tion
, &apa!ity #lanning 's Finite $!heduling " the essential differen!e
8 Time !as!ades downwards
3 3e"se(uen!ing the s!hedule
: 5 $imple ;antt &hart
9 $etting up a &alendar
< &al!ulation of =ob $top Time Through the &alendar
7 =ulian >ates
? $etting up a =ulian &alendar
- 2sing the &alendar Formulas
,0 4ultiple 4a!hines or +ork &entres
,, =oining Te*t Together and Indire!t 3eferen!es
,8 $eparate &alendars for ea!h +ork &entre
,3 3epetiti'e #rodu!tion and $etups
,: 5 $et"up 4atri*
,9 5pplying the $et"up 4atri* Formula
,< ;antt &hart 8 " @ours per >ay
,7 ;antt &hart 3 " 2nits per >ay
,? +orking @ours Between Two >ates A&alendar Formula 8B
,- 5pplying &alendar Formula 8
80 =obs That #ass Through 4ultiple +ork &entres
8, 3epetiti'e #rodu!tion that #asses Through 4ultiple +ork &entres
88 Transfer Bat!hes
83 3e"2sing #arts of the &alendar Formulas
8: 3epetiti'e #rodu!tion Through 4ultiple +ork &entres, +ith &alendars
89 5 #ull $!hedule
8< #ush and #ull $!hedule
87 +orking Ba!kwards Through a &alendar A&alendar Formula 3B
8? 5pplying &alendar Formula 3 to a #ull $!hedule
8- 4ultiple +ork &entre " #ull $!hedule
30 3epetiti'e #rodu!tion Through 4ultiple +ork &entres " #ull $!hedule
3, 3epetiti'e #rodu!tion, 4ultiple +ork &entres, #ull $!hedule, +ith &alendars
38 #ush #ull #ush " 3 #ass Cogi!
33 4ultiple +ork &entre " 3 #ass $!hedule
3: 3epetiti'e #rodu!tion Through 4ultiple +ork &entres " 3 #ass $!hedule
39 3 #ass $!hedule +ith a &alendar
3< 3 #ass $!hedule +ith 4ultiple &alendars
37 3epetiti'e #rodu!tion, 3 #ass $!hedule +ith 4ultiple &alendars
3? #ro1e!t $!heduling
3- &riti!al #ath 5nalysis
:0 4ake"to"$to!k AIn'entoryB $!hedule
:, 4ake"to"$to!k Cogi! 0*plained
:8 4ake"to"$to!k $!hedule " Formulas 0*plained
:3 In'entory &o'er &al!ulation
To &ome:
4aterial 3e(uirements to $upport a $!hedule
,789::3:.*ls $e!tion ,
*apacity !lanning #s "inite Scheduling ) the essential difference
Imagine you ha'e 9 1obs to do before this time tomorrow:
/o$s +ours
1ob 5 7
1ob B ,8
1ob & :
1ob > 9
1ob 0 ?
Total 3<
Dou ha'e work totalling an estimated 3< hours to !omplete in a day A8: hoursB. Dou ha'e a problem.
&apa!ity planning tells you that you ha'e a problem by saying that you are A3<E8:B ,90F loaded
for the day, and lea'es you to resol'e the problem by adding more resour!es or negotiating
alternati'e due dates.
Finite s!heduling, on the other hand, re!ognises that the !apa!ity of the resour!e is finite, and tells
you that some of the 1obs are going to be late, and it !an also tell you:
" whi!h 1obs are going to be late
" how late they are going to be
" are they important 1obs, or for important !ustomers
" what re'ised deli'ery dates !an be promised
" how all these would !hange if the =obs were undertaken in a different se(uen!e
I would argue that !ompared with !apa!ity planning, finite s!heduling gi'es you ri!her management
information.
,789::3:.*ls $e!tion ,
Dou ha'e work totalling an estimated 3< hours to !omplete in a day A8: hoursB. Dou ha'e a problem.
,789::3:.*ls $e!tion 8
Time cascades downwards
Cets add some additional !olumns to the list of 1obs:
/o$s +ours Start Stop 'ue On time
1ob 5 7 0 7 8: T320
1ob B ,8 7 ,- 8: T320
1ob & : ,- 83 8: T320
1ob > 9 83 8? 8: F5C$0
1ob 0 ? 8? 3< 8: F5C$0
This is now more than a list of 1obs, it is a s!hedule.
0a!h formula is entered in the top !ell of the !olumn and then !opied down, take a look at them:
" the first 1ob starts at hour ero
G07 " the ne*t 1ob starts when the pre'ious one stops
G>?H&? " the stop is the start plus the hours
" ea!h 1ob is due 8: hours from now
G0?IGF? " a 1ob is on time if it stops on or before it is due
>ouble !li!k on a !ell !ontaining a formula, and the !ells it refers to will be !olour !oded.
Dou !an see that ea!h 1ob is dependant on the one before it, and time !as!ades downwards.
Dou !an also see that only three of the fi'e 1obs will be on time, but lets see what happens when
we do them in a different se(uen!e.
A B C D E F G H I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
,789::3:.*ls $e!tion 3
e)se0uencing the schedule
+e will add a se(uen!e !olumn to the left of the table:
Se0 /o$s +ours Start Stop 'ue On time
, 1ob 5 7 0 7 8: T320
8 1ob & : 7 ,, 8: T320
3 1ob > 9 ,, ,< 8: T320
: 1ob 0 ? ,< 8: 8: T320
9 1ob B ,8 8: 3< 8: F5C$0
If we do 1ob B last, four out of the fi'e 1obs will be on time. The table was sorted into a different
se(uen!e by entering the numbers , 9 8 3 : down the se(uen!e !olumn, and with the pointer in
the se(uen!e !olumn, !li!king on the .sort as!ending. i!on.
,789::3:.*ls $e!tion :
( Simple .antt *hart
The start and stop times of ea!h 1ob are !al!ulated by formulas that !as!ade down the !olumns, but as a 'isual aid, the
information may also be displayed as a ;antt !hart. This is how you set it up:
" to the right of the s!hedule make narrow !olumns and head them from hours , to 3<
Se0 /o$s +ours Start Stop , 8 3 : 9 < 7 ? - ,0 ,, ,8 ,3 ,: ,9 ,< ,7 ,? ,- 80 8, 88 83 8: 89 8< 87 8? 8- 30 3, 38 33 3: 39 3<
, 1ob 5 7 0 7 , , , , , , ,
8 1ob & : 7 ,, , , , ,
3 1ob > 9 ,, ,< , , , , ,
: 1ob 0 ? ,< 8: , , , , , , , ,
9 1ob B ,8 8: 3< , , , , , , , , , , , ,
" enter this formula GIFA5J>AFK?LK>,0,FK?IGK0,0B,,,MMB
It tests the !ell to see whether the hour number in the !olumn heading is between the start and stop.
If it is, it returns a ,, if not it returns MM Aa blankB
The K.s ensure that when the formula is !opied it !ontinues to referen!e !olumns > and 0 for the start and stop,
and row ? for the hour number.
" set FormatN&onditional FormattingN#atternN&olour if the !ell 'alue G,, to emphasie the !ell with a !olour
" !opy the formula in F,0, and paste it to the range F,0:5/,:
Try !hanging the figures in the @ours !olumn to see how the ;antt !hart responds, or !hange one of the se(uen!e numbers
and sort to re"se(uen!e the s!hedule.
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AAABACADAEAFAGAHAI AJ AKALAMANAO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
,789::3:.*ls $e!tion 9
Setting up a *alendar
$o far we ha'e assumed that the work !entre works 8: hours a day without a break, as would a !ontinuous pro!ess su!h as
an oil refinery or a paper mill. @owe'er, if it is not a !ontinuous pro!ess we need to define the working periods during whi!h the
work !entre is a'ailable. @ere is an e*ample of a !alendar in hours, and de!imals of an hour
Alater we will e*amine dates and timesB:
Begin End
, 0 0 0 0 establishes the beginning of the !alendar at ero hour, midnight
8 ? ,0 8 8 work from ?:00 am to ,0:00 am
3 ,0.89 ,3 8.79 :.79 a ,9 min break, resume work at ,0:,9 am and work till ,:00 pm
: ,3.9 ,9.9 8 <.79 30 min for lun!h, then work till 3:30 pm
9 ,9.79 ,? 8.89 - a ,9 min break in the afternoon, then work till <:00 pm
< ,- 88 3 ,8 an hour for dinner, then work till ,0:00 pm
0*pressed as ,8 hour !lo!k times, the !alendar looks like this:
, ,8:00 54 ,8:00 54 0 0
8 ?:00 54 ,0:00 54 8 8
3 ,0:,9 54 ,:00 #4 8.79 :.79
: ,:30 #4 3:30 #4 8 <.79
9 3::9 #4 <:00 #4 8.89 -
< 7:00 #4 ,0:00 #4 3 ,8
+e are !ounting hours into the s!hedule beginning at midnight.
0a!h line is a working period, the breaks lie in between.
In this e*ample we begin at ?:00 54, end at ,0:00 #4, work for ,8 hours, and ha'e 8 hours of breaks.
Take a look at the formulas, they are 'ery simple.
Jow !onsider this problem:
If you start a 7 hour 1ob at ?:30 54, at what time will you stopO
Dou !ould do this:
Begin End 'uration
?.9 ,0 ,.9
,0.89 ,3 8.79
,3.9 ,9.9 8
,9.79 ,<.9 0.79
Total 7
+ith a bit of trial and error you !an work out that the answer is at hour ,<.9 or ::30 pm
@owe'er, a more !omprehensi'e !al!ulation is set out on the ne*t worksheet.
!eriod
-um$er
Working
+ours
Working
+ours so
far 1*um2
,789::3:.*ls $e!tion <
*alculation of /o$ Stop Time Through the *alendar
This gets !omple*, so you !an skip this part if you wish and 1ust a!!ept that the forulae work when you apply them, or you !an
perse'ere and understand how the formulas work. The start of the 1ob !ould be within a working period, or it !ould fall between two
working periods. @ere is the !alendar again:
Begin End
, 0 0 0 0
8 ? ,0 8 8 !hange these figures and work through
3 ,0.89 ,3 8.79 :.79 the stages of the !al!ulation, to gain
: ,3.9 ,9.9 8 <.79 an understanding of the formulas
9 ,9.79 ,? 8.89 -
< ,- 88 3 ,8
$tarting a 1ob at: ?.9 A?:30 54B
+ork for: 7 hours
$tages of the !al!ulation:
?:30 54 is after period 8 begins 8 G45T&@A0,<,B-:B,:B
?:30 54 is after period , ends , G45T&@A0,<,&-:&,:B
?:30 54 lies between the beginning and end of period 8 8 G;8,HA;8,G;88B
period 8 begins at ?:00 54 ? GIJ>0PAB-:B,:,;83,,B
period 8 ends at ,0:00 54 ,0 GIJ>0PA&-:&,:,;83,,B
you !an start the 1ob at ?:30 54 be!ause it is within a working period ?.9 G45PA;8:,0,<B
the number of hours from the start of the 1ob to the ne*t break ,.9 G;89";8<
!um hours at end of period 8 8 GIJ>0PA0-:0,:,;83,,B
the 1ob starts at !um hour 0.9 of the !alendar 0.9 G;8?";87
the 1ob stops at !um hour 7.9 of the !alendar 7.9 G;8-H0,7
the 1ob stops during period 9 9 G45T&@A;30,0-:0,:BH,
period 9 ends - working hours into the !alendar - GIJ>0PA0-:0,:,;3,,,B
period 9 ends at hour ,? A<:00 #4B ,? GIJ>0PA&-:&,:,;3,,,B
the 1ob will stop ,.9 hours before period 9 ends ,.9 G;38";30
the 1ob will stop at hour ,<.9 A::30 #4B ,<.9 G;33";3:
+ith a series of substitutions, the ,9 formulas !an be !ondensed into : as follows:
&al!, 8 G45T&@A0,<,B-:B,:BHA45T&@A0,<,B-:B,:BG45T&@A0,<,&-:&,:BB
&al!8 0.9 GIJ>0PA0-:0,:,B3-,,B"AIJ>0PA&-:&,:,B3-,,B"45PAIJ>0PAB-:B,:,B3-,,B,0,<BB
&al!3 9 G45T&@AB:0H0,7,0-:0,:BH,
=ob $top ,<.9 GIJ>0PA&-:&,:,B:,,,B"IJ>0PA0-:0,:,B:,,,BHB:0H0,7
The meanings of the formulas are:
&al!, ?:30 54 lies between the beginning and end of period 8
&al!8 the 1ob starts at !um hour 0.9 of the !alendar
&al!3 the 1ob stops during period 9
=ob $top the 1ob will stop at hour ,<.9 A::30 #4B
!eriod
-um$er
Working
+ours
Working
+ours so far
1*um2
A B C D E F G H I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
,789::3:.*ls $e!tion 7
/ulian 'ates
This is the date and time a!!ording to the system !lo!k in this !omputer, using the GJ/+AB fun!tion:
3--3?.7?,3?????- days sin!e , =anuary ,-00
@ere are some different formats of J/+:
,?::9:,8
<::9:,8 #4
<::9 #4
9/9
9/9/0-
9"4ay
9"4ay"0-
4ay"0-
4ay 9, 800-
4"0-
and by using GT0PT:
Tue
TuesdayTuesday
4ay
409
800-
Take a look also at the date and time fun!tions.
The spreadsheet takes !are of the days in ea!h month, and leap years et!.
It was =ulius &aeser who first established the !alendar based on 3<9 days per year with leap years,
hen!e =ulian dates. /ne of the reasons why spreadsheets are so good for s!heduling is the way that
they handle dates and times. 5ll spreadsheets start !ounting time in days, and de!imals of a day, from
midnight before ,st =anuary ,-00, and there are enough de!imal pla!es of a day to measure time to the
nearest 3 thousanth of a se!ondQ
Reep hitting the F- key to re!al!ulate, and wat!h the !lo!k !hange. 5dd , to it and you get the same time
tomorrow. The really neat thing is that we only ha'e one unit for measuring time, a day. +e donSt ha'e
to worry about se!onds, minutes, hours, weeks, fortnights, months, (uarters, years, de!ades and
!enturies. @owe'er we !an display the date and time in different ways with Format &ellsNJumberN>ate
and Time.
,789::3:.*ls $e!tion ?
Setting up a /ulian *alendar
@ere is a !alendar using =ulian dates:
these two !olumns are 1ust for information Anote the formula " hours are days * 8:B
+ours 'ay Begin End 0stablish the first date as follows:
type GJ/+AB to put in the !urrent date and time
8 4on 3/,3/00 ?:00 54 3/,3/00 ,0:00 54 0.0? !opy, then 0ditN#aste $pe!ialNTalues
8.79 4on 3/,3/00 ,0:,9 54 3/,3/00 ,:00 #4 0.8 FormatN&ellsNJumberN>ate and !hoose a format that
8 4on 3/,3/00 ,:30 #4 3/,3/00 3:30 #4 0.8? shows both the date and time
8.89 4on 3/,3/00 3::9 #4 3/,3/00 <:00 #4 0.37 edit the date and time
3 4on 3/,3/00 7:00 #4 3/,3/00 ,0:00 #4 0.9
8 Tue 3/,:/00 ?:00 54 3/,:/00 ,0:00 54 0.9? &opy, paste and edit to set up the first day
8.79 Tue 3/,:/00 ,0:,9 54 3/,:/00 ,:00 #4 0.7
8 Tue 3/,:/00 ,:30 #4 3/,:/00 3:30 #4 0.7? 5dd , for the other days of the week
8.89 Tue 3/,:/00 3::9 #4 3/,:/00 <:00 #4 0.?7
3 Tue 3/,:/00 7:00 #4 3/,:/00 ,0:00 #4 ,
8 +ed 3/,9/00 ?:00 54 3/,9/00 ,0:00 54 ,.0?
8.79 +ed 3/,9/00 ,0:,9 54 3/,9/00 ,:00 #4 ,.8
8 +ed 3/,9/00 ,:30 #4 3/,9/00 3:30 #4 ,.8?
8.89 +ed 3/,9/00 3::9 #4 3/,9/00 <:00 #4 ,.37
3 +ed 3/,9/00 7:00 #4 3/,9/00 ,0:00 #4 ,.9
8 Thu 3/,</00 ?:00 54 3/,</00 ,0:00 54 ,.9?
8.79 Thu 3/,</00 ,0:,9 54 3/,</00 ,:00 #4 ,.7
8 Thu 3/,</00 ,:30 #4 3/,</00 3:30 #4 ,.7?
8.89 Thu 3/,</00 3::9 #4 3/,</00 <:00 #4 ,.?7
3 Thu 3/,</00 7:00 #4 3/,</00 ,0:00 #4 8
8 Fri 3/,7/00 ?:00 54 3/,7/00 ,0:00 54 8.0?
8.79 Fri 3/,7/00 ,0:,9 54 3/,7/00 ,:00 #4 8.8
8 Fri 3/,7/00 ,:30 #4 3/,7/00 3:30 #4 8.8? +e don.t plan to work Friday e'enings
8.89 Fri 3/,7/00 3::9 #4 3/,7/00 <:00 #4 8.37
8 4on 3/80/00 ?:00 54 3/80/00 ,0:00 54 8.:<
8.79 4on 3/80/00 ,0:,9 54 3/80/00 ,:00 #4 8.97 5dd 7 for the other weeks
8 4on 3/80/00 ,:30 #4 3/80/00 3:30 #4 8.<<
8.89 4on 3/80/00 3::9 #4 3/80/00 <:00 #4 8.79
3 4on 3/80/00 7:00 #4 3/80/00 ,0:00 #4 8.?7
5fter deleting or inserting rows, don.t forget to !opy down the formula in the &um >ays !olumn.
5 (ui!k way of !opying a formula down to the bottom of the blo!k of data, is to sele!t the top !ell, then point to the bottom
right !orner of the !ell, and when the solid bla!k !ross appears, like this: double !li!k.
$o far we ha'e s!heduled using hours, rather than days, to measure short periods of time. $omehow MI ha'e a meeting with a
!lient, it should take about 8 hoursM sounds better than Mit should take about 0.0?333 of a dayM. +e ha'e also pegged Mero hourM at
midnight on some arbitrary day, rather than midnight , =anuary ,-00. But we will need to get used to these ideas if we are going to
harness the full power of =ulian dates.
*um
'ays
5 !alendar for a li'e s!heduling system may be up to se'eral thousand rows long, so you may wish to repla!e the formulas with
'alues, after you ha'e set it up, to sa'e on memory and !al!ulation time. Dou !an allow for publi! holidays by deleting rows, and
you !an allow for o'ertime by inserting rows or by e*tending the working periods.
H
,789::3:.*ls $e!tion -
Using the *alendar "ormulas
The formulas for !al!ulating the 1ob stop time through the !alendar, that we de'eloped in se!tion <, works 1ust as well on days
as it does on hours, so it !an be applied to the =ulian !alendar like this:
$tart of first 1ob: 3/,:/00 ?:30 54
Se0 /o$s +ours 'ays Start *alc3 *alc4 *alc5 Stop
, 1ob 5 7 0.8- 3/,:/00 ?:30 54 7 0.98 ,0 3/,:/00 ::30 #4
8 1ob & : 0.,7 3/,:/00 ::30 #4 ,0 0.?, ,, 3/,:/00 -:30 #4
3 1ob > 9 0.8, 3/,:/00 -:30 #4 ,, 0.-? ,3 3/,9/00 ,8::9 #4
: 1ob 0 ? 0.33 3/,9/00 ,8::9 #4 ,3 ,.,- ,7 3/,</00 ?:30 54
9 1ob B ,8 0.9 3/,</00 ?:30 54 ,7 ,.98 88 3/,7/00 ?:30 54
G&,0/8: days are hours E 8: " we need to !on'ert to use the =ulian !alendar
GIFAI-,I-,0K<B if there is a stop time of the pre'ious 1ob, start then, if not use M$tart of first 1obM in 0<
G45T&@A;,0H>,0,.$e!tion ?.QK0K,0:K0K3-BH, the !alendar formulas ha'e been e*plained in $e!tion <, but note how
the !alendar on $e!tion ? is referen!ed from from this worksheet
Jot only !an you referen!e the !alendar if it is on another worksheet, but it !an also be in another workbook.
Try this e*periment:
" open a new workbook AFileNJewN+orkbookB
" make two windows A+indowN5rrageN@oriontalB
" !li!k on the tab of $e!tion ? and drag the worksheet into the new workbook
" now look at the !alendar formulas, and see how they ha'e MfollowedM the !alendar to its new workbook
" sa'e the new workbook as M&alendarM in another folder on your hard dri'e, or elsewhere on your network, and !lose it
" the formulas establish a link to the !alendar, whi!h in!ludes the full path to the workbook
" you !an !onfirm this with 0ditNCinks
This !an be useful if you want se'eral s!hedules to share the same !alendar, but the !al!ulation speed is (ui!ker if the
!alendar is in the same workbook.
5s with the s!hedules in $e!tion3 and :, you !an !hange the hours, or the start of the first 1ob, or the se(uen!e numbers
and sort to re"se(uen!e, and see how the !al!ulations respond.
If you try and start before the !alendar begins, or you drop off the end of the !alendar, the formulas will return errors.
A B C D E F G H I J K L
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
,789::3:.*ls $e!tion ,0
6ultiple 6achines or Work *entres
$o far we ha'e only !onsidered one work !entre. For multiple work !entres we !ould !reate a separate s!hedule for ea!h,
but here is another way of doing it:
$tart of first 1ob: 3/,:/00 ?:30 54
W7* Se0 /o$s +ours 'ays Start *alc3 *alc4 *alc5 Stop
, , 1ob 5 7 0.8- 3/,:/00 ?:30 54 7 0.98 ,0 3/,:/00 ::30 #4
, 8 1ob & : 0.,7 3/,:/00 ::30 #4 ,0 0.?, ,, 3/,:/00 -:30 #4
, 3 1ob > 9 0.8, 3/,:/00 -:30 #4 ,, 0.-? ,3 3/,9/00 ,8::9 #4
8 , 1ob 0 ? 0.33 3/,:/00 ?:30 54 7 0.98 ,0 3/,:/00 9:30 #4
8 8 1ob B ,8 0.9 3/,:/00 9:30 #4 ,0 0.?9 ,9 3/,9/00 9:30 #4
8 3 1ob F < 0.89 3/,9/00 9:30 #4 ,9 ,.39 ,? 3/,</00 ,0::9 54
GIFA5-G5?,=?,FK<B if the work !entre is the same as the 1ob abo'e, then start when the pre'ious 1ob stops
else use the M$tart of first 1obM in F<
In this e*ample a 1ob !an be assigned to +ork &entre , /3 +ork &entre 8, and then assigned a se(uen!e within it.
A+e shall look one 1ob passing through multiple work !entres laterB
Jote that the ,.s and 8.s in the +ork &entre !olumn are !odes rather than numbers, so they ha'e been formatted as te*t
FormatN&ellsNJumberNTe*t.
Dou !an now !hange both the work !entre number and the se(uen!e number, and sort with >ataN$ort
" $ort By +/& 5s!ending
" Then By $e( 5s!ending
A B C D E F G H I J K L
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
,789::3:.*ls $e!tion ,,
/oining Te8t Together and Indirect eferences
In $e!tion ,8 we will use separate !alendars for ea!h work !entre, but first we need to understand a !ouple of te!hni(ues:
=oining te*t together or !on!atenation
The MHM sign is used to add numbers together, but the MUM sign is used to 1oin te*t together or 1oin te*t with numbers, e.g.
=ohn $mith =ohn$mith GB-U&-
this may look better with a spa!e in between:
=ohn $mith =ohn $mith GB,3UM MU&,3
it also works with numbers:
$e!tion ,, $e!tion ,, GB,7UM MU&,7
Indire!t referen!es
---
we !an add te*t together to make something that looks like a !ell referen!e:
B 88 B88 GB8<U&8<
to make it beha'e like a !ell referen!e, add the GIJ>I30&T fun!tion
B 88 --- GIJ>I30&TAB30U&30B
a dire!t referen!e to a !ell on another worksheet:
5 $imple ;antt &hart G.$e!tion :.Q5,
an indire!t referen!e to the same !ell:
$e!tion : 5 $imple ;antt &hart GIJ>I30&TAM.MUB3?UM.Q5,MB
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
,789::3:.*ls $e!tion ,8
Separate *alendars for each Work *entre
The ne*t two worksheets !ontain !alendars, and the following table assignes a !alendar to ea!h work !entre:
W7* *alendar
, &alendar ,
8 &alendar 8
$tart of first 1ob: 3/,:/00 ?:30 54
W7* Se0 *alendar /o$s +ours 'ays Start *alc3 *alc4 *alc5 Stop
, , &alendar , 1ob 5 7 0.8- 3/,:/00 ?:30 54 7 0.98 ,0 3/,:/00 ::30 #4
, 8 &alendar , 1ob & : 0.,7 3/,:/00 ::30 #4 ,0 0.?, ,, 3/,:/00 -:30 #4
, 3 &alendar , 1ob > 9 0.8, 3/,:/00 -:30 #4 ,, 0.-? ,3 3/,9/00 ,8::9 #4
8 , &alendar 8 1ob 0 ? 0.33 3/,:/00 ?:30 54 < 0.: - 3/,:/00 9:30 #4
8 8 &alendar 8 1ob B ,8 0.9 3/,:/00 9:30 #4 - 0.73 ,9 3/,</00 ,0::9 54
8 3 &alendar 8 1ob F < 0.89 3/,</00 ,0::9 54 ,9 ,.83 ,7 3/,</00 9:30 #4
GTC//R2#A5,8,5K<:BK7,8B look up the work !entre in the table abo'e, and return the !ontents of the 8nd !olumn
G45T&@AI,8HF,8,IJ>I30&TAM.MU&,8UM.Q09:0:0MBBH, an e*ample of indire!t referen!e to the !alendars
A B C D E F G H I J K L
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
,789::3:.*ls &alendar ,
*alendar with an E#ening Shift
+ours 'ay Begin End
8 4on 3/,3/00 ?:00 54 3/,3/00 ,0:00 54 0.0?
8.79 4on 3/,3/00 ,0:,9 54 3/,3/00 ,:00 #4 0.8
8 4on 3/,3/00 ,:30 #4 3/,3/00 3:30 #4 0.8?
8.89 4on 3/,3/00 3::9 #4 3/,3/00 <:00 #4 0.37
3 4on 3/,3/00 7:00 #4 3/,3/00 ,0:00 #4 0.9
8 Tue 3/,:/00 ?:00 54 3/,:/00 ,0:00 54 0.9?
8.79 Tue 3/,:/00 ,0:,9 54 3/,:/00 ,:00 #4 0.7
8 Tue 3/,:/00 ,:30 #4 3/,:/00 3:30 #4 0.7?
8.89 Tue 3/,:/00 3::9 #4 3/,:/00 <:00 #4 0.?7
3 Tue 3/,:/00 7:00 #4 3/,:/00 ,0:00 #4 ,
8 +ed 3/,9/00 ?:00 54 3/,9/00 ,0:00 54 ,.0?
8.79 +ed 3/,9/00 ,0:,9 54 3/,9/00 ,:00 #4 ,.8
8 +ed 3/,9/00 ,:30 #4 3/,9/00 3:30 #4 ,.8?
8.89 +ed 3/,9/00 3::9 #4 3/,9/00 <:00 #4 ,.37
3 +ed 3/,9/00 7:00 #4 3/,9/00 ,0:00 #4 ,.9
8 Thu 3/,</00 ?:00 54 3/,</00 ,0:00 54 ,.9?
8.79 Thu 3/,</00 ,0:,9 54 3/,</00 ,:00 #4 ,.7
8 Thu 3/,</00 ,:30 #4 3/,</00 3:30 #4 ,.7?
8.89 Thu 3/,</00 3::9 #4 3/,</00 <:00 #4 ,.?7
3 Thu 3/,</00 7:00 #4 3/,</00 ,0:00 #4 8
8 Fri 3/,7/00 ?:00 54 3/,7/00 ,0:00 54 8.0?
8.79 Fri 3/,7/00 ,0:,9 54 3/,7/00 ,:00 #4 8.8
8 Fri 3/,7/00 ,:30 #4 3/,7/00 3:30 #4 8.8?
8.89 Fri 3/,7/00 3::9 #4 3/,7/00 <:00 #4 8.37
8 4on 3/80/00 ?:00 54 3/80/00 ,0:00 54 8.:<
8.79 4on 3/80/00 ,0:,9 54 3/80/00 ,:00 #4 8.97
8 4on 3/80/00 ,:30 #4 3/80/00 3:30 #4 8.<<
8.89 4on 3/80/00 3::9 #4 3/80/00 <:00 #4 8.79
3 4on 3/80/00 7:00 #4 3/80/00 ,0:00 #4 8.?7
8 Tue 3/8,/00 ?:00 54 3/8,/00 ,0:00 54 8.-<
8.79 Tue 3/8,/00 ,0:,9 54 3/8,/00 ,:00 #4 3.07
8 Tue 3/8,/00 ,:30 #4 3/8,/00 3:30 #4 3.,<
8.89 Tue 3/8,/00 3::9 #4 3/8,/00 <:00 #4 3.89
3 Tue 3/8,/00 7:00 #4 3/8,/00 ,0:00 #4 3.37
8 +ed 3/88/00 ?:00 54 3/88/00 ,0:00 54 3.:<
8.79 +ed 3/88/00 ,0:,9 54 3/88/00 ,:00 #4 3.97
8 +ed 3/88/00 ,:30 #4 3/88/00 3:30 #4 3.<<
8.89 +ed 3/88/00 3::9 #4 3/88/00 <:00 #4 3.79
3 +ed 3/88/00 7:00 #4 3/88/00 ,0:00 #4 3.?7
8 Thu 3/83/00 ?:00 54 3/83/00 ,0:00 54 3.-<
8.79 Thu 3/83/00 ,0:,9 54 3/83/00 ,:00 #4 :.07
8 Thu 3/83/00 ,:30 #4 3/83/00 3:30 #4 :.,<
8.89 Thu 3/83/00 3::9 #4 3/83/00 <:00 #4 :.89
3 Thu 3/83/00 7:00 #4 3/83/00 ,0:00 #4 :.37
8 Fri 3/8:/00 ?:00 54 3/8:/00 ,0:00 54 :.:<
8.79 Fri 3/8:/00 ,0:,9 54 3/8:/00 ,:00 #4 :.97
8 Fri 3/8:/00 ,:30 #4 3/8:/00 3:30 #4 :.<<
8.89 Fri 3/8:/00 3::9 #4 3/8:/00 <:00 #4 :.79
8 4on 3/87/00 ?:00 54 3/87/00 ,0:00 54 :.?3
8.79 4on 3/87/00 ,0:,9 54 3/87/00 ,:00 #4 :.-9
*um
'ays
,789::3:.*ls &alendar ,
8 4on 3/87/00 ,:30 #4 3/87/00 3:30 #4 9.03
8.89 4on 3/87/00 3::9 #4 3/87/00 <:00 #4 9.,8
3 4on 3/87/00 7:00 #4 3/87/00 ,0:00 #4 9.89
8 Tue 3/8?/00 ?:00 54 3/8?/00 ,0:00 54 9.33
8.79 Tue 3/8?/00 ,0:,9 54 3/8?/00 ,:00 #4 9.:9
8 Tue 3/8?/00 ,:30 #4 3/8?/00 3:30 #4 9.93
8.89 Tue 3/8?/00 3::9 #4 3/8?/00 <:00 #4 9.<8
3 Tue 3/8?/00 7:00 #4 3/8?/00 ,0:00 #4 9.79
8 +ed 3/8-/00 ?:00 54 3/8-/00 ,0:00 54 9.?3
8.79 +ed 3/8-/00 ,0:,9 54 3/8-/00 ,:00 #4 9.-9
8 +ed 3/8-/00 ,:30 #4 3/8-/00 3:30 #4 <.03
8.89 +ed 3/8-/00 3::9 #4 3/8-/00 <:00 #4 <.,8
3 +ed 3/8-/00 7:00 #4 3/8-/00 ,0:00 #4 <.89
8 Thu 3/30/00 ?:00 54 3/30/00 ,0:00 54 <.33
8.79 Thu 3/30/00 ,0:,9 54 3/30/00 ,:00 #4 <.:9
8 Thu 3/30/00 ,:30 #4 3/30/00 3:30 #4 <.93
8.89 Thu 3/30/00 3::9 #4 3/30/00 <:00 #4 <.<8
3 Thu 3/30/00 7:00 #4 3/30/00 ,0:00 #4 <.79
8 Fri 3/3,/00 ?:00 54 3/3,/00 ,0:00 54 <.?3
8.79 Fri 3/3,/00 ,0:,9 54 3/3,/00 ,:00 #4 <.-9
8 Fri 3/3,/00 ,:30 #4 3/3,/00 3:30 #4 7.03
8.89 Fri 3/3,/00 3::9 #4 3/3,/00 <:00 #4 7.,8
8 4on :/3/00 ?:00 54 :/3/00 ,0:00 54 7.8,
8.79 4on :/3/00 ,0:,9 54 :/3/00 ,:00 #4 7.38
8 4on :/3/00 ,:30 #4 :/3/00 3:30 #4 7.:,
8.89 4on :/3/00 3::9 #4 :/3/00 <:00 #4 7.9
3 4on :/3/00 7:00 #4 :/3/00 ,0:00 #4 7.<8
8 Tue :/:/00 ?:00 54 :/:/00 ,0:00 54 7.7,
8.79 Tue :/:/00 ,0:,9 54 :/:/00 ,:00 #4 7.?8
8 Tue :/:/00 ,:30 #4 :/:/00 3:30 #4 7.-,
8.89 Tue :/:/00 3::9 #4 :/:/00 <:00 #4 ?
3 Tue :/:/00 7:00 #4 :/:/00 ,0:00 #4 ?.,8
8 +ed :/9/00 ?:00 54 :/9/00 ,0:00 54 ?.8,
8.79 +ed :/9/00 ,0:,9 54 :/9/00 ,:00 #4 ?.38
8 +ed :/9/00 ,:30 #4 :/9/00 3:30 #4 ?.:,
8.89 +ed :/9/00 3::9 #4 :/9/00 <:00 #4 ?.9
3 +ed :/9/00 7:00 #4 :/9/00 ,0:00 #4 ?.<8
8 Thu :/</00 ?:00 54 :/</00 ,0:00 54 ?.7,
8.79 Thu :/</00 ,0:,9 54 :/</00 ,:00 #4 ?.?8
8 Thu :/</00 ,:30 #4 :/</00 3:30 #4 ?.-,
8.89 Thu :/</00 3::9 #4 :/</00 <:00 #4 -
3 Thu :/</00 7:00 #4 :/</00 ,0:00 #4 -.,8
8 Fri :/7/00 ?:00 54 :/7/00 ,0:00 54 -.8,
8.79 Fri :/7/00 ,0:,9 54 :/7/00 ,:00 #4 -.38
8 Fri :/7/00 ,:30 #4 :/7/00 3:30 #4 -.:,
,789::3:.*ls &alendar 8
*alendar Without an E#ening Shift and Early End on a "riday
+ours 'ay Begin End
8 4on 3/,3/00 ?:00 54 3/,3/00 ,0:00 54 0.0?
8.79 4on 3/,3/00 ,0:,9 54 3/,3/00 ,:00 #4 0.8
8 4on 3/,3/00 ,:30 #4 3/,3/00 3:30 #4 0.8?
8.89 4on 3/,3/00 3::9 #4 3/,3/00 <:00 #4 0.37
8 Tue 3/,:/00 ?:00 54 3/,:/00 ,0:00 54 0.:<
8.79 Tue 3/,:/00 ,0:,9 54 3/,:/00 ,:00 #4 0.97
8 Tue 3/,:/00 ,:30 #4 3/,:/00 3:30 #4 0.<<
8.89 Tue 3/,:/00 3::9 #4 3/,:/00 <:00 #4 0.79
8 +ed 3/,9/00 ?:00 54 3/,9/00 ,0:00 54 0.?3
8.79 +ed 3/,9/00 ,0:,9 54 3/,9/00 ,:00 #4 0.-9
8 +ed 3/,9/00 ,:30 #4 3/,9/00 3:30 #4 ,.03
8.89 +ed 3/,9/00 3::9 #4 3/,9/00 <:00 #4 ,.,8
8 Thu 3/,</00 ?:00 54 3/,</00 ,0:00 54 ,.8,
8.79 Thu 3/,</00 ,0:,9 54 3/,</00 ,:00 #4 ,.38
8 Thu 3/,</00 ,:30 #4 3/,</00 3:30 #4 ,.:,
8.89 Thu 3/,</00 3::9 #4 3/,</00 <:00 #4 ,.9
8 Fri 3/,7/00 ?:00 54 3/,7/00 ,0:00 54 ,.9?
8.79 Fri 3/,7/00 ,0:,9 54 3/,7/00 ,:00 #4 ,.7
8 Fri 3/,7/00 ,:30 #4 3/,7/00 3:30 #4 ,.7?
,.89 Fri 3/,7/00 3::9 #4 3/,7/00 9:00 #4 ,.?3
8 4on 3/80/00 ?:00 54 3/80/00 ,0:00 54 ,.-8
8.79 4on 3/80/00 ,0:,9 54 3/80/00 ,:00 #4 8.03
8 4on 3/80/00 ,:30 #4 3/80/00 3:30 #4 8.,,
8.89 4on 3/80/00 3::9 #4 3/80/00 <:00 #4 8.8,
8 Tue 3/8,/00 ?:00 54 3/8,/00 ,0:00 54 8.8-
8.79 Tue 3/8,/00 ,0:,9 54 3/8,/00 ,:00 #4 8.:,
8 Tue 3/8,/00 ,:30 #4 3/8,/00 3:30 #4 8.:-
8.89 Tue 3/8,/00 3::9 #4 3/8,/00 <:00 #4 8.9?
8 +ed 3/88/00 ?:00 54 3/88/00 ,0:00 54 8.<7
8.79 +ed 3/88/00 ,0:,9 54 3/88/00 ,:00 #4 8.7?
8 +ed 3/88/00 ,:30 #4 3/88/00 3:30 #4 8.?<
8.89 +ed 3/88/00 3::9 #4 3/88/00 <:00 #4 8.-<
8 Thu 3/83/00 ?:00 54 3/83/00 ,0:00 54 3.0:
8.79 Thu 3/83/00 ,0:,9 54 3/83/00 ,:00 #4 3.,<
8 Thu 3/83/00 ,:30 #4 3/83/00 3:30 #4 3.8:
8.89 Thu 3/83/00 3::9 #4 3/83/00 <:00 #4 3.33
8 Fri 3/8:/00 ?:00 54 3/8:/00 ,0:00 54 3.:8
8.79 Fri 3/8:/00 ,0:,9 54 3/8:/00 ,:00 #4 3.93
8 Fri 3/8:/00 ,:30 #4 3/8:/00 3:30 #4 3.<,
,.89 Fri 3/8:/00 3::9 #4 3/8:/00 9:00 #4 3.<7
8 4on 3/87/00 ?:00 54 3/87/00 ,0:00 54 3.79
8.79 4on 3/87/00 ,0:,9 54 3/87/00 ,:00 #4 3.?<
8 4on 3/87/00 ,:30 #4 3/87/00 3:30 #4 3.-9
8.89 4on 3/87/00 3::9 #4 3/87/00 <:00 #4 :.0:
8 Tue 3/8?/00 ?:00 54 3/8?/00 ,0:00 54 :.,8
8.79 Tue 3/8?/00 ,0:,9 54 3/8?/00 ,:00 #4 :.8:
8 Tue 3/8?/00 ,:30 #4 3/8?/00 3:30 #4 :.38
8.89 Tue 3/8?/00 3::9 #4 3/8?/00 <:00 #4 :.:8
8 +ed 3/8-/00 ?:00 54 3/8-/00 ,0:00 54 :.9
8.79 +ed 3/8-/00 ,0:,9 54 3/8-/00 ,:00 #4 :.<,
*um
'ays
,789::3:.*ls &alendar 8
8 +ed 3/8-/00 ,:30 #4 3/8-/00 3:30 #4 :.7
8.89 +ed 3/8-/00 3::9 #4 3/8-/00 <:00 #4 :.7-
8 Thu 3/30/00 ?:00 54 3/30/00 ,0:00 54 :.?7
8.79 Thu 3/30/00 ,0:,9 54 3/30/00 ,:00 #4 :.--
8 Thu 3/30/00 ,:30 #4 3/30/00 3:30 #4 9.07
8.89 Thu 3/30/00 3::9 #4 3/30/00 <:00 #4 9.,7
8 Fri 3/3,/00 ?:00 54 3/3,/00 ,0:00 54 9.89
8.79 Fri 3/3,/00 ,0:,9 54 3/3,/00 ,:00 #4 9.3<
8 Fri 3/3,/00 ,:30 #4 3/3,/00 3:30 #4 9.:9
,.89 Fri 3/3,/00 3::9 #4 3/3,/00 9:00 #4 9.9
8 4on :/3/00 ?:00 54 :/3/00 ,0:00 54 9.9?
8.79 4on :/3/00 ,0:,9 54 :/3/00 ,:00 #4 9.7
8 4on :/3/00 ,:30 #4 :/3/00 3:30 #4 9.7?
8.89 4on :/3/00 3::9 #4 :/3/00 <:00 #4 9.?7
8 Tue :/:/00 ?:00 54 :/:/00 ,0:00 54 9.-<
8.79 Tue :/:/00 ,0:,9 54 :/:/00 ,:00 #4 <.07
8 Tue :/:/00 ,:30 #4 :/:/00 3:30 #4 <.,<
8.89 Tue :/:/00 3::9 #4 :/:/00 <:00 #4 <.89
8 +ed :/9/00 ?:00 54 :/9/00 ,0:00 54 <.33
8.79 +ed :/9/00 ,0:,9 54 :/9/00 ,:00 #4 <.:9
8 +ed :/9/00 ,:30 #4 :/9/00 3:30 #4 <.93
8.89 +ed :/9/00 3::9 #4 :/9/00 <:00 #4 <.<8
8 Thu :/</00 ?:00 54 :/</00 ,0:00 54 <.7,
8.79 Thu :/</00 ,0:,9 54 :/</00 ,:00 #4 <.?8
8 Thu :/</00 ,:30 #4 :/</00 3:30 #4 <.-,
8.89 Thu :/</00 3::9 #4 :/</00 <:00 #4 7
8 Fri :/7/00 ?:00 54 :/7/00 ,0:00 54 7.0?
8.79 Fri :/7/00 ,0:,9 54 :/7/00 ,:00 #4 7.8
8 Fri :/7/00 ,:30 #4 :/7/00 3:30 #4 7.8?
,.89 Fri :/7/00 3::9 #4 :/7/00 9:00 #4 7.33
8 4on :/,0/00 ?:00 54 :/,0/00 ,0:00 54 7.:8
8.79 4on :/,0/00 ,0:,9 54 :/,0/00 ,:00 #4 7.93
8 4on :/,0/00 ,:30 #4 :/,0/00 3:30 #4 7.<,
8.89 4on :/,0/00 3::9 #4 :/,0/00 <:00 #4 7.7,
8 Tue :/,,/00 ?:00 54 :/,,/00 ,0:00 54 7.7-
8.79 Tue :/,,/00 ,0:,9 54 :/,,/00 ,:00 #4 7.-,
8 Tue :/,,/00 ,:30 #4 :/,,/00 3:30 #4 7.--
8.89 Tue :/,,/00 3::9 #4 :/,,/00 <:00 #4 ?.0?
8 +ed :/,8/00 ?:00 54 :/,8/00 ,0:00 54 ?.,7
8.79 +ed :/,8/00 ,0:,9 54 :/,8/00 ,:00 #4 ?.8?
8 +ed :/,8/00 ,:30 #4 :/,8/00 3:30 #4 ?.3<
8.89 +ed :/,8/00 3::9 #4 :/,8/00 <:00 #4 ?.:<
8 Thu :/,3/00 ?:00 54 :/,3/00 ,0:00 54 ?.9:
8.79 Thu :/,3/00 ,0:,9 54 :/,3/00 ,:00 #4 ?.<<
8 Thu :/,3/00 ,:30 #4 :/,3/00 3:30 #4 ?.7:
8.89 Thu :/,3/00 3::9 #4 :/,3/00 <:00 #4 ?.?3
8 Fri :/,:/00 ?:00 54 :/,:/00 ,0:00 54 ?.-8
8.79 Fri :/,:/00 ,0:,9 54 :/,:/00 ,:00 #4 -.03
8 Fri :/,:/00 ,:30 #4 :/,:/00 3:30 #4 -.,,
,.89 Fri :/,:/00 3::9 #4 :/,:/00 9:00 #4 -.,7
,789::3:.*ls $e!tion ,3
epetiti#e !roduction and Setups
Units per hour
W7* !roduct W7* 3 W7* 4
, ,.89 #rod 5 ?0 ,:0
8 3.00 #rod B 99 ,09
#rod & 78 ,39
#rod > <9 ,,0
The left hand side of the s!hedule would look like this
W7* Se0 !roduct 9ty 'ays
, , #rod > 800 ,.89 <9 3.0? :.33 0.,?
, 8 #rod B 390 ,.89 99 <.3< 7.<, 0.38
, 3 #rod 5 :90 ,.89 ?0 9.<3 <.?? 0.8-
, : #rod B 300 ,.89 99 9.:9 <.70 0.8?
8 , #rod & ,900 3.00 ,39 ,,.,, ,:.,, 0.9-
8 8 #rod > ,,00 3.00 ,,0 ,0.00 ,3.00 0.9:
GTC//R2#A5,?,BK?:&K-,8B " look up the work !entre, 8nd !olumn
GTC//R2#A&,?,0K?:;K,,,5,?H,B " look up the produ!t, 8nd !olumn for +/& ,, and
3rd !olumn for +/& 8
G>,?/F,? " run hours is (uantity di'ided by units per hour
G0,?H;,? " total hour is set up plus run
$o far we ha'e a!!epted that a 1ob has a duration of say, 7 hours, and we ha'en.t worried about
how the 7 hours has been estimated. Cet.s say the first 1ob is to set up a work !entre and then
produ!e 900 of #rodu!t 5. +ork &entre , is an old ma!hine whi!h runs slowly, but is (ui!k to set
up, and +ork &entre 8 is a new high speed ma!hine, but the set ups take a long time. +e would
des!ribe this in tables like this:
Set up
hours
Set up
hours
Units per
hour
un
hours
Total
+ours
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
,789::3:.*ls $e!tion ,:
( Set)up 6atri8
The set"up times between produ!ts, or produ!t groups is e*pressed in a matri* as follows:
+ork &entre , " minutes +ork &entre 8 " minutes
#
r
o
d

5
#
r
o
d

B
#
r
o
d

&
#
r
o
d

>
#
r
o
d

5
#
r
o
d

B
#
r
o
d

&
#
r
o
d

>
#rod 5 0.00 0.90 0.90 ,.89 #rod 5 0.00 ,.89 ,.89 8.79
#rod B 8.00 0.00 0.79 ,.00 #rod B :.89 0.00 ,.79 8.90
#rod & 8.00 8.00 0.00 0.79 #rod & :.89 :.89 0.00 ,.79
#rod > 8.,0 ,.79 ,.90 0.00 #rod > 9.00 :.90 3.90 0.00
Top%row%, Top%row%8
4atri*%, 4atri*%8
2se the name bo* to the left of the formula bar to see where the named ranges are.
The problem is to retrie'e a set"up time gi'en the following 'alues
+ork &entre ,
#re'ious produ!t #rod >
This #rodu!t #rod B
name of top row Top%row%, GMTop%row%MU>83
name of matri* 4atri*%, GM4atri*%MU>83
position of this produ!t in top row VVV G45T&@A>89,IJ>I30&TAF87BB
look up pre'ious produ!t in matri* VVV GTC//R2#A>8:,IJ>I30&TAF8?B,F8-B
#ut it all together and we get:
GTC//R2#A>8:,IJ>I30&TAM4atri*%MU>83B,45T&@A>89,IJ>I30&TAMTop%row%MU>83BBB
/ften the time it takes to set up a work !entre is dependant on the pre'ious 1ob. For e*ample to
!lean out a mi*er to make white paint, after it has been used to make bla!k paint, will take a long
time, but to !hange to grey paint after making white won.t take as long. $imilar e*amples e*ist in
printing and food pro!essing and with the shut height of presses. In these industries the se(uen!e
of the 1obs will effe!t the amount of time the work !entres are being set up, and therefore the
produ!ti'ity of the work !entres.
In Cotus ,83 there is a handy fun!tion, PIJ>0P for referen!ing a 'alue in a matri*, but in 0*!el we
will do it with a !ombination of G45T&@ and GTC//R2#. First we need to name : ranges with
InsertNJameN>efine:
If we apply this formula to the first produ!t s!heduled on the work !entre, then it won.t work
be!ause there isn.t a pre'ious produ!t. +e will assume that the first produ!t s!heduled on the work
!entre is already running, so the set"up time is ero. +e will test if it is the first produ!t using the
GIF fun!tion.
from
to
from
to
A B C D E F G H I J K L M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
,789::3:.*ls $e!tion ,9
(pplying the Set)up 6atri8 "ormula
@ere is the s!hedule from $e!tion ,3 again, but this time the set"up times are deri'ed from the
matri*es:
W7* Se0 !roduct 9ty 'ays
, , #rod > 800 0.00 <9 3.0? 3.0? 0.,3
, 8 #rod B 390 0rr:908 99 <.3< 0rr:908 0rr:908
, 3 #rod 5 :90 0rr:908 ?0 9.<3 0rr:908 0rr:908
, : #rod B 300 0rr:908 99 9.:9 0rr:908 0rr:908
8 , #rod & ,900 0.00 ,39 ,,.,, ,,.,, 0.:<
8 8 #rod > ,,00 0rr:908 ,,0 ,0.00 0rr:908 0rr:908
Totals: 0rr:908 :,.<3
GIFA57G5<,TC//R2#A&<,IJ>I30&TAM4atri*%MU57B,45T&@A&7,IJ>I30&TAMTop%row%MU57BBB,0B
Try !hanging the se(uen!e numbers and sorting to see if you !an redu!e the total set"up hours
Set)up
hours
Units per
hour
un
hours
Total
+ours
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
,789::3:.*ls $e!tion ,<
.antt *hart 4 ) +ours per 'ay
In the simple ;antt !hart in $e!tion : ea!h time bu!ket is one hour long, and the 1obs fall !on'eniently in or out of a bu!ket
This ;antt !hart shows daily bu!kets, and the number of hours in a day is determined by the !alendar. The start and stop of ea!h
1ob is !ompared with the beginning and end of ea!h day, to determine what portion of the 1ob falls within the day, as follows:
- GIFA5J>AKR3<LCK30,KR3<I4K30B,KR3<"CK30,CK3:B
if the 1ob stops during the day, 1ob stop minus day begin, else hours in the day
- GIFA5J>AK=3<LGCK30,K=3<I4K30B,4K30"K=3<,5?B
if the 1ob starts during the day, day end minus 1ob start, else abo'e
- GIFA5J>AK=3<LGCK30,KR3<I4K30B,K&3<,5,8B
if the 1ob starts and stops within the day, the 1ob hours, else abo'e
- GIFA/3AKR3<IGCK30,K=3<LG4K30B,MM,5,9B
if the 1ob stops before the day begins, or starts after the day ends, blank, else abo'e
The : IF statements abo'e ha'e been MnestedM into one
GATC//R2#A438,.&alendar 8.QK&K9:K0K,,0,3B"K=38BW8:
hours into the s!hedule " !umulati'e day less ,st !umulati'e day, !on'erted to hours
GIJTA038B the midnight before the start of the first 1ob
GTC//R2#AI38,.&alendar 8.Q&<:0,,0,3B look up the !umulati'e days in the !alendar G430"C30
GC38H, pre'ious day plus , hours in the day
0 - ,? 87 39 39 39 :: 93 <8 7, 7- 7- 7- ?? -7 ,0<
$tart of first 1ob: ,:/3 ?:00 54 ,:/3 ,8:00 54 0.37 ,:/3 ,9/3 ,</3 ,7/3 ,?/3 ,-/3 80/3 8,/3 88/3 83/3 8:/3 89/3 8</3 87/3 8?/3 8-/3 30/3
Tue +ed Thu Fri $at $un 4on Tue +ed Thu Fri $at $un 4on Tue +ed
Se0 /o$s +rs Start Stop Start hr Stop hr - - - ? 0 0 - - - - ? 0 0 - - -
, 1ob 5 ,0.9 ,:/3 ?:00 54 ,9/3 -:30 54 0.0 ,0.9 :%; 3%<
8 1ob B ?.0 ,9/3 -:30 54 ,</3 ?:30 54 ,0.9 ,?.9 =%< ;%<
3 1ob & <.9 ,</3 ?:30 54 ,</3 ::00 #4 ,?.9 89.0 >%<
: 1ob > ,<.0 ,</3 ::00 #4 80/3 8::9 #4 89.0 :,.0 4%; ?%; ;%; ;%; >%;
9 1ob 0 8,.9 80/3 8::9 #4 83/3 ?:30 54 :,.0 <8.9 5%; :%; :%; ;%<
< 1ob F 83.0 83/3 ?:30 54 87/3 3:,9 #4 <8.9 ?9.9 ?%< ?%; ;%; ;%; >%<
@ours into the s!hedule:
GR39 start hour is the stop hour of the pre'ious 1ob
G=3<H&3< stop hour is start hour plus 1ob hours
Jote that !olumns F,; and @ !ontaining the !alendar formulas, ha'e been hidden
Cook at FormatN&onditional Formatting to see how the shading is done
&hange the hours or the se(uen!e, then sort, to see how the ;antt !hart responds
Dou !an e*tend the ;antt !hart by !opying a !olumn of formulas and pasting it to the right, and !opying a row and pasting it downwards
/o$
/o$
/o$
/o$
>ay /o$
/o$ >ay
A B C E I J K L M N O P Q R S T U ! " # $ AA AB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
,789::3:.*ls $e!tion ,7
.antt *hart 5 ) Units per 'ay
For repetiti'e produ!tion, you may wish to show the number of units that !an be produ!ed in a day, rather than the number
of hours of a 1ob that falls into ea!h day. The ;antt !hart in $e!tion ,< !an be e*tended to do this, by multiplying the hours
by the units per hour. Cets take a repetiti'e produ!tion s!hedule, as in $e!tion ,9, but with one work !entre:
0 - ,? 87 39 39 39 :: 93 <8 7, 7- 7- 7- ??
$tart of first 1ob: ,:/3 ?:00 54 ,:/3 ,8:00 54 0.37 ,:/3 ,9/3 ,</3 ,7/3 ,?/3 ,-/3 80/3 8,/3 88/3 83/3 8:/3 89/3 8</3 87/3 8?/3
Tue +ed Thu Fri $at $un 4on Tue +ed Thu Fri $at $un 4on
W7* Se0 !roduct 9ty - - - ? 0 0 - - - - ? 0 0 -
8 , #rod > <90 0.00 ,,0 9.-, 9.-, 0.00 9.-, ><;
8 8 #rod B ,800 0rr:908 ,09 ,,.:3 0rr:908 VVV 0rr:908 @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 3 #rod 5 8390 0rr:908 ,:0 ,<.7- 0rr:908 VVV 0rr:908 @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 : #rod B 300 0rr:908 ,09 8.?< 0rr:908 VVV 0rr:908 @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 9 #rod & :900 0rr:908 ,39 33.33 0rr:908 VVV 0rr:908 @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
The stop and start hours for ea!h 1ob are the hours into the s!hedule during whi!h items will a!tually be produ!ed, and e*!lude
the set"up hours.
G=,3H0,: start hour is the stop hour of the pre'ious 1ob plus the set"up hours
GI,:H;,: stop hour is start hour plus run hours
GIFA/3AK=,:IGRK?,KI,:LGCK?B,MM,IFA5J>AKI,:LGRK?,K=,:ICK?B,K;,:,IFA5J>AKI,:LGRK?,KI,:ICK?B,CK?"KI,:,IFA5J>AK=,:LRK?,K=,:ICK?B,K=,:"RK?,RK,8BBBWKF,:B
$ame nested IF formula as in $e!tion ,<, but multiplied by 2nits per @our
This report is useful as a produ!tion target to be issued at the beginning of a week, as it is easy to !ompare a!tual performan!e
against it. In setting a produ!tion target for a day, it takes into a!!ount:
" !alendar hours ea!h day Aprodu!tion is lower on a FridayB
" ea!h produ!t runs at a different speed
" the set"up time depends on the pre'ious produ!t
Set)up
hours
Units per
hour
un
hours
Total
+ours
Start
hr
Stop
hr
A B C D E F G H I J K L M N O P Q R S T U ! " #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
,789::3:.*ls $e!tion ,?
Working +ours Between Two 'ates 1*alendar "ormula 42
Begin End
, 0 0 0 0
8 ? ,0 8 8
3 ,0.89 ,3 8.79 :.79
: ,3.9 ,9.9 8 <.79
9 ,9.79 ,? 8.89 -
< ,- 88 3 ,8
The first - stages of the !al!ulation lo!ate the start on the !alendar, and they are repeated for the stop:
$tart $top
?.9 ,?.9
$tages of the !al!ulation: A?:30 54B A<:30 #4B
?:30 54 is after period 8 begins, A<:30 #4 is after period 9 beginsB 8 9 G45T&@A@80,B,0:B,9B
?:30 54 is after period , ends, A<:30 #4 is after period 9 endsB , 9 G45T&@A@80,&,0:&,9B
?:30 54 A<:30 #4B lies between the beginning and end of period 8, A<B 8 < G@83HA@83G@8:B
period 8 begins at ?:00 54, Aperiod < begins at 7:00 #4B ? ,- GIJ>0PAB,0:B,9,@89,,B
period 8 ends at ,0:00 54, Aperiod < ends at ,0:00 #4B ,0 88 GIJ>0PA&,0:&,9,@89,,B
you !an start at ?:30 54, Astop at 7:00 #4B be!ause it.s within a working period ?.9 ,- G45PA@8<,@80B
the number of hours from the start to the ne*t break ,.9 3 G@87"@8?
!um hours at end of period 8, A,8B 8 ,8 GIJ>0PA0,0:0,9,@89,,B
the start is at !um hour 0.9 of the !alendar, Athe stop is at !um hour -B 0.9 - G@30"@8-
working hours between the $tart and $top, A- " 0.9B ?.9 G@3,";3,
+ith a series of substitutions, the ,- formulas !an be !ondensed into : as follows:
&al! : 8 G45T&@A;80,B,0:B,9BHA45T&@A;80,B,0:B,9BG45T&@A;80,&,0:&,9BB
&al! 9 0.9 GIJ>0PA0,0:0,9,B37,,B"IJ>0PA&,0:&,9,B37,,BH45PAIJ>0PAB,0:B,9,B37,,B,;80B
&al! < < G45T&@A@80,B,0:B,9BHA45T&@A@80,B,0:B,9BG45T&@A@80,&,0:&,9BB
@ours ?.9 GIJ>0PA0,0:0,9,B3-,,B"IJ>0PA&,0:&,9,B3-,,BH45PAIJ>0PAB,0:B,9,B3-,,B,@80B"B3?
The more obser'ant of you may ha'e noti!ed a problem with the last two ;antt !harts. They are fine
as long as the start of the first 1ob !oin!ides with beginning of the day, but if you go to $e!tion ,< and
!hange the start time to, say ,0:00 54, then there are still - hours used on the first day, that !an.t be
right. If the first 1ob starts at ,0:00 54, then the $tart @r of 1ob 5 should be 8, the 8nd hour of the
s!hedule. @owe'er, if the first 1ob starts at 8:00 #4, then that is 9.89 hours into the s!hedule
be!ause a!!ording to &alendar 8 there is a ,9 minute morning break and a 30 min lun!h break in
between.
+hat we need is a formula that takes two points in time and !al!ulates how many working hours
Adays * 8:B there are between the two points. The !al!ulation is 'ery similar to that in $e!tion <:
!eriod
-um$er
Working
+ours
Working
+ours so
far 1*um2
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
,789::3:.*ls $e!tion ,-
(pplying *alendar "ormula 4
@ere is the ;antt &hart from $e!tion ,7 again, but this time it re!ognises that the first 1ob may not start at the beginning of the first day.
$tart of first 1ob: ,:/3 ,0:00 54 ,:/3 ,8:00 54 0.37
0 - ,? 87 39 39 39 :: 93 <8 7, 7- 7- 7- ??
&al! : &al! 9 &al! <
< 0.37 7 ,:/3 ,9/3 ,</3 ,7/3 ,?/3 ,-/3 80/3 8,/3 88/3 83/3 8:/3 89/3 8</3 87/3 8?/3
Tue +ed Thu Fri $at $un 4on Tue +ed Thu Fri $at $un 4on
W7* Se0 !roduct 9ty - - - ? 0 0 - - - - ? 0 0 -
8.00
8 , #rod > <90 0.00 ,,0 9.-, 9.-, 8.00 7.-, ><;
8 8 #rod B ,800 0rr:908 ,09 ,,.:3 0rr:908 0rr:908 VVV @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 3 #rod 5 8390 0rr:908 ,:0 ,<.7- 0rr:908 0rr:908 VVV @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 : #rod B 300 0rr:908 ,09 8.?< 0rr:908 0rr:908 VVV @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
8 9 #rod & :900 0rr:908 ,39 33.33 0rr:908 0rr:908 VVV @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
+orking hours between ,8:00 54 and ,0:00 54
Set)up
hours
Units
per
hour
un
hours
Total
+ours
Start
hr
Stop
hr
,789::3:.*ls $e!tion 80
/o$s That !ass Through 6ultiple Work *entres
$o far we ha'e !onsidered 1obs assigned to +ork &entre , /3 +ork &entre 8, and now we shall look at 1obs that pass through +ork &entre , 5J> T@0J +ork &entre 8. To a'oid
!onfusion lets ha'e +ork &entre < doing the ,st operation on the 1ob, and +ork &entre 7 the 8nd operation.
For the sake of simpli!ity our e*ample will not refer to a !alendar Athe work !entres operate 8: hours a day, 7 days a weekB and we will not allow for set"up times.
Jote the use of a 8: hour time format to fit into narrower !olumns.
sie of time bu!ket in days A? hoursB
0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
$tart of first 1ob: ,:/3 ?:00
,:/3 ,9/3 ,</3 ,7/3
W7* /o$s Op Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< 1ob 5 , 5/, ,- 5/0 VJ/5 3,/,8 0:00 0 ,:/3 ?:00 ,9/3 3:00 ?%; ?%; 5%;
< 1ob B , B/, 88 B/0 VJ/5 3,/,8 0:00 0 ,9/3 3:00 ,</3 ,:00 <%; ?%; ?%; 3%;
< 1ob & , &/, ,7 &/0 VJ/5 3,/,8 0:00 0 ,</3 ,:00 ,</3 ,?:00 =%; ?%; 4%;
7 1ob 5 8 5/8 ? 5/, ,9 ,9/3 3:00 ,- ,9/3 3:00 ,9/3 ,,:00 <%; 5%;
7 1ob B 8 B/8 ,: B/, ,< ,</3 ,:00 ,: ,</3 ,:00 ,</3 ,9:00 =%; =%;
7 1ob & 8 &/8 < &/, ,7 ,</3 ,?:00 3 ,</3 ,?:00 ,7/3 0:00 >%;
? 1ob 5 3 5/3 ,3 5/8 ,? ,9/3 ,,:00 87 ,9/3 ,,:00 ,</3 0:00 <%; ?%;
? 1ob B 3 B/3 ,, B/8 ,- ,</3 ,9:00 ,9 ,</3 ,9:00 ,7/3 8:00 3%; ?%; 4%;
? 1ob & 3 &/3 8, &/8 80 ,7/3 0:00 0 ,7/3 8:00 ,7/3 83:00 >%; ?%; =%;
G3I;@TAB,9,,BUM/MU&,9 " make a uni(ue key to ea!h row by taking the rightmost !hara!ter of the 1ob and !on!atenating it with the operation e.g. 1ob 5/operation ,
G3I;@TAB,9,,BUM/MUA&,9",B " deri'e the pre'ious operation by subtra!ting , from the operation number
G45T&@AF,9,>K,:>K8<,F5C$0B " find the row number of the pre'ious operation by looking down !olumn >
GIFAI$033/3A;,9B,,,IJ>0PARK,:RK8<,;,9,,BB" if ther is no pre'ious op, then put day , A, =an ,-00B, else get the stop of the pre'ious op from !olumn R
GA=,9"IFA5,9G5,:,R,:,K=K,8BBW8: " the number of hours the work !entre has to wait for the pre'ious operation to finish, before it !an start
G45PAIFA5,9G5,:,R,:,K=K,8B,@,9B " the start is later of: if itSs the same work !entre, the stop of the pre'ious 1ob, else the start of the first 1ob, and the stop of the pre'ious operation
G=,9HA0,9/8:B " the stop is the start plus hours !on'erted to days
Jote the gaps while the work !entre waits for the pre'oius operation to finish
/o$7
Op
'ur)
ation
+ours
!re#ious
Op
!re#ious
Op ow
Stop of
!re#ious
Op
Wait
hours
This is a good point to talk about MThe Theory of &onstraintsM, and if you ha'n.t yet read MThe ;oalM by 0li ;oldratt, then you will find it a good introdu!tion to the sub1e!t. #rodu!tion
managers who do not understand the theory of !onstraints, would be!ome an*ious when work !entres 7 and ? are not fully utilised. This kind of s!hedule will help them to understand that in
order to get the work out of the door, they should only worry about the utilisation of a work !entre while it is a !onstraint, and in this e*ample, they should fo!us their attention on work !entre
< for the first two and a half days, and on work !entre ? for the last day and a half.
A B C D E F G H I J K L M N O P Q R S T U ! " #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
,789::3:.*ls $e!tion 8,
epetiti#e !roduction that !asses Through 6ultiple Work *entres
0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $tart of first 1ob: ,:/3 ::00
,:/3 ,9/3 ,</3 ,7/3
W7* Op 9ty Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< prod 5 , 5/, ,900 <9 83., 5/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,:/3 ::00 ,9/3 3:0: <9 4>; <4; <4; 4;;
< prod B , B/, 8800 <0 3<.7 B/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,9/3 3:0: ,</3 ,9::: <0 4:< A?; A?; A?; A><
< prod & , &/, ,-00 79 89.3 &/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,</3 ,9::: ,7/3 ,7:0: 79 3: >;; >;; >;; ?3
7 prod 5 8 5/8 ,900 ,09 ,:.3 5/, ,: ,:/3 9:00 ,9/3 ::0: ,.0 ,:/3 9:00 ,9/3 ::0: <9 3:< <4; <4; 4><
7 prod B 8 B/8 8800 -9 83.8 B/, ,9 ,9/3 ::0: ,</3 ,<::: 0.0 ,9/3 ::0: ,</3 ,<::: <0 45< A?; A?; A?; A?; A<
7 prod & 8 &/8 ,-00 ,,0 ,7.3 &/, ,< ,</3 ,<::: ,7/3 ,?:0: 0.0 ,</3 ,<::: ,7/3 ,?:0: 79 <AA >;; >;; 3<>
? prod 5 3 5/3 ,900 ?0 ,?.? 5/8 ,7 ,:/3 <:00 ,9/3 9:0: 8.0 ,:/3 <:00 ,9/3 9:0: <9 35; <4; <4; 55;
? prod B 3 B/3 8800 ?9 89.- B/8 ,? ,9/3 9:0: ,</3 ,7::: 0.0 ,9/3 9:0: ,</3 ,7::: <0 3=< A?; A?; A?; A?; 3;<
? prod & 3 &/3 ,-00 -9 80.0 &/8 ,- ,</3 ,7::: ,7/3 ,-:0: 0.0 ,</3 ,7::: ,7/3 ,-:0: 79 A>: >;; >;; 453
GIFAI$033/3AI88B,0,IJ>0PA4K,:4K89,I88,,BHA0K,,/8:BB " find the start of the pre'ious operation in !olumn 4, and add , hour
G45PAIFA588G58,,J8,,K4K,,B,=88B " the start is later of: if itSs the same work !entre, the stop of the pre'ious 1ob, else the start of the first 1ob, and the start of the pre'ious operation
G45PA488HA;88/8:B,R88B " the stop is the later of: the start plus the hours, and the stop of the pre'ious operation
G088/AJ88"488B/8: " (uantity di'ided by the stop minus the start
5lthough the se!ond operation !an start , hour after the first, it is faster and will (ui!kly !at!h up. +ork &entre 7 will then keep stopping to wait for produ!ts from the slower +ork &entre <,
and that is why the effe!ti'e speed in units per hour is so mu!h less than the rated speed. This is a typi!al M#2$@M s!hedule, but we dis!uss an alternati'e approa!h in later se!tions.
In the e*ample in $e!tion 80, the ,st operation of a 1ob had to be !omplete before the se!ond operation !ould start. @owe'er if the 1ob is to manufa!ture 9000 units, then often you don.t ha'e to wait for all of them to ha'e gone
through the ,st operation before you start the 8nd operation. +hen the first transfer bat!h Apallet load or bin fullB of the produ!t has !ome off the ,st work !entre, it !an be passed to the se!ond work !entre for the se!ond
operation to start while the produ!t is still going through the ,st work !entre.
5 similar prin!iple will apply at the end of the produ!tion run, when the last transfer bat!h Aor part bat!hB of produ!t !omes off the first operation it will 1oin a (ueue at the se!ond operation. @owe'er if the se!ond operation is
faster Aas in this e*ampleB, then the first operation will stop, the transfer bat!h will be passed to the se!ond operation, whi!h will then stop after the transfer bat!h has been !ompleted.
The rule that defines how long after the ,st operation the 8nd operation !an start and stop, should be stated as the number of units in the transfer bat!h, but for the sake of simpli!ity, we will define it here as the time whi!h the
start and stop, of the ne*t operation, lags behind the pre'ious operation:
!rodu
ct
!rod7
Op
Units per
+our
'ur)
ation
+ours
!re#ious
Op
!re#ious
Op ow
Start of
!re#ious
Op
Stop of
!re#ious
Op
Wait
hours
Effecti#e
Units per
+our
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
,789::3:.*ls $e!tion 88
Transfer Batches
Try !hanging the transfer bat!h sies here and see what effe!t is has on the stop time of the last operation.
prod 5 ?0
prod B 90
prod & ,00
0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
Time to transfer a bat!h between work !entres: 9 minutes $tart of first 1ob: ,:/3 ::00
,:/3 ,9/3 ,</3 ,7/3
W7* Op !rod7Op 9ty Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00VVV
< prod 5 , 5/, ,900 <9 83., 5/0 VJ/5 ?0 0.0 <0 ,.0 30/,8 0:00 30/,8 0:00 0.0 ,:/3 ::00 ,9/3 3:0: <9 4>; <4; <4; 4;;
< prod B , B/, 8800 <0 3<.7 B/0 VJ/5 90 0.0 90 0.- 30/,8 0:00 30/,8 0:00 0.0 ,9/3 3:0: ,</3 ,9::: <0 4:< A?; A?; A?; A><
< prod & , &/, ,-00 79 89.3 &/0 VJ/5 ,00 0.0 ,00 ,.: 30/,8 0:00 30/,8 0:00 0.0 ,</3 ,9::: ,7/3 ,7:0: 79 3: >;; >;; >;; ?3
7 prod 5 8 5/8 ,900 ,09 ,:.3 5/, ,: ?0 ,.3 <0 0.7 ,:/3 9:,? ,9/3 3::3 ,.3 ,:/3 9:,? ,9/3 3::3 <7 3?; <5< <5< 4<;
7 prod B 8 B/8 8800 -9 83.8 B/, ,9 90 0.- 90 0.< ,9/3 3:9- ,</3 ,<:8, 0.3 ,9/3 3:9- ,</3 ,<:8, <, 4A4 A?A A?A A?A A?A 43
7 prod & 8 &/8 ,-00 ,,0 ,7.3 &/, ,< ,00 ,.: ,00 ,.0 ,</3 ,7:0- ,7/3 ,?:0: 0.? ,</3 ,7:0- ,7/3 ,?:0: 7< <44 >3; >3; 3<?
? prod 5 3 5/3 ,900 ?0 ,?.? 5/8 ,7 ?0 0.? <0 0.? ,:/3 <:0- ,9/3 ::33 8.8 ,:/3 <:0- ,9/3 ::33 <7 345 <5> <5> 5;>
? prod B 3 B/3 8800 ?9 89.- B/8 ,? 90 0.< 90 0.7 ,9/3 ::3< ,</3 ,7:0, 0.0 ,9/3 ::3< ,</3 ,7:0, <0 4;< A?5 A?5 A?5 A?5 >4
? prod & 3 &/3 ,-00 -9 80.0 &/8 ,- ,00 ,.0 ,00 ,., ,</3 ,?:0- ,7/3 ,-:,8 ,., ,</3 ,?:0- ,7/3 ,-:,8 7< AA5 >;= >;= 4A5
GTC//R2#AB88,KBK7:K>K-,3B " look up the transfer bat!h sie for the produ!t from the table
GIFAI$033/3AI88B,0,A=88/IJ>0PAFK,:FK89,I88,,BBHA;K,,/<0BB " if there is a pre'ious bat!h, find the speed in !olumn F, and use it to !al!ulate the time to produ!e the first bat!h, then add the transfer time, to get the Cag in hours
GIFA4/>A088,=88B,4/>A088,=88B,=88B " the last bat!h is the remainder after di'iding the (uantity by the bat!h sie, if there is one, else return the bat!h sie
GA;K,,/<0BHAC88/F88B " the transfer time plus the bat!h sie di'ided by the units per hour, to get the Cag in hours
GIFAI$033/3AI88B,0,IJ>0PAXK,:XK89,I88,,BHAR88/8:BB " the start of the pre'ious operation plus the time of the first bat!h
GIFAI$033/3AI88B,0,IJ>0PA3K,:3K89,I88,,BHA488/8:BB " the stop of the pre'ious operation, plus the time of the last bat!h
In $e!tion 8, we assumed that the ne*t operation starts and stops P hours after the pre'ious operation starts and stops. In this e*ample we use more sophisti!ated !al!ulations. 0a!h produ!t has a different transfer bat!h sie. The first transfer bat!h emerges from the
pre'ious operation after a time determined by the units per hour of the pre'ious operation. It then takes P minutes to transfer the bat!h to the ne*t work !entre, so that the ne*t operation !an start. If the (uantity to be produ!ed is not a multiple of the transfer bat!h sie, then
the last bat!h will be smaller. The pre'ious operation will stop, and the last bat!h will take P minutes to be transferred to the ne*t work !entre, where is will pass through the ne*t operation after a time determined by the units per hour of the ne*t operation.
Batch
siBe
!roduc
t
Units
per +our
'ur)
ation
+ours
!re#ious
Op
!re#ious
Op ow
Batch
siBe
3 st
Batch
,ag
,ast
Batch
SiBe
,ast
Batch
,ag
Start of
!re#ious
Op
Stop of
!re#ious
Op
Wait
hours
Effecti#e
Units per
+our
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB AC AD AE AF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
,789::3:.*ls $e!tion 83
e)Using !arts of the *alendar "ormulas
" in !olumn =, the lag duration is added to the start of the pre'ious operation
" in !olumn R, the lag duration is added to the stop of the pre'ious operation
" in !olumn J, the operation duration is added to the start
@ere is an e*ample of the !alendar formulas applied to two durations from the same start:
+ours 'ays Start *alc3 *alc4 *alc5 Stop
7 0.8- ,9/3 -:30 - 0.?, ,8 ,9/3 ,7:30
, 0.0: ,9/3 -:30 - 0.?, ,0 ,9/3 ,0::9
+ours 3 'ays 3 Start *alc3 *alc4 *alc5 Stop 3 +ours 4 'ays 4 *alcA
7 0.8- ,9/3 -:30 - 0.?, ,8 ,9/3 ,7:30 , 0.0: ,0
Jote how these formulas refer ba!k to &al!8
G45T&@A0,-HI,-,.&alendar 8.QK0K<:K0K,00BH,
GIJ>0PA.&alendar 8.QK>K<:K>K,00,=,-,,B"IJ>0PA.&alendar 8.QK0K<:K0K,00,=,-,,BH0,-HI,-
+ours 'ays Start *alc3 *alc4 *alc5 Stop
7 0.8- ,9/3 -:30 - 0.?, ,8 ,9/3 ,7:30
, 0.0: ,</3 ,<:,9 ,< ,.:3 ,< ,</3 ,7:,9
+orking hours between the two start dates: ,:.79 GA03,"030BW8:
In the ne*t $e!tion we will apply the !alendar formulas to the s!hedule in $e!tion 8,, but before we do,
lets look more !losely at the formulas. Dou will noti!e that in $e!tion 8, a duration is added to a start or
stop, in three pla!es:
&al!, and &al!8 lo!ate the start in the !alendar and return the same 'alues on ea!h row, whereas &al!3
and $top use the duration in days. $o we !ould re"use &al!, and &al!8 as follows:
Dou !an also re"use the formulas when applying &alendar Formulas 8 A$e!tion ,?B, to !al!ulate the
working hours between two dates, as &al!, and &al!8 are also !ommon to this !al!ulation:
" the differen!e between the results of the two &al!8 formulas is the result in days, then multiply by 8: to
get hours
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
,789::3:.*ls $e!tion 83
Stop 4
,9/3 ,0::9
In the ne*t $e!tion we will apply the !alendar formulas to the s!hedule in $e!tion 8,, but before we do,
lets look more !losely at the formulas. Dou will noti!e that in $e!tion 8, a duration is added to a start or
&al!, and &al!8 lo!ate the start in the !alendar and return the same 'alues on ea!h row, whereas &al!3
and $top use the duration in days. $o we !ould re"use &al!, and &al!8 as follows:
Dou !an also re"use the formulas when applying &alendar Formulas 8 A$e!tion ,?B, to !al!ulate the
working hours between two dates, as &al!, and &al!8 are also !ommon to this !al!ulation:
" the differen!e between the results of the two &al!8 formulas is the result in days, then multiply by 8: to
K
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
,789::3:.*ls $e!tion 8:
epetiti#e !roduction Through 6ultiple Work *entres& With *alendars
@ere is the s!hedule from $e!tion 8, with different !alendars assigned to the work !entres, and the !alendar !al!ulations applied in 3 pla!es:
" the ,st !al!ulations take the stop of the pre'ious operation and apply the lag duration, using the !alendar of the ne*t operation
" the 8nd !al!ulations apply the operation duration to the start
" the 3rd !al!ulations take the start again, re"use &al!: and &al!9, and apply the lag duration, the result is then found by the ne*t operation in !olumn C
W7* *alendar
< &alendar 8
7 &alendar ,
? &alendar 8
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $tart of first 1ob: ,:/3 <:00
3st calendar calculations 4nd calendar calculations
W7* *alendar Op 9ty 'ays *alc3 *alc4 *alc5 Start *alcA *alc< *alc> Stop *alc= Start C,ag
< &alendar 8 prod 5 , 5/, ,900 ?? ,7.09 0.7, 5/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,:/3 <:00 < 0.37 ,3 ,9/3 ,7:08 < ,:/3 -:00
< &alendar 8 prod B , B/, 8800 ,3? ,9.-: 0.<< B/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,9/3 ,7:08 ,3 ,.0- 80 ,7/3 ,:::: ,: ,</3 ?:08
< &alendar 8 prod & , &/, ,-00 83? 7.-? 0.33 &/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,7/3 ,:::: 80 ,.79 8: 80/3 ,:::3 8, ,7/3 ,9:9-
7 &alendar , prod 5 8 5/8 ,900 ,?? 7.-? 0.33 5/, ,- ,:/3 -:00 ,9/3 ,7:08 ,9 ,.3: ,< ,9/3 ,-:08 ,:/3 -:00 7 0.9: ,0 ,9/3 ,-:08 ? ,:/3 ,0:,9
7 &alendar , prod B 8 B/8 8800 <9 33.?9 ,.:, B/, 80 ,</3 ?:08 ,7/3 ,:::: 8: 8.89 89 ,7/3 ,9:9- ,</3 ?:08 ,7 ,.9 3, 8,/3 ?:93 ,7 ,</3 -:08
7 &alendar , prod & 8 &/8 ,-00 ,-0 ,0 0.:8 &/, 8, ,7/3 ,9:9- 80/3 ,:::3 8? 8.<8 8- 80/3 ,9:9? 8,/3 ?:93 3, 8.-, 39 8,/3 80:93 3, 8,/3 -:93
? &alendar 8 prod 5 3 5/3 ,900 90 30 ,.89 5/8 88 ,:/3 ,0:,9 ,9/3 ,-:08 ,: ,.,8 ,: ,</3 -:00 ,:/3 ,0:,9 7 0.:< 80 ,7/3 ,3::9 7 ,:/3 ,,:,9
? &alendar 8 prod B 3 B/3 8800 870 ?.,9 0.3: B/8 83 ,</3 -:08 8,/3 ?:93 8< 8.89 8< 8,/3 -:93 ,7/3 ,3::9 80 ,.7, 8: 8,/3 -:93 80 ,7/3 ,:::9
? &alendar 8 prod & 3 &/3 ,-00 ,0< ,7.-8 0.79 &/8 8: 8,/3 -:93 8,/3 80:93 30 8.9? 30 88/3 -:00 8,/3 -:93 8< 8.8- 3: 83/3 -::? 87 8,/3 ,,:0?
5rd calendar
calculations
!rod)
uct
!rod7
Op
Units
per
+our
'ur)
ation
+ours
!re#
Op
!re#
Op
ow
Start of
!re# Op
C,ag
Stop of
!re# Op
Stop of
!re# Op
C,ag
,789::3:.*ls $e!tion 89
( !ull Schedule
Cet.s go ba!k to the 'ery simple s!hedule in $e!tion 8. It says:
MIf I start now Aat hour eroB, when will the last 1ob stopOM
To turn it into a pull s!hedule, it should say:
MIf all the 1obs are re(uired in 8 days Aat hour :?B, when do I need to startM
The answer , of !ourse, is hour ,8:
=obs re(uired at hour: :?
/o$s +ours Start Stop
1ob 5 7 ,8 ,-
1ob B 9 ,- 8:
1ob & : 8: 8?
1ob > ,8 8? :0
1ob 0 ? :0 :?
G080"&80 " the start is the stop minus the hours
GIFAI$BC5JRA>8,B,K0K,3,>8,B " if there isn.t a ne*t 1ob, stop at the re(uired hour, else stop when
the ne*t 1ob starts
Dou !an see that ea!h 1ob is dependant on the one after it, and time !as!ades upwards.
+hat if we now !hanged the (uestion to:
MIf all the 1obs are re(uired in , day Aat hour 8:B, when do I need to startM
MIf I start now Aat hour eroB, when will the last 1ob stopOM
+hat is needed is a s!hedule that will handle both push and pull logi!, and apply the appropriate one.
&hange the M=obs re(uired at hourM from :? to 8:, and you will see that we would need to ha'e started
at hour ",8, half a day ago. In this !ase the nature of the (uestion !hanges, and re'erts ba!k to the
push (uestion:
A B C D E F G H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
,789::3:.*ls $e!tion 89
" if there isn.t a ne*t 1ob, stop at the re(uired hour, else stop when
+hat is needed is a s!hedule that will handle both push and pull logi!, and apply the appropriate one.
&hange the M=obs re(uired at hourM from :? to 8:, and you will see that we would need to ha'e started
at hour ",8, half a day ago. In this !ase the nature of the (uestion !hanges, and re'erts ba!k to the
I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
,789::3:.*ls $e!tion 8<
!ush and !ull Schedule
=obs re(uired at hour: 38
!ush !ull (pply
/o$s +ours Start Stop Start Stop Start Stop
1ob 5 7 0 7 ": 3 0 7
1ob B 9 7 ,8 3 ? 7 ,8
1ob & : ,8 ,< ? ,8 ,8 ,<
1ob > ,8 ,< 8? ,8 8: ,< 8?
1ob 0 ? 8? 3< 8: 38 8? 3<
GIFAFK,8I0,>,8,F,8B " if the start of the first 1ob on the pull s!hedule is "'e, apply the push
s!hedule, else apply the pull s!hedule.
@ere is the push logi! from $e!tion 8 along side the pull logi! from $e!tion 89. By testing the ,st start
of the pull, it de!ides whi!h of the two to apply:
Dou will noti!e that the push logi! adds the hours to get the stop, whereas the pull logi! works
ba!kwards, and subtra!ts the hours to get the start. If we want to work through a !alendar, then we
need a formula that will work ba!kwards.
A B C D E F G H I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
,789::3:.*ls $e!tion 87
Working Backwards Through a *alendar 1*alendar "ormula 52
Begin End
, 0 0 0 0
8 ? ,0 8 8
3 ,0.89 ,3 8.79 :.79
: ,3.9 ,9.9 8 <.79
9 ,9.79 ,? 8.89 -
< ,- 88 3 ,8
=ob stops at: ,?.9 A<:30 #4B
;o ba!k: ?.9 hours
$tages of the !al!ulation:
<:30 #4 is after period 9 begins 9 G45T&@A0,<,B-:B,:B
<:30 #4 is after period 9 ends 9 G45T&@A0,<,&-:&,:B
<:30 #4 lies between the beginning and end of period < < G;8,HA;8,G;88B
period < begins at 7:00 #4 ,- GIJ>0PAB-:B,:,;83,,B
period < ends at ,0:00 #4 88 GIJ>0PA&-:&,:,;83,,B
you !an stop the 1ob at 7:00 #4 be!ause it is within a working period ,- G45PA;8:,0,<B
the number of hours from the stop of the 1ob to the ne*t break 3 G;89";8<
!um hours at end of period ,8 ,8 GIJ>0PA0-:0,:,;83,,B
the 1ob stops at !um hour - of the !alendar - G;8?";87
the 1ob starts at !um hour 0.9 of the !alendar 0.9
the 1ob starts during period 8 8 G45T&@A;30,0-:0,:BH,
period 8 ends 8 working hours into the !alendar 8 GIJ>0PA0-:0,:,;3,,,B
period 8 ends at hour ,0 A,0:00 54B ,0 GIJ>0PA&-:&,:,;3,,,B
the 1ob will start ,.9 hours before period 8 ends ,.9 G;38";30
the 1ob will start at hour ?.9 A?:30 54B ?.9 G;33";3:
&@5J;0 T@I$ F3/4 5 H T/ 5 "
+ith a series of substitutions, the ,9 formulas !an be !ondensed into : as follows:
&al!, < G45T&@A0,<,B-:B,:BHA45T&@A0,<,B-:B,:BG45T&@A0,<,&-:&,:BB
&al!8 - GIJ>0PA0-:0,:,B:,,,B"AIJ>0PA&-:&,:,B:,,,B"45PAIJ>0PAB-:B,:,B:,,,B,0,<BB
&al!3 8
=ob $top ?.9
To make a pull s!hedule that works through a !alendar, we will need a formula that works ba!kwards, or
upwards through the !alendar. ;i'en a 1ob stop and working hours, when will I need to start. @ere is the
de'elopment of the formula from $e!tion <, and it !an be modified by !hanging 1ust one sign.
!eriod
-um$er
Working
+ours
Working
+ours so far
1*um2
G;8-)0,7
G45T&@AB:8)0,7,0-:0,:BH,
GIJ>0PA&-:&,:,B:3,,B"IJ>0PA0-:0,:,B:3,,BHB:8)0,7
A B C D E F G H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
,789::3:.*ls $e!tion 8?
(pplying *alendar "ormula 5 to a !ull Schedule
$top of last =ob: 3/,7/00 ?:30 54
Se0 /o$s +ours 'ays Stop *alc3 *alc4 *alc5 Start
, 1ob 5 7 0.8- 3/,:/00 ::30 #4 ,0 0.?, 7 3/,:/00 ?:30 54
8 1ob & : 0.,7 3/,:/00 -:30 #4 ,, 0.-? ,0 3/,:/00 ::30 #4
3 1ob > 9 0.8, 3/,9/00 ,8::9 #4 ,3 ,.,- ,, 3/,:/00 -:30 #4
: 1ob 0 ? 0.33 3/,</00 ?:30 54 ,7 ,.98 ,3 3/,9/00 ,8::9 #4
9 1ob B ,8 0.9 3/,7/00 ?:30 54 88 8.08 ,7 3/,</00 ?:30 54
@ere is the s!hedule from $e!tion - again, but this time it works ba!kwards from the stop of the last
1ob.
G45T&@A;,:">,:,.$e!tion ?.QK0K,0:K0K3-BH,
GIJ>0PA.$e!tion ?.QK>K,0:K>K3-,@,:,,B"IJ>0PA.$e!tion ?.QK0K,0:K0K3-,@,:,,BH;,:">,:
Jote that the !alendar formulas are the same as the push s!hedule, e*!ept that the days in !olumn >
are subra!ted instead of added.
A B C D E F G H I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
,789::3:.*ls $e!tion 8?
@ere is the s!hedule from $e!tion - again, but this time it works ba!kwards from the stop of the last
GIJ>0PA.$e!tion ?.QK>K,0:K>K3-,@,:,,B"IJ>0PA.$e!tion ?.QK0K,0:K0K3-,@,:,,BH;,:">,:
Jote that the !alendar formulas are the same as the push s!hedule, e*!ept that the days in !olumn >
J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
,789::3:.*ls $e!tion 8-
6ultiple Work *entre ) !ull Schedule
!US+ S*+E'U,E: 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
$tart of first 1ob: ,:/3 ?:00
,:/3 ,9/3 ,</3 ,7/3
W7* /o$s Op /o$7Op +ours Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< 1ob 5 , 5/, ,- 5/0 VJ/5 3,/,8 0:00 0 ,:/3 ?:00 ,9/3 3:00 ?%; ?%; 5%;
< 1ob B , B/, 88 B/0 VJ/5 3,/,8 0:00 0 ,9/3 3:00 ,</3 ,:00 <%; ?%; ?%; 3%;
< 1ob & , &/, ,7 &/0 VJ/5 3,/,8 0:00 0 ,</3 ,:00 ,</3 ,?:00 =%; ?%; 4%;
7 1ob 5 8 5/8 ? 5/, - ,9/3 3:00 ,- ,9/3 3:00 ,9/3 ,,:00 <%; 5%;
7 1ob B 8 B/8 ,: B/, ,0 ,</3 ,:00 ,: ,</3 ,:00 ,</3 ,9:00 =%; =%;
7 1ob & 8 &/8 < &/, ,, ,</3 ,?:00 3 ,</3 ,?:00 ,7/3 0:00 >%;
? 1ob 5 3 5/3 ,3 5/8 ,8 ,9/3 ,,:00 87 ,9/3 ,,:00 ,</3 0:00 <%; ?%;
? 1ob B 3 B/3 ,, B/8 ,3 ,</3 ,9:00 ,9 ,</3 ,9:00 ,7/3 8:00 3%; ?%; 4%;
? 1ob & 3 &/3 8, &/8 ,: ,7/3 0:00 0 ,7/3 8:00 ,7/3 83:00 >%; ?%; =%;
!U,, S*+E'U,E: 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
$top of last 1ob: ,7/3 83:00
,3/3 ,:/3 ,9/3 ,</3
W7* /o$s Op /o$7Op +ours -e8t Op Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< 1ob 5 , 5/, ,- 5/8 8< ,9/3 ,7:00 0 ,:/3 ?:00 ,9/3 3:00 ?%; ?%; 5%;
< 1ob B , B/, 88 B/8 87 ,</3 ,:00 0 ,9/3 3:00 ,</3 ,:00 <%; ?%; ?%; 3%;
< 1ob & , &/, ,7 &/8 8? ,</3 80:00 8 ,</3 3:00 ,</3 80:00 <%; ?%; A%;
7 1ob 5 8 5/8 ? 5/3 8- ,</3 8:00 0 ,9/3 ,7:00 ,</3 ,:00 =%; 3%;
7 1ob B 8 B/8 ,: B/3 30 ,</3 ,9:00 0 ,</3 ,:00 ,</3 ,9:00 =%; =%;
7 1ob & 8 &/8 < &/3 3, ,7/3 8:00 9 ,</3 80:00 ,7/3 8:00 A%; 4%;
? 1ob 5 3 5/3 ,3 5/: VJ/5 ,7/3 83:00 0 ,</3 8:00 ,</3 ,9:00 >%; =%;
? 1ob B 3 B/3 ,, B/: VJ/5 ,7/3 83:00 0 ,</3 ,9:00 ,7/3 8:00 3%; ?%; 4%;
? 1ob & 3 &/3 8, &/: VJ/5 ,7/3 83:00 0 ,7/3 8:00 ,7/3 83:00 >%; ?%; =%;
GR3,"A03,/8:B " the start is the stop minus the hours
G4IJAIFA53,G538,=38,K=K80B,@3,B " the stop is the earlier of: if itSs the same work !entre, the start of the ne*t 1ob, else the stop of the last 1ob, and the start of the ne*t operation
5lthough the first start and the last stop is the same on both s!hedules, the work !entres spend less time waiting between 1obs on the pull s!hedule.
To e*amine pull s!heduling logi! further we ha'e repeated the push s!hedule in $e!tion 80, and !ompared it with a pull 'ersion of the same s!hedule. The pull s!hedule works
ba!kwards from the stop of the last 1ob, and ea!h 1ob will be dependent on the ne*t 1ob on the work !entre, and the ne*t operation on the 1ob.
!re#ious
Op
!re#ious
Op ow
Stop of
!re#ious
Op
Wait
hours
-e8t Op
ow
Start of
-e8t Op
Wait
hours
A B C D E F G H I J K L M N O P Q R S T U ! "
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
,789::3:.*ls $e!tion 30
epetiti#e !roduction Through 6ultiple Work *entres ) !ull Schedule
!US+ S*+E'U,E: 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $tart of first 1ob: ,:/3 ::00
,:/3 ,9/3 ,</3 ,7/3
W7* !roduct Op !rod7Op 9ty +ours Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< prod 5 , 5/, ,900 <9 83., 5/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,:/3 ::00 ,9/3 3:0: <9 4>; <4; <4; 4;;
< prod B , B/, 8800 <0 3<.7 B/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,9/3 3:0: ,</3 ,9::: <0 4:< A?; A?; A?; A><
< prod & , &/, ,-00 79 89.3 &/0 VJ/5 30/,8 0:00 30/,8 0:00 0.0 ,</3 ,9::: ,7/3 ,7:0: 79 3: >;; >;; >;; ?3
7 prod 5 8 5/8 ,900 ,09 ,:.3 5/, - ,:/3 9:00 ,9/3 ::0: ,.0 ,:/3 9:00 ,9/3 ::0: <9 3:< <4; <4; 4><
7 prod B 8 B/8 8800 -9 83.8 B/, ,0 ,9/3 ::0: ,</3 ,<::: 0.0 ,9/3 ::0: ,</3 ,<::: <0 45< A?; A?; A?; A?; A<
7 prod & 8 &/8 ,-00 ,,0 ,7.3 &/, ,, ,</3 ,<::: ,7/3 ,?:0: 0.0 ,</3 ,<::: ,7/3 ,?:0: 79 <AA >;; >;; 3<>
? prod 5 3 5/3 ,900 ?0 ,?.? 5/8 ,8 ,:/3 <:00 ,9/3 9:0: 8.0 ,:/3 <:00 ,9/3 9:0: <9 35; <4; <4; 55;
? prod B 3 B/3 8800 ?9 89.- B/8 ,3 ,9/3 9:0: ,</3 ,7::: 0.0 ,9/3 9:0: ,</3 ,7::: <0 3=< A?; A?; A?; A?; 3;<
? prod & 3 &/3 ,-00 -9 80.0 &/8 ,: ,</3 ,7::: ,7/3 ,-:0: 0.0 ,</3 ,7::: ,7/3 ,-:0: 79 A>: >;; >;; 453
!U,, S*+E'U,E: 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $top of last 1ob: ,7/3 ,-:0:
,:/3 ,9/3 ,</3 ,7/3
W7* !roduct Op !rod7Op 9ty +ours -e8t Op Start Stop 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00 ?:00 ,<:00 0:00
< prod 5 , 5/, ,900 <9 83., 5/8 8< ,9/3 0:8< ,9/3 ,-:,, 0.0 ,:/3 ::00 ,9/3 3:0: <9 4>; <4; <4; 4;;
< prod B , B/, 8800 <0 3<.7 B/8 87 ,9/3 ,-:,, ,</3 8,:0: 0.0 ,9/3 3:0: ,</3 ,9::: <0 4:< A?; A?; A?; A><
< prod & , &/, ,-00 79 89.3 &/8 8? ,</3 8,:0: ,7/3 ,7:0: 0.0 ,</3 ,9::: ,7/3 ,7:0: 79 3: >;; >;; >;; ?3
7 prod 5 8 5/8 ,900 ,09 ,:.3 5/3 8- ,9/3 ,:8< ,9/3 80:,, 0.0 ,9/3 ,:8< ,9/3 80:,, ?0 <4A >A; 55>
7 prod B 8 B/8 8800 -9 83.8 B/3 30 ,9/3 80:,, ,</3 88:0: 0.0 ,9/3 80:,, ,</3 88:0: ?9 545 >?; >?; <3=
7 prod & 8 &/8 ,-00 ,,0 ,7.3 &/3 3, ,</3 88:0: ,7/3 ,?:0: 0.0 ,</3 88:0: ,7/3 ,?:0: -9 3?5 =>; =>; 3:=
? prod 5 3 5/3 ,900 ?0 ,?.? 5/: VJ/5 ,7/3 ,-:0: ,7/3 ,-:0: 0.0 ,9/3 8:8< ,9/3 8,:,, ?0 AAA >A; A3>
? prod B 3 B/3 8800 ?9 89.- B/: VJ/5 ,7/3 ,-:0: ,7/3 ,-:0: 0.0 ,9/3 8,:,, ,</3 83:0: ?9 45? >?; >?; >;4
? prod & 3 &/3 ,-00 -9 80.0 &/: VJ/5 ,7/3 ,-:0: ,7/3 ,-:0: 0.0 ,</3 83:0: ,7/3 ,-:0: -9 ?? =>; =>; 4:4
G4IJAJ3,"A;3,/8:B,=3,B " the start is: the earlier of the stop minus the hours, and one hour before the start of the ne*t operation
GIFA53,G538,438,R3,B " the stop is: the start of the ne*t 1ob on the work !entre, if there is one, else the stop of the ne*t operation on the 1ob.
5gain the entire s!hedule stops and starts at the same times, but the work !entres don.t start until they need to, and the effe!ti'e run rates, in units per hour, are higher.
@ere is the s!hedule from $e!tion 8, whi!h introdu!ed the !on!ept of repetiti'e produ!tion, and se(uential operations being undertaken, on a produ!t, at t he same time. 5gain we will !ompare it with a pull 'ersion of the same
s!hedule.
Units
per
+our
!re#ious
Op
!re#ious
Op ow
Start of
!re#ious
Op C,ag
Stop of
!re#ious
Op C,ag
Wait
hours
Effecti#e
Units per
+our
Units
per
+our
-e8t Op
ow
Start of
-e8t Op
),ag
Stop of
-e8t Op
),ag
Wait
hours
Effecti#e
Units per
+our
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
,789::3:.*ls $e!tion 3,
epetiti#e !roduction& 6ultiple Work *entres& !ull Schedule& With *alendars
In $e!tin 8: we took a push s!hedule and applied !alendar !al!ulations to it. @ere is the pull s!hedule from $e!tion 30 with different !alendars assigned to the work !entres, and the !alendar !al!ulations applied in 3 pla!es:
" the ,st !al!ulations take the start of the ne*t operation and subtra!t the lag duration, using the !alendar of the pre'ious operation
" the 8nd !al!ulations apply the operation duration to the stop, to deri'e the start
" the 3rd !al!ulations take the stop again, re"use &al!: and &al!9, and subtra!t the lag duration, the result is then found by the pre'ious operation in !olumn C
W7* *alendar
< &alendar 8
7 &alendar ,
? &alendar 8
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $top of last 1ob: 87/3 ,-:0:
3st calendar calculations 4nd calendar calculations
W7* *alendar !rod)uct Op 9ty 'ays -e8t Op *alc3 *alc4 *alc5 Stop *alcA *alc< *alc> Start *alc= Stop ),ag
< &alendar 8 prod 5 , 5/, ,900 <9 83., 0.-< 5/8 88 80/3 ,3:98 ,</3 ,8:37 ,9 ,.3, ,9 ,</3 ,,:37 ,</3 ,:::9 ,< ,.37 < ,:/3 ?:99 ,< ,</3 ,3::9
< &alendar 8 prod B , B/, 8800 <0 3<.7 ,.93 B/8 83 83/3 ,8:,9 80/3 ,::98 8: 8.0- 8: 80/3 ,3:98 88/3 ,<::0 33 8.- ,< ,</3 ,:::9 38 88/3 ,9:89
< &alendar 8 prod & , &/, ,-00 79 89.3 ,.0< &/8 8: 87/3 ,<:00 83/3 ,3::9 3< 3.,7 39 83/3 ,8:,9 87/3 ,<:00 :9 3.-< 33 88/3 ,<::0 :: 87/3 ,:::9
7 &alendar , prod 5 8 5/8 ,900 ,09 ,:.3 0.< 5/3 89 80/3 ,::98 ,</3 ,::07 ,- ,.78 ,? ,</3 ,8:37 80/3 ,::98 8? 8.<3 88 ,</3 ,8:37 8? 80/3 ,3:98
7 &alendar , prod B 8 B/8 8800 -9 83.8 0.-< B/3 8< 83/3 ,3::9 80/3 ,<:07 8- 8.<7 8? 80/3 ,::98 83/3 ,3::9 :3 :.0? 33 80/3 ,::98 :8 83/3 ,8:,9
7 &alendar , prod & 8 &/8 ,-00 ,,0 ,7.3 0.78 &/3 87 87/3 ,7:00 83/3 ,:::9 :3 :.,8 :3 83/3 ,3::9 87/3 ,7:00 93 9.0? :9 83/3 ,3::9 93 87/3 ,<:00
? &alendar 8 prod 5 3 5/3 ,900 ?0 ,?.? 0.7? 5/: VJ/5 87/3 ,-:0: 87/3 ,-:0: :< :.0: :9 87/3 ,7:00 80/3 ,<:07 89 8.,3 ,< ,</3 ,::07 8: 80/3 ,::98
? &alendar 8 prod B 3 B/3 8800 ?9 89.- ,.0? B/: VJ/5 87/3 ,-:0: 87/3 ,-:0: :< :.0: :9 87/3 ,7:00 83/3 ,:::9 3< 3.8, 89 80/3 ,<:07 3< 83/3 ,3::9
? &alendar 8 prod & 3 &/3 ,-00 -9 80.0 0.?3 &/: VJ/5 87/3 ,-:0: 87/3 ,-:0: :< :.0: :9 87/3 ,7:00 87/3 ,-:0: :< :.0: 3< 83/3 ,:::9 :9 87/3 ,7:00
5rd calendar
calculations
!rod7O
p
Units
per
+our
'ur)
ation
+ours
-e8t Op
ow
Stop of -e8t
Op
Start of
-e8t Op
Start of
-e8t Op
),ag
,789::3:.*ls $e!tion 38
!ush !ull !ush ) 5 !ass ,ogic
" the start of the s!hedule Ahour eroB
" the length of the 1ob in hours
" when the 1ob is due
" the stop of the pre'ious 1ob
" the start of the ne*t 1ob
!ush 3 !ull !ush 4 >ay , >ay 8
/o$s +ours 'ue Start Stop Start Stop Start Stop 0 ? ,< 8: 38 :0 :? 9<
In the first pass 1ob 5 starts now, and 1ob B starts immediately after that:
1ob 5 38 8: ; 54 , , , ,
1ob B ? :? 54 A; ,
In the se!ond pass ea!h 1ob stops when it is due, so 1ob 5 would need to ha'e started ? hours ago:
1ob 5 38 8: 0 38 )? 4A , , , ,
1ob B ? :? 38 :0 A; A? ,
The third pass pushes 1ob 5 later so that it starts at hour ero:
1ob 5 38 8: 0 38 "? 8: ; 54 , , , ,
1ob B ? :? 38 :0 :0 :? A; A? ,
@ere are some other e*amples:
1ob 5 38 8: 0 38 "? 8: 0 38 , , , ,
1ob B 8: :? 38 9< 8: :? 38 9< , , ,
1ob 5 ,< 8: 0 ,< ? 8: ? 8: , ,
1ob B ,< :? ,< 38 38 :? 38 :? , ,
1ob 5 ? 8: 0 ? ? ,< ? ,< ,
1ob B 38 :? ? :0 ,< :? ,< :? , , , ,
1ob 5 ,< 8: 0 ,< "? ? 0 ,< , ,
1ob B :0 :? ,< 9< ? :? ,< 9< , , , , ,
G4IJA&3:,F39B " pull stop is the earlier of the due time or the start of the ne*t 1ob
G45PA>3:,F3:,I33B " push 8 start is the later of: the earliest start
the push start
the stop of the pre'ious 1ob
G@3:HB3: " push 8 stop is the start plus hours
In $e!tion 8< we had a series of 1obs that were all re(uired at the same time, but here we !onsider
1obs with different re(uired times. +e will start with a simple e*ample of =ob 5 re(uired in 8: hours,
and =ob B re(uired :? hours from now. The ob1e!ti'e is to try and meet the due date of ea!h 1ob, but
to start ea!h 1ob 1ust in time. The logi! works in 3 passes, and MshufflesM the 1obs taking into
!onsideration the following:
A B C D E F G H I J K L M N O P Q R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
,789::3:.*ls $e!tion 33
6ultiple Work *entre ) 5 !ass Schedule
" the start of the s!hedule Ahour eroB
" the length of the 1ob in hours
" when the 1ob is due
" the stop of the pre'ious 1ob on the work !entre
" the start of the ne*t 1ob on the work !entre
" the stop of the pre'ious operation on the 1ob
" the start of the ne*t ne*t operation on the 1ob
!ush 3 !ull !ush 4 >ay , >ay 8 >ay 3 >ay :
W7* /o$s Op +ours 'ue Start Stop Start Stop Start Stop 0 ? ,< 8: 38 :0 :? 9< <: 78 ?0 ?? -<
< 1ob 5 , 5/, ,< 5/0 VJ/5 0 0 ,< 5/8 ,? 0 ",< 0 0 0 ,< , ,
< 1ob B , B/, ,< B/0 VJ/5 0 ,< 38 B/8 ,- 38 ,< 38 0 ,< 38 , ,
< 1ob & , &/, ? &/0 VJ/5 0 38 :0 &/8 80 78 <: 78 0 <: 78 ,
7 1ob 5 8 5/8 ? 5/, ,9 ,< ,< 8: 5/3 8, ? 0 ? ,< ,< 8: ,
7 1ob B 8 B/8 38 B/, ,< 38 38 <: B/3 88 <: 38 <: 38 38 <: , , , ,
7 1ob & 8 &/8 ? &/, ,7 :0 <: 78 &/3 83 ?0 78 ?0 78 78 ?0 ,
? 1ob 5 3 5/3 ,< 8: 5/8 ,? 8: 8: :0 5/: VJ/5 8: ? 8: 8: 8: :0 , ,
? 1ob B 3 B/3 ? 78 B/8 ,- <: <: 78 B/: VJ/5 78 <: 78 <: <: 78 ,
? 1ob & 3 &/3 ,< -< &/8 80 78 78 ?? &/: VJ/5 -< ?0 -< ?0 ?0 -< , ,
These are the formulas that are different:
GIFAI$033/3A483B,F83,IJ>0PA/K,:/K8?,483,,BB " if there isn.t a ne*t operation put in the time due, else find the start of the ne*t op in !oumn /
G4IJAIFA583G58:,/8:,---B,J83B " the stop is the earlier of: the start of the ne*t 1ob on the work !entre if there is one, else the start of the ne*t op Aor the time dueB
G45PA=83,/83,X83,IFA583G588,$88,0BB " the start is the later of: earliest Apush ,B start
latest ApullB start
stop of the pre'ious operation
stop of the pre'ious 1ob on the work !entre, if there is one
Try !hanging the hours and due figures, and see how the s!hedule beha'es.
@ere we apply the 3 pass logi! set out in $e!tion 3, to 1obs that pass through multiple work !entres. The logi! that applies to the #ush , part of the s!hedule is e*plained in $e!tion 80. The #ull part is in $e!tion
8-, but has been modified to !ope with >ue time. This e*ample uses hurs rather than =ulian dates, simply be!ause we !an make the !olumns narrower this way. The #ush 8 logi! is the same as in $e!tion 38,
e*!ept that the start is sub1e!t to an additional !onstraint, the stop of the pre'ious operation. $o now the s!heduling of a 1ob takes 7 things into !onsideration:
/o$7O
p
!re#%
Op
!re#%
Op ow
Stop of
!re#% Op
-e8t
Op
-e8t Op
ow
Start of
-e8t Op
Stop of
!re#% Op
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB AC AD AE AF AG AH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
,789::3:.*ls $e!tion 3:
epetiti#e !roduction Through 6ultiple Work *entres ) 5 !ass Schedule
5pplying the 3 pass logi! to this !ase be!omes more !omple* still. The #ush , logi! is e*plained in $e!tion 8,, and the pull logi! from $e!tion 30 has been modified to !ope with the time >ue. The list of things taken into !onsideration when s!heduling a 1ob now grows to ,0:
" the start of the s!hedule Ahour eroB
" the length of the 1ob in hours
" when the 1ob is due
" the stop of the pre'ious 1ob on the work !entre
" the start of the ne*t 1ob on the work !entre
" the , hour that the ne*t operation lags behind the pre'ious operation
" the start of the pre'ious operation on the 1ob
" the stop of the pre'ious operation on the 1ob
" the start of the ne*t ne*t operation on the 1ob
" the stop of the ne*t ne*t operation on the 1ob
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB ? ? ? ? ? ? ? ? ? ? ? ? VVV
!ush 3 !ull !ush 4 >ay , >ay 8 >ay 3 >ay :
W7* Op 9ty 'ue +ours Start Stop Start Stop Start Stop 0 ? ,< 8: 38 :0 :? 9< <: 78 ?0 ??VVV
< prod 5 , 5/, ,900 ??.8 ,7 5/0 VJ/5 ", ", 0 ,7 5/8 88 "? 88 "? 88 ", ", 0 ,7 ??.8 =;> =;> ??
< prod B , B/, 8800 ,37.9 ,< B/0 VJ/5 ", ", ,7 33 B/8 83 3< 70 3< 70 ", ", 3< 98 ,37.9 <<; 33;; <<;
< prod & , &/, ,-00 837.9 ? &/0 VJ/5 ", ", 33 :, &/8 8: 7< -: 7< -: ", ", 7< ?: 837.9 :<; :<;
7 prod 5 8 5/8 ,900 ,?7.9 ? 5/, ,- , ,? , ,? 5/3 89 "7 83 "7 83 , ,? , ,? ??.8 >3? =;> 3=>
7 prod B 8 B/8 8800 <:.7 3: B/, 80 ,? 3: ,? 98 B/3 8< <3 7, 37 7, 37 93 37 7, <:.7 3:A <3? <3? <3? A<5
7 prod & 8 &/8 ,-00 ,-0.0 ,0 &/, 8, 3: :8 98 <8 &/3 87 77 -9 77 -9 77 ?9 77 ?7 ,-0.0 <=; 355;
? prod 5 3 5/3 ,900 8: 90.0 30 5/8 88 8 ,- 8 38 5/: VJ/5 8: 8: "< 8: 8 ,- 8 38 90.0 5;; A;; A;; A;;
? prod B 3 B/3 8800 78 879.0 ? B/8 83 ,- 93 38 93 B/: VJ/5 78 78 <: 78 3? 78 <: 78 879.0 44;;
? prod & 3 &/3 ,-00 -< ,09.< ,? &/8 8: 93 <3 93 7, &/: VJ/5 -< -< 7? -< 7? ?? 7? -< ,09.< 433 ?AA ?AA
GIFAI$033/3A=87B,"FK,<,IJ>0PAPK,:PK30,=87,,BHFK,<B " if there isn.t a pre'ious operation return , hour before the start of the s!hedule, else find the stop of the pre'ious operation in !olumn P
G45PA487,$87,287,IFA587G58<,P8<,0BB " the start is the later of: earliest Apush ,B start
latest ApullB start
the start of the pre'ious operation Aplus , hourB
stop of the pre'ious 1ob on the work !entre, if there is one
G45PA+87H@87,T87B " the stop is the later of, the start plus the hours, and the stop of the pre'ious operation Aplus , hourB
!rod)
uct
!rod7
Op
Units
per
+our
!re#
Op
!re#
Op
ow
Start of
!re# Op
Stop of
!re# Op
-e8t
Op
-e8t
Op
ow
Start of
-e8t Op
Stop of
-e8t Op
Start of
!re# Op
Stop of
!re# Op
Effecti#e
Units per
+our
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB AC AD AE AF AG AH AI AJ AK AL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
,789::3:.*ls $e!tion 39
5 !ass Schedule With a *alendar
$tart of first 1ob: 3/,:/00 ?:30 54
W7* 'ays Start 'ate *alc3 *alc4 *alc5 Stop
< prod 5 0 ,7 0.7, 3/,:/00 ?:30 54 9 ,.,0 ,8.00 3/,9/00 9:30 #4
< prod B 3< 98 0.<7 3/,9/00 9:30 #4 ,8 ,.77 ,-.00 3/,7/00 3:,9 #4
< prod & 7< ?: 0.33 3/,7/00 3:,9 #4 ,- 8.,0 83.00 3/80/00 3:,9 #4
7 prod 5 , ,? 0.7, 3/,:/00 -:30 54 9 ,.,9 ,3.00 3/,</00 ?:30 54
7 prod B 37 7, ,.:8 3/,</00 ?:30 54 ,3 8.9< 8?.00 3/8,/00 9:30 #4
7 prod & 77 ?7 0.:8 3/8,/00 9:30 #4 8? 8.-? 33.00 3/83/00 ?:30 54
? prod 5 8 38 ,.89 3/,:/00 ,0:30 54 < ,.78 ,-.00 3/,7/00 8:00 #4
? prod B <: 78 0.33 3/,7/00 8:00 #4 ,- 8.09 83.00 3/80/00 8:00 #4
? prod & 7? -< 0.79 3/80/00 8:00 #4 83 8.?0 3,.00 3/88/00 8:00 #4
GA>,7"&,7B/8:
5ll the !al!ulations in the 3 pass s!hedules in $e!tions 33 and 3: ha'e been done on the basis of
hours into the s!hedule. If all work !entres work 8: hours a day, 7 days a week, then it would be
straightforward to !on'ert the start and stop times to =ulian dates. @owe'er, if the work !entres
follow a !alendar, then we need to apply the !alendar formulas. +e start with the start and stop
from push 8 of $e!tion 3: A!olumns + and PB, and apply the formulas set out in $e!tion ,0.
!rod)
uct
Start
hour
Stop
hour
" the duration of the operation is re"established from the stop and start
hours, as it is not always the same as the hours A$e!tion 30, !olumn @B
A B C D E F G H I J
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
,789::3:.*ls $e!tion 3<
5 !ass Schedule With 6ultiple *alendars
W7* *alendar
< &alendar 8
7 &alendar ,
? &alendar 8
$tart of first 1ob: ,:/3 <:00
!ush 3 !ull !ush 4
W7* *alendar /o$s Op /o$7Op +ours 'ays 'ue Start *alc3 *alc4 *alc5 Stop Stop *alcA *alc< *alc> Start Start *alc= *alc? *alc: Stop
< &alendar 8 1ob 5 , 5/, < 0.89 5/0 VJ/5 30/,8 0:00 ,:/3 <:00 < 0.37 ? ,:/3 ,:::9 5/8 ,? ,:/3 ,7:00 ,:/3 ,,:,9 7 0.9 : ,3/3 ,:::9 30/,8 0:00 ,:/3 <:00 < 0.37 ? ,:/3 ,:::9
< &alendar 8 1ob B , B/, ,8 0.9 B/0 VJ/5 30/,8 0:00 ,:/3 ,:::9 ? 0.<8 ,: ,</3 ?:00 B/8 ,- ,9/3 ,:::9 ,9/3 ,:::9 ,8 , 7 ,:/3 ,,:,9 30/,8 0:00 ,:/3 ,:::9 ? 0.<8 ,: ,</3 ?:00
< &alendar 8 1ob & , &/, ? 0.33 &/0 VJ/5 30/,8 0:00 ,</3 ?:00 ,: ,.,8 ,7 ,</3 ,7:00 &/8 80 ,7/3 ,,:,9 ,7/3 ,,:,9 ,- ,.<8 ,9 ,</3 ,8:,9 30/,8 0:00 ,</3 ,8:,9 ,9 ,.8- ,- ,7/3 ,,:,9
7 &alendar , 1ob 5 8 5/8 ? 0.33 5/, ,9 ,:/3 ,:::9 ,:/3 ,:::9 - 0.79 ,3 ,9/3 ,0:,9 5/3 8, ,9/3 ,8:,9 ,9/3 ,8:,9 ,3 ,.,7 ,0 ,:/3 ,7:00 ,:/3 ,:::9 ,:/3 ,7:00 ,0 0.?3 ,3 ,9/3 ,8:,9
7 &alendar , 1ob B 8 B/8 80 0.?3 B/, ,< ,</3 ?:00 ,</3 ?:00 ,7 ,.9 89 ,7/3 ,7:00 B/3 88 ,7/3 ,0:00 ,7/3 ,0:00 83 8.0? ,: ,9/3 ,:::9 ,</3 ?:00 ,</3 ?:00 ,7 ,.9 89 ,7/3 ,7:00
7 &alendar , 1ob & 8 &/8 ? 0.33 &/, ,7 ,</3 ,7:00 ,7/3 ,7:00 89 8.33 8- 80/3 ,<:00 &/3 83 80/3 ,0:00 80/3 ,0:00 87 8.:< 83 ,7/3 ,,:,9 ,7/3 ,,:,9 ,7/3 ,7:00 89 8.33 8- 80/3 ,<:00
? &alendar 8 1ob 5 3 5/3 ,< 0.<7 80/3 ,,:00 5/8 ,? ,9/3 ,0:,9 ,9/3 ,0:,9 ,, 0.?3 ,? ,7/3 ?:00 5/: VJ/5 80/3 ,,:00 ,7/3 ,0:00 ,- ,.9? ,, ,9/3 ,8:,9 ,9/3 ,8:,9 ,9/3 ,8:,9 ,, 0.-8 ,- ,7/3 ,0:,9
? &alendar 8 1ob B 3 B/3 ? 0.33 8,/3 ,9:00 B/8 ,- ,7/3 ,7:00 ,7/3 ,7:00 88 ,.?3 89 80/3 ,7:00 B/: VJ/5 8,/3 ,9:00 80/3 ,0:00 83 ,.-8 ,? ,7/3 ,0:00 ,7/3 ,7:00 ,7/3 ,7:00 88 ,.?3 89 80/3 ,7:00
? &alendar 8 1ob & 3 &/3 ,< 0.<7 88/3 ?:00 &/8 80 80/3 ,<:00 80/3 ,7:00 89 8.,7 38 88/3 ,:::9 &/: VJ/5 88/3 ?:00 88/3 ?:00 30 8.9? 88 80/3 ,0:00 80/3 ,<:00 80/3 ,7:00 89 8.,7 38 88/3 ,:::9
0a!h work !entre may adhere to a different !alendar, as would be the !ase if the !onstraint work !entre was s!heduled to work o'ertime or weekends. In this !ase, 3 pass s!heduling, using hours into the s!hedule, won.t work be!ause
for e*ample, hour ,7 on +ork &entre < will translate into 3/,9/00 9:30 #4 a!!ording to &alendar 8, but if +ork &entre 7 works to &alendar ,, hour ,7 may translate into a !ompletely different date and time. 0'ery instan!e were a
duration is added or subtra!ted from a date and time, to get to another date and time, will ha'e to pass through the !alendar formulas. That.s an awful lot of formulas, but lets start by adding the !alendar formulas to the s!hedule in
$e!tion 33:
!re#%
Op
!re#% Op
ow
Stop of
!re#% Op
-e8t
Op
-e8t Op
ow
Start of
-e8t Op
Stop of
!re#% Op
,789::3:.*ls $e!tion 37
epetiti#e !roduction& 5 !ass Schedule With 6ultiple *alendars
W7* *alendar
< &alendar 8
7 &alendar ,
? &alendar 8
The ne*t operation !an start , hour after the start of the pre'ious operation ACagB $tart of first 1ob: ,:/3 <:00
!ush 3
W7* *alendar Op 9ty 'ays 'ue *alc3 *alc4 *alc5 Start *alcA *alc< *alc> Stop *alc= Start C,ag
< &alendar 8 prod 5 , 5/, ,900 ?? ,7.09 0.7, 5/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,:/3 <:00 < 0.37 ,3 ,9/3 ,7:08 < ,:/3 -:00
< &alendar 8 prod B , B/, 8800 ,3? ,9.-: 0.<< B/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,9/3 ,7:08 ,3 ,.0- 80 ,7/3 ,:::: ,: ,</3 ?:08
< &alendar 8 prod & , &/, ,-00 83? 7.-? 0.33 &/0 VJ/5 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,7/3 ,:::: 80 ,.79 8: 80/3 ,:::3 8, ,7/3 ,9:9-
7 &alendar , prod 5 8 5/8 ,900 ,?? 7.-? 0.33 5/, ,- ,:/3 -:00 ,9/3 ,7:08 ,9 ,.3: ,< ,9/3 ,-:08 ,:/3 -:00 7 0.9: ,0 ,9/3 ,-:08 ? ,:/3 ,0:,9
7 &alendar , prod B 8 B/8 8800 <9 33.?9 ,.:, B/, 80 ,</3 ?:08 ,7/3 ,:::: 8: 8.89 89 ,7/3 ,9:9- ,</3 ?:08 ,7 ,.9 3, 8,/3 ?:93 ,7 ,</3 -:08
7 &alendar , prod & 8 &/8 ,-00 ,-0 ,0 0.:8 &/, 8, ,7/3 ,9:9- 80/3 ,:::3 8? 8.<8 8- 80/3 ,9:9? 8,/3 ?:93 3, 8.-, 39 8,/3 80:93 3, 8,/3 -:93
? &alendar 8 prod 5 3 5/3 ,900 90 30 ,.89 8,/3 ,,:00 5/8 88 ,:/3 ,0:,9 ,9/3 ,-:08 ,: ,.,8 ,: ,</3 -:00 ,:/3 ,0:,9 7 0.:< 80 ,7/3 ,3::9 7 ,:/3 ,,:,9
? &alendar 8 prod B 3 B/3 8800 870 ?.,9 0.3: 88/3 ,9:00 B/8 83 ,</3 -:08 8,/3 ?:93 8< 8.89 8< 8,/3 -:93 ,7/3 ,3::9 80 ,.7, 8: 8,/3 -:93 80 ,7/3 ,:::9
? &alendar 8 prod & 3 &/3 ,-00 ,0< ,7.-8 0.79 83/3 ?:00 &/8 8: 8,/3 -:93 8,/3 80:93 30 8.9? 30 88/3 -:00 8,/3 -:93 8< 8.8- 3: 83/3 -::? 87 8,/3 ,,:0?
@ere we ha'e taken the s!hedule in $e!tion 3:, and applied !alendar !al!ulations to it. Dou !an see that it takes 93 !olumns to do itQ @owe'er, we ha'e built up to this in stages, In $e!tion 8: we added the !alendar formulas to a push s!hedule, in $e!tion 3,
to a pull s!hedule, and here we ha'e put it all together.
!rod)
uct
!rod7
Op
Units per
+our
'ur)
ation
+ours
!re#
Op
!re#
Op
ow
Start of !re#
Op C,ag
Stop of !re#
Op
Stop of !re#
Op C,ag
,789::3:.*ls $e!tion 37
!ull #ush 8
*alc? *alc: *alc3; Stop *alc33 *alc34 *alc35 Start *alc3A Stop ),ag *alc3< *alc3> *alc3= Start *alc3? *alc3: *alc4; Stop *alc43
5/8 88 ,9/3 ,-:,3 ,:/3 ,3::0 ? 0.9? 7 ,:/3 ,8:,0 ,9/3 ,7:00 ,3 ,.0? 9 ,3/3 ,7:97 ,3 ,9/3 ,<:00 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,:/3 <:00 < 0.37 ,3 ,9/3 ,7:08 <
B/8 83 80/3 80:0: ,9/3 80:,3 ,: ,.,8 ,3 ,9/3 ,7:00 80/3 ,7:00 89 8.,7 ,? ,9/3 ,7:00 89 80/3 ,<:00 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 ,9/3 ,7:08 ,3 ,.0- 80 ,7/3 ,:::: ,:
&/8 8: 88/3 ,<:00 80/3 8,:0: 8< 8.8, 89 80/3 ,7:00 88/3 ,<:00 33 8.?7 8- 80/3 ,7:00 38 88/3 ,:::9 30/,8 0:00 30/,8 0:00 VJ/5 VJ/5 VJ/5 30/,8 0:00 80/3 ,7:00 89 8.,7 8- 8,/3 ,9:9? 8<
5/3 89 ,7/3 ,<:99 ,:/3 ,:::0 - 0.79 - ,:/3 ,3::0 ,9/3 80:,3 ,< ,.:3 ,3 ,:/3 ,3::0 ,< ,9/3 ,-:,3 ,:/3 -:00 ,9/3 ,7:08 ,9 ,.3: ,< ,9/3 ,-:08 ,:/3 ,3::0 - 0.7, ,8 ,9/3 ,-:08 -
B/3 8< 80/3 ,7:0: 80/3 ?:99 8< 8.:, 89 ,7/3 ,7:99 80/3 8,:0: 30 8.?: ,< ,9/3 80:,3 30 80/3 80:0: ,</3 ?:08 ,7/3 ,:::: 8: 8.89 89 ,7/3 ,9:9- ,</3 ?:08 ,7 ,.9 3, 8,/3 ?:93 ,7
&/3 87 88/3 ,7:00 8,/3 ?:0: 3, 8.?? 30 80/3 8,:0: 88/3 ,7:00 3- 3.7, 39 80/3 8,:0: 3- 88/3 ,<:00 8,/3 ?:00 8,/3 ,9:9? 3: 3.,7 3: 8,/3 ,<:9? 8,/3 ?:93 3, 8.-, 39 8,/3 80:93 3,
5/: VJ/5 8,/3 ,,:00 8,/3 ,,:00 87 8.38 8< 8,/3 -::9 80/3 ?:99 88 ,.?7 ? ,:/3 ,:::0 8, ,7/3 ,<:99 ,:/3 ,:::0 ,9/3 ,-:08 ,: ,.,8 ,: ,</3 -:00 ,:/3 ,:::0 ? 0.<8 88 80/3 ?:99 -
B/: VJ/5 88/3 ,9:00 88/3 ,9:00 38 8.?: 38 88/3 ,::00 8,/3 ?:0: 8< 8.8, 88 80/3 ?:99 89 80/3 ,7:0: ,</3 -:08 8,/3 ?:93 8< 8.89 8< 8,/3 -:93 80/3 ?:99 88 ,.?7 8< 8,/3 -:93 88
&/: VJ/5 83/3 ?:00 83/3 ?:00 3: 8.-< 33 88/3 ,7:00 83/3 ?:00 3: 8.-< 8< 8,/3 ?:0: 33 88/3 ,7:00 8,/3 -:93 8,/3 80:93 30 8.9? 30 88/3 -:00 8,/3 -:93 8< 8.8- 3: 83/3 -::? 87
-e8t
Op
-e8t
Op
ow
Stop of -e8t
Op ),ag
Start of
-e8t Op
Start of -e8t
Op ),ag
Start of !re#
Op C,ag
Stop of !re#
Op
Stop of !re#
Op C,ag
,789::3:.*ls $e!tion 37
#ush 8
Start C,ag
,:/3 -:00
,</3 ?:08
8,/3 ?:00
,:/3 ,:::0
,</3 -:08
8,/3 -:93
,:/3 ,9:99
80/3 -:99
8,/3 ,,:0?
,789::3:.*ls $e!tion 3?
!roDect Scheduling
(cti#ity Start
wake up 30 0 0 0
walk to kit!hen ,9 < 30 0 30
fill kettle 80 7 :9 0 :9
boil water ,?0 ? <9 0 <9
put bread in toaster 80 ? <9 0 <9
toast bread ,90 ,0 ?9 0 ?9
walk to bathroom ,9 ,0 ?9 0 ?9
turn on bath taps ,0 ,8 ,00 0 ,00
fill bath ,?0 ,3 ,,0 0 ,,0
brush teeth <0 ,8 ,00 0 ,00
sha'e ?0 ,9 ,<0 0 ,<0
remo'e night !lothes ,0 ,< 8:0 0 8:0
get into bath 9 ,7 ,: 890 8-0 8-0
wash body -0 ,? 8-9 0 8-9
shampoo hair :0 ,- 3?9 0 3?9
get dried 30 80 :89 0 :89
put on underwear ,0 8, :99 0 :99
put on shirt and trousers 30 88 :<9 0 :<9
put on tie 30 83 :-9 0 :-9
walk to kit!hen ,9 83 :-9 0 :-9
lay table <0 8: 89 989 9,0 989
make tea -0 8< - 9?9 8:9 9?9
spread toast <0 87 ,, <79 839 <79
eat breakfast 300 87 8? <79 739 739
Total >uration: 0:,7:,9 h:mm:ss
GIFA&8?,IJ>I30&TAM@MU&8?B,0B " find the time that the dependen!y stops, at its row number
G45PA08?,F8?B " the a!ti'ity starts at the later of the two dependen!ies
G;8?HB8? " the stop is the start plus the duration
$o far our e*amples ha'e related to produ!tion a!ti'ities, where a 1ob.s dependan!ies are implied,
su!h as the pre'ious 1ob on a work !entre, or a pre'ious operation on a 1ob. +ith a pro1e!t the pattern
of dependan!ies ha'e to be spelled out. @ere is an e*ample:
'uration
secs%
'epend)
ency 3
'epend)
ency 4
'ep%
Stop 3
'ep%
Stop 4
#lease e*!use the fa!t that this e*ample is not politi!ally !orre!t and gender neutral. #lease note
howe'er, that you brush your teeth whilst turning on the bath taps, but you shouln.t ha'e bothered
be!ause you stand there naked waiting for the bath to fill. Dou also put on your tie while walking to the
kit!hen, whi!h sa'es you ,9 se!onds.
A B C D E F G
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
,789::3:.*ls $e!tion 3?
Stop
30
:9
<9
8:9
?9
839
,00
,,0
8-0
,<0
8:0
890
8-9
3?9
:89
:99
:<9
:-9
989
9,0
9?9
<79
739
,039
" find the time that the dependen!y stops, at its row number
" the a!ti'ity starts at the later of the two dependen!ies
$o far our e*amples ha'e related to produ!tion a!ti'ities, where a 1ob.s dependan!ies are implied,
su!h as the pre'ious 1ob on a work !entre, or a pre'ious operation on a 1ob. +ith a pro1e!t the pattern
#lease e*!use the fa!t that this e*ample is not politi!ally !orre!t and gender neutral. #lease note
howe'er, that you brush your teeth whilst turning on the bath taps, but you shouln.t ha'e bothered
be!ause you stand there naked waiting for the bath to fill. Dou also put on your tie while walking to the
H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
,789::3:.*ls $e!tion 3-
*ritical !ath (nalysis
ow (cti#ity 'ep 3 'ep 4 -e8t 3 -e8t 4 -e8t 5 "loat
< wake up 30 0 0 0 30 7 VJ/5 VJ/5 30 ,039 ,039 30 0 0
7 walk to kit!hen ,9 < 30 0 30 :9 ? VJ/5 VJ/5 :9 ,039 ,039 :9 30 0
? fill kettle 80 7 :9 0 :9 <9 - ,0 VJ/5 :09 <9 ,039 <9 :9 0
- boil water ,?0 ? <9 0 <9 8:9 VJ/5 VJ/5 87 ,039 ,039 9?9 9?9 :09 3:0
,0 put bread in toaster 80 ? <9 0 <9 ?9 ,, ,8 VJ/5 989 ?9 ,039 ?9 <9 0
,, toast bread ,90 ,0 ?9 0 ?9 839 VJ/5 VJ/5 8? ,039 ,039 <79 <79 989 ::0
,8 walk to bathroom ,9 ,0 ?9 0 ?9 ,00 ,3 ,9 VJ/5 ,00 ,:0 ,039 ,00 ?9 0
,3 turn on bath taps ,0 ,8 ,00 0 ,00 ,,0 ,: VJ/5 VJ/5 ,,0 ,039 ,039 ,,0 ,00 0
,: fill bath ,?0 ,3 ,,0 0 ,,0 8-0 VJ/5 VJ/5 ,? ,039 ,039 8-0 8-0 ,,0 0
,9 brush teeth <0 ,8 ,00 0 ,00 ,<0 ,< VJ/5 VJ/5 800 ,039 ,039 800 ,:0 :0
,< sha'e ?0 ,9 ,<0 0 ,<0 8:0 ,7 VJ/5 VJ/5 8?0 ,039 ,039 8?0 800 :0
,7 remo'e night !lothes ,0 ,< 8:0 0 8:0 890 ,? VJ/5 VJ/5 8-0 ,039 ,039 8-0 8?0 :0
,? get into bath 9 ,7 ,: 890 8-0 8-0 8-9 ,- VJ/5 VJ/5 8-9 ,039 ,039 8-9 8-0 0
,- wash body -0 ,? 8-9 0 8-9 3?9 80 VJ/5 VJ/5 3?9 ,039 ,039 3?9 8-9 0
80 shampoo hair :0 ,- 3?9 0 3?9 :89 8, VJ/5 VJ/5 :89 ,039 ,039 :89 3?9 0
8, get dried 30 80 :89 0 :89 :99 88 VJ/5 VJ/5 :99 ,039 ,039 :99 :89 0
88 put on underwear ,0 8, :99 0 :99 :<9 83 VJ/5 VJ/5 :<9 ,039 ,039 :<9 :99 0
83 put on shirt and trousers 30 88 :<9 0 :<9 :-9 8: 89 VJ/5 :-9 9,0 ,039 :-9 :<9 0
8: put on tie 30 83 :-9 0 :-9 989 8< VJ/5 VJ/5 989 ,039 ,039 989 :-9 0
89 walk to kit!hen ,9 83 :-9 0 :-9 9,0 VJ/5 VJ/5 8< ,039 ,039 989 989 9,0 ,9
8< lay table <0 8: 89 989 9,0 989 9?9 87 VJ/5 VJ/5 9?9 ,039 ,039 9?9 989 0
87 make tea -0 8< - 9?9 8:9 9?9 <79 8? 8- VJ/5 <79 739 ,039 <79 9?9 0
8? spread toast <0 87 ,, <79 839 <79 739 VJ/5 VJ/5 8- ,039 ,039 739 739 <79 0
8- eat breakfast 300 87 8? <79 739 739 ,039 VJ/5 VJ/5 VJ/5 ,039 ,039 ,039 ,039 739 0
G45T&@A58-,>K,:>K:0,F5C$0B " find the row on whi!h the a!ti'ity is first !ited as a dependen!y, by looking down !olumn >
G45T&@A58-,IJ>I30&TAM>MU=8-H,UM:>:0MB,F5C$0BH=8- " find the se!ond !iting by looking down the !olumn below the first
G45T&@A58-,0K,:0K:0,F5C$0B " find the row on whi!h the a!ti'ity is first !ited as a se!ond dependen!y, by looking down !olumn 0
GIFAI$033/3A=8-B,KIK8-,IJ>I30&TAMXMU=8-BB " the start of the first a!ti'ity whi!h is dependant on this one, if there isn.t one, return the end of the pro1e!t
G4IJA48-:/8-B " the stop is the earliest of the starts
G#8-"&8- " the start of the a!ti'ity is the stop minus the duration
GX8-"@8- " the Float is the differen!e between the #ull $tart and the #ush $tart
The shaded a!ti'ities, below, are on the !riti!al path. 5n in!rease in duration of these would e*tend the entire pro1e!t, whereas non"!riti!al a!ti'ities ha'e some MfloatM.
#ush logi! !al!ulates the earliest start of ea!h a!ti'ity, and the end time of the pro1e!t, then working ba!k from this, pull logi! !al!ulates the latest start. The first step
is to determine for ea!h a!ti'ity, the ne*t a!ti'ities that are dependent on it.
'ur%
Secs
'ep%
Stop 3
'ep%
Stop 4
!ush
Start
!ush
Stop
-e8t
start 3
-e8t
start 4
-e8t
start 5
!ull
Stop
!ull
Start
A B C D E F G H I J K L M N O P Q R S T
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
,789::3:.*ls $e!tion :0
6ake)to)Stock 1In#entory2 Schedule
" whi!h produ!t to make ne*t
" the (uantity to make
" when to stop
" how long to lie idle for
0a!h of these !an be o'erridden by entering something in one of the three MFor!eM !olumns. Try this, and also !hange some of the 'alues to see how the s!hedule responds.
$tart of the first 1ob: ,:/3 ?:00 5 B & > 0 5 B & > 0
#rodu!t running now: & $peed " units per hour 300 390 8?0 3,0 8:0
Xuantity !ommitted: 3:00 Fore!ast sales " units per week 9000 ?000 7000 <900 -000
4in !o'er " days : : : : <
4a* !o'er " days ,: ,: ,: ,: ,:
4in !o'er " units 8?97 :97, :000 37,: 77,:
4a* !o'er " units ,0000 ,<000 ,:000 ,3000 ,?000
"orce 9ty "orce "orce Start Stop !roDected In#entory ) units !roDected *o#er ) days Speed
/pening sto!k: ,:/3 ?:00 ,0<8, ,9<< ?7<8 ,,-?: ,87-< ,:.- ,.: ?.? ,8.- ,0.0
& 3:00 0.0 ,8., ,:/3 ?:00 ,:/3 80:0? ,08<0 -?? ,,<9< ,,9,: ,8,:9 ,:.: 0.- ,,.7 ,8.: -.: 0.- 8 B -?? 390 ?000 : :97, ,<000 ,737<
B VVV 0.0 :-.< ,:/3 80:0? ,</3 8,::7 ?7?8 ,<000 -9?7 -9-3 -:?< ,8.3 ,:.0 -.< ,0.3 7.: 7.: 9 0 -:?< 8:0 -000 < 77,: ,?000 ,0-<,
Idle 0 33., 0.0 ,</3 8,::7 ,?/3 <:9, 77-? ,::89 ?8,0 ?3,: 77,: ,0.- ,8.< ?.8 -.0 <.0 <.0 9 0 77,: 8:0 -000 < 77,: ,?000 ,38:,
0 VVV 0.0 99.8 ,?/3 <:9, 80/3 ,::0, <,9< ,,7-? 9-,, <,7- ,?000 ?.< ,0.3 9.- <.7 ,:.0 9.- 3 & 9-,, 8?0 7000 : :000 ,:000 -90:
Idle 0 :9.- 0.0 80/3 ,::0, 88/3 ,,:93 :7-, -<,: :000 ::09 ,99:3 <.7 ?.: :.0 :.7 ,8., :.0 3 & :000 8?0 7000 : :000 ,:000 ,,7:?
& VVV 0.0 :8.0 88/3 ,,:93 8:/3 9:90 39:8 7<,< ,:000 87?8 ,38-< 9.0 <.7 ,:.0 3.0 ,0.3 3.0 : > 87?8 3,0 <900 : 37,: ,3000 ,,<7<
> VVV 0.0 37.7 8:/3 9:90 89/3 ,-:30 8:8, 9?83 ,8:3, ,3000 ,,87? 3.: 9., ,8.: ,:.0 ?.? 3.: , 5 8:8, 300 9000 : 8?97 ,0000 ?:,3
5 VVV 0.0 8?.0 89/3 ,-:30 8</3 83:33 ,0000 ::?7 ,,8<8 ,,-,9 -77< ,:.0 3.- ,,.3 ,8.? 7.< 3.- 8 B ::?7 390 ?000 : :97, ,<000 ,338<
B VVV 0.0 3?., 8</3 83:33 8?/3 ,3:37 ??<7 ,<000 -<7< ,0::8 773< ,8.: ,:.0 -.7 ,,.8 <.0 <.0 9 0 773< 8:0 -000 < 77,: ,?000 ,38,3
Idle 0 0.: 0.0 8?/3 ,3:37 8?/3 ,::0, ??99 ,9-?, -<9- ,0:8< 77,: ,8.: ,:.0 -.7 ,,.8 <.0 <.0 9 0 77,: 8:0 -000 < 77,: ,?000 ,38:,
0 VVV 0.0 99.8 8?/3 ,::0, 30/3 8,:,8 78,3 ,3393 73<0 ?8-8 ,?000 ,0., ,,.7 7.: ?.- ,:.0 7.: 3 & 73<0 8?0 7000 : :000 ,:000 7?0,
Idle 0 ?0.< 0.0 30/3 8,:,8 3/: 9:90 :?,3 -9,3 :000 9,7, ,3<?0 <.7 ?.3 :.0 9.< ,0.< :.0 3 & :000 8?0 7000 : :000 ,:000 ,,7:?
& VVV 0.0 :8.0 3/: 9:90 :/: 83::? 39<: 79,9 ,:000 39:? ,,:38 9.0 <.< ,:.0 3.? ?.- 3.? : > 39:? 3,0 <900 : 37,: ,3000 ,0?00
> VVV 0.0 3:.? :/: 83::? </: ,0:3? 8987 9?9< ,89:? ,3000 -9<< 3.9 9., ,8.9 ,:.0 7.: 3.9 , 5 8987 300 9000 : 8?97 ,0000 ?8-<
5 VVV 0.0 87.7 </: ,0:3? 7/: ,::,7 ,0000 :9:0 ,,3-< ,,-30 ?0?: ,:.0 :.0 ,,.: ,8.? <.3 :.0 8 B :9:0 390 ?000 : :97, ,<000 ,38<9
B VVV 0.0 37.- 7/: ,::,7 -/: ::,, ??78 ,<000 -?,7 ,0:<: <09: ,8.: ,:.0 -.? ,,.3 :.7 :.7 9 0 <09: 8:0 -000 < 77,: ,?000 ,937-
0 VVV 0.0 <:., -/: ::,, ,,/: 80:,< <-<9 ,8-:- 7,:7 7-?: ,?000 -.? ,,.3 7., ?.< ,:.0 7., 3 & 7,:7 8?0 7000 : :000 ,:000 ?09,
Idle 0 79.9 0.0 ,,/: 80:,< ,:/: 83::? :7,7 -398 :000 90<8 ,3-9: <.< ?.8 :.0 9.9 ,0.- :.0 3 & :000 8?0 7000 : :000 ,:000 ,,7:?
& VVV 0.0 :8.0 ,:/: 83::? ,</: ,7::9 3:<? 739: ,:000 3:3- ,,70< :.- <.: ,:.0 3.7 -., 3.7 : > 3:3- 3,0 <900 : 37,: ,3000 ,0-89
> VVV 0.0 39.8 ,</: ,7::9 ,?/: 9:00 8:,- 9<7< ,8938 ,3000 -?,? 3.: 9.0 ,8.9 ,:.0 7.< 3.: , 5 8:,- 300 9000 : 8?97 ,0000 ?:,9
5 VVV 0.0 8?., ,?/: 9:00 ,-/: -:03 ,0000 :3:0 ,,3<3 ,,-,9 ?3,9 ,:.0 3.? ,,.: ,8.? <.9 3.? 8 B :3:0 390 ?000 : :97, ,<000 ,3:-<
B VVV 0.0 3?.< ,-/: -:03 80/: 83:3< ??98 ,<000 -79< ,0:83 <890 ,8.: ,:.0 -.? ,,.8 :.- :.- 9 0 <890 8:0 -000 < 77,: ,?000 ,9,87
0 VVV 0.0 <3.0 80/: 83:3< 83/: ,::3? <-7< ,8--- 7,30 7-?: ,?000 -.? ,,.: 7., ?.< ,:.0 7., 3 & 7,30 8?0 7000 : :000 ,:000 ?07,
Idle 0 79., 0.0 83/: ,::3? 8</: ,7::9 :7:, -:88 :000 907? ,3-7< <.< ?.8 :.0 9.9 ,0.- :.0 3 & :000 8?0 7000 : :000 ,:000 ,,7:?
2p to now all our s!hedules ha'e been make"to"order, and typi!ally demand would !ome from sales orders or works orders. In traditional 43# logi!, 4aster #rodu!tion $!heduling A4#$B would be used to re'iew finished in'entory and sales
fore!asts, and generate manufa!turing orders on the fa!tory. The fa!tory would then use the orders to !reate a s!hedule. In this e*ample we use 4#$ and Finite $!heduling logi! !ombined into one. The model is used t o re"s!hedule (ui!kly
in response to !hanges in in'entory le'els.
There is one work !entre that !y!les through a portfolio of 9 produ!ts. If the rate of sales of any of the produ!ts, e*!eeds the rate of produ!tion, the logi! will not work. The first 1ob on the line is the one that is !urrently running, but after that
the s!hedule de!ides four things:
!rod)
uct
Idle
hours
un
hours
,owest
*o#er
Offs
et
-e8t
!rod
In#ento
ry
"or)
cast
6in
*o#er
6in
units
6a8
units
To
make
,0"4ar ,9"4ar 80"4ar 89"4ar 30"4ar :"5pr -"5pr ,:"5pr ,-"5pr 8:"5pr 8-"5pr
0.0
8.9
9.0
7.9
,0.0
,8.9
,9.0
!roDected In#entory
*o#er
&olumn /
&olumn #
&olumn X
&olumn 3
&olumn $
'
a
y
s
,789::3:.*ls $e!tion :,
6ake)to)Stock ,ogic E8plained
The logi! works as follows:
" the first 1ob is the M#rodu!t running nowM
" it starts at the M$tart of the first 1obM
" and the MXuantity !ommittedM is spe!ified
" the duration of the 1ob is !al!ulated from the speed, and shown in the M3un hoursM !olumn
" a separate !olumn for ea!h produ!t re!ords the pro1e!ted in'entory le'el at the end of ea!h 1ob
" at the end of ea!h 1ob, the in'entory le'el of one produ!t has risen, and the other four produ!ts ha'e fallen
" the opening in'entory is re!orded at the top of the !olumns, and would typi!ally !ome from an in'entory management system
" the in'entory at the end of the 1ob is the opening in'entory, less the fore!ast sales for the duration of the 1ob, plus the produ!tion (uantity of the 1ob
" another bank of fi'e !olumns e*presses the pro1e!ted in'entory le'el as days of !o'er
" the produ!t with the lowest !o'er at the end of the 1ob is identified as the ne*t produ!t to be made
" the (uantity to make is that re(uired to in!rease the in'entory le'el to the ma*imum, plus suffi!ient to replenish the amount sold while the 1ob was running
" the duration of the ne*t 1ob is !al!ulated, and the !y!le begins again
" if the pro1e!ted in'entory le'el of the lowest !o'er produ!t is abo'e its minimum, then an idle period is s!heduled
" the duration of the idle period is the time it will take for fore!ast sales to redu!e the in'entory to the minimum and trigger the ne*t run
Dou will see from the !hart of in'entory !o'er, that the model attempts to keep the in'entory of ea!h produ!t between the minimum and ma*imum.
,789::3:.*ls $e!tion :8
6ake)to)Stock Schedule ) "ormulas E8plained
$tart of the first 1ob: ,:/3 ?:00 5 B & > 0 5 B & > 0
#rodu!t running now: & $peed " units per hour 300 390 8?0 3,0 8:0
Xuantity !ommitted: 3:00 Fore!ast sales " units per week 9000 ?000 7000 <900 -000
4in !o'er " days : : : : <
4a* !o'er " days ,: ,: ,: ,: ,:
4in !o'er " units 8?97 :97, :000 37,: 77,:
4a* !o'er " units ,0000 ,<000 ,:000 ,3000 ,?000
"orce 9ty "orce "orce Start Stop !roDected In#entory ) units !roDected *o#er ) days Offset Speed
/pening sto!k: ,:/3 ?:00 ,0<8, ,9<< ?7<8 ,,-?: ,87-< ,:.- ,.: ?.? ,8.- ,0.0
& 3:00 0.0 ,8., ,:/3 ?:00 ,:/3 80:0? ,08<0 -?? ,,<9< ,,9,: ,8,:9 ,:.: 0.- ,,.7 ,8.: -.: 0.- 8 B -?? 390 ?000 : :97, ,<000 ,737<
B VVV 0.0 :-.< ,:/3 80:0? ,</3 8,::7 ?7?8 ,<000 -9?7 -9-3 -:?< ,8.3 ,:.0 -.< ,0.3 7.: 7.: 9 0 -:?< 8:0 -000 < 77,: ,?000 ,0-<,
Idle 0 33., 0.0 ,</3 8,::7 ,?/3 <:9, 77-? ,::89 ?8,0 ?3,: 77,: ,0.- ,8.< ?.8 -.0 <.0 <.0 9 0 77,: 8:0 -000 < 77,: ,?000 ,38:,
0 VVV 0.0 99.8 ,?/3 <:9, 80/3 ,::0, <,9< ,,7-? 9-,, <,7- ,?000 ?.< ,0.3 9.- <.7 ,:.0 9.- 3 & 9-,, 8?0 7000 : :000 ,:000 -90:
Idle 0 :9.- 0.0 80/3 ,::0, 88/3 ,,:93 :7-, -<,: :000 ::09 ,99:3 <.7 ?.: :.0 :.7 ,8., :.0 3 & :000 8?0 7000 : :000 ,:000 ,,7:?
5 #rodu!t GIFA0,-,MIdleM,IFAI$BC5JRA5,?B,>K<,IFAI$BC5JRAB,-B,T,?,B,-BBB
& Xty GIFA5,-GMIdleM,0,IFAI$BC5JRA&,?B,>K7,IFAI$BC5JRA>,-B,5&,?,>,-BBB if its an idle period put ero, else if itSs the first 1ob return (uantity !ommitted, else for!ed 'alue if there is one, else to make
0 Idle hours G45PAIFAI$BC5JRAF,-B,IFAD,?,3/2J>AA+,?"55,?B/D,?,7B,0BW,<?,F,-B,0B return the for!e 'alue if there is one, else no of weeks for sto!k to rea!h minimum, times ,<? for hours, but 0 if its "'e
; 3un hours G&,-/@C//R2#A5,-,K=K9:KJK-,8B (uantity di'ided by the speed for that produ!t, looked up in the horiontal table
@ $tart GI,? stop of the pre'ious 1ob
I $top G@,-HAA;,-H0,-B/8:B start plus idle hours plus run hours, di'ided by 8: to get to days
= #ro1e!ted In'entory " units G=,?"A=K7WAK;,-HK0,-B/,<?BHAAK5,-G=K9BWK&,-B In'entory at the end of the pre'ious 1ob, less fore!ast sales for the duration of the 1ob, plus (ty if the 1ob is for the produ!t
/ #ro1e!ted &o'er " days G=,-/=K7W7 in'entory di'ided by fore!ast
T Cowest &o'er G4IJA/,-:$,-B lowest in'entory !o'er at the end of the 1ob
2 /ffset G45T&@AT,-,/,-:$,-,0B find the offset of the produ!t with the lowest in'entory !o'er
T Je*t #rod GIJ>0PA/K9:$K9,,,2,-B for the produ!t, get the: produ!t !ode
+ In'entory GIJ>0PA=,-:J,-,,,2,-B in'entory le'el
P $peed GIJ>0PA=K<:JK<,,,2,-B speed
D Fore!ast GIJ>0PA=K7:JK7,,,2,-B fore!ast sales per week
Y 4in &o'er GIJ>0PA=K?:JK?,,,2,-B minimum in'entory !o'er in days
55 4in units GIJ>0PA=K,0:JK,0,,,2,-B minimum in'entory in units
5B 4a* units GIJ>0PA=K,,:JK,,,,,2,-B ma*imum in'entory in units
5& To make G5B,-"+,-HD,-WA5B,-"+,-B/AP,-"D,-/,<?B/,<? this formula has been !reated by substituting together the following:
50 In'entory replenishment (ty G5B,-"+,- ma*imum in'entory minus in'entory le'el
5F fore!ast units per hour GD,-/,<? sales fore!ast in units per week, di'ided by ,<? A7*8:B, to get to units per hour
5; effe!ti'e speed GP,-"5F,- speed of building in'entory, rate of produ!tion minus rate of sales
5@ run duration G50,-/5;,- time it will take to build up the replenishment (uantity
5I sales during produ!tion G5@,-W5F,- units that will be sold while the 1ob is running
to make G50,-H5I,- In'entory replenishment (ty plus sales during produ!tion
!rod)
uct
Idle
hours
un
hours
,owest
*o#er
-e8t
!rod
In#ento
ry
"or)
cast
6in
*o#er
6in
units
6a8
units
To
make
if there are idle hours return MIdleM, else, if itSs the first 1ob return =ob now running, else, if for!e is blank return ne*t
produ!t from pre'ious row, else for!ed 'alue
A B C D E F G H I J K L M N O P Q R S T U ! " # $ AA AB AC AD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
,789::3:.*ls $e!tion :3
In#entory *o#er *alculation
+eeks , 8 3 : 9 < 7 ? - ,0 ,, ,8 ,3 ,: ,9 ,< ,7 ,? ,- 80
$ales fore!ast: ?0 7< 78 <? <: <0 9< 98 :? :: :0 :0 :: :? 98 9< <0 <: <? 78
&um fore!ast: 0 ?0 ,9< 88? 8-< 3<0 :80 :7< 98? 97< <80 <<0 700 7:: 7-8 ?:: -00 -<0 ,08: ,0-8 ,,<:
@ere is an in'entory !o'er !al!ulation:
In'entory: 900
the week in whi!h the in'entory will run out ? G45T&@AI,3,B-:Y-B
!umulati'e fore!ast at the end of the pre'ious week :7< GIJ>0PAB-:Y-,,,I,:B
in'entory left in the last week 8: GI,3"I,9
fore!ast for the last week 98 GIJ>0PA&7:Y7,,,I,:B
portion of the week that the in'entory will last 0.:< GI,</I,7
!o'er " weeks that the in'entory will last 7.:< GI,:",HI,?
In'entory: 8000
last week 80 G45PA&9:Y9B
last fore!ast (uantity 78 GIJ>0PA&7:Y7,,,I8:B
last !um fore!ast ,,<: G45PA&-:Y-B
!o'er after the last week VVV GAI83"I8<B/I89
total !o'er VVV GI8:HI87
test to see if this should be applied T320 GI83LI8<
$ales fore!ast: ?0 79 70 <9 <0 99 90 :9 :0 39 30 89 80 ,9 ,0 9 0 0 0 0
&um fore!ast: 0 ?0 ,99 889 8-0 390 :09 :99 900 9:0 979 <09 <30 <90 <<9 <79 <?0 <?0 <?0 <?0 <?0
In'entory: 8000
last week 80
last fore!ast (uantity 0
last !um fore!ast <?0
!o'er after the last week VVV
total !o'er --- GIFAI3-,I3?HI:,,---B
The whole lot !an be substituted together as follows:
the week in whi!h the in'entory will run out ?
total !o'er 7.:<
GIFAI,3L45PA&-:Y-B,IFAIJ>0PA&7:Y7,,,45PA&9:Y9BB,45PA&9:Y9BHAI,3"45PA&-:Y-BB/IJ>0PA&7:Y7,,,45PA&9:Y9BB,---B,
I:<",HAI,3"IJ>0PAB-:Y-,,,I:<BB/IJ>0PA&7:Y7,,,I:<BB
In $e!tion :0 the sales fore!ast is e*pressed as a straight line, e.g.. ,00 units per week. &al!ulating the in'entory !o'er is a
simple di'ision, e.g.. an in'entory of <90 will last for <.9 weeks. @owe'er, a sales fore!ast may be non"linear, to refle!t
seasonal sales demand, sales promotions, a new produ!t with an anti!ipated in!rease in demand, or a produ!t at the end of
it.s life !y!le. &al!ulating the !o'er with a non"linear fore!ast, is more !omple*. @ere is a sales fore!ast for 80 weeks whi!h
falls and then rises again:
+hat if the in'entory !o'er is greater then 80 weeksO +e !ould assume that the fore!ast for the 80th week will !ontinue in a
straight line at 78 per week thereafter. @ere are some additional steps to !ope with that:
Jow lets !onsider a fore!ast that drops away to ero, and in'entory whi!h will last for infinity. $peadsheets don.t return a
'alue for infinity, they return an error, so lets adopt a !on'ention that infinite !o'er is represented by the 'alue ---.
A B C D E F G H I J K L M N O P Q R S T U
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->