I am looking to create a roster generator that will calculate the number and length of shifts required to ensure we have enough staff throughout a day. I dont wont to recreate a wheel that already exists nor do I want to attempt to create a wheel that cannot exist, but any help would be much appreciated.
Each 1/4 hr has a required staff level as per below table. I want to determine what shifts (start and end time) are needed to ensure there are enough staff at all times.
Conditions:
1. A shift must not be shorter than 4 hours.
2. A shift cannot be longer than 10 hours
3. Shifts between 4 and 6 hours must have a 1/2hr and a 1/4 hour break
4. Shifts between 6 and 8 hours must have a 2x 1/4hr breaks and a 1/2hr break
5. Shifts over 8 hours must have 2x 1/4hr breaks and 1x 1hr break
6. More staff than are listed at any given time may occur occassionally to ensure other times are not down by more than 1 (eg. needed staff has a tolerance of -1 to ~+2)
Each 1/4 hr has a required staff level as per below table. I want to determine what shifts (start and end time) are needed to ensure there are enough staff at all times.
Conditions:
1. A shift must not be shorter than 4 hours.
2. A shift cannot be longer than 10 hours
3. Shifts between 4 and 6 hours must have a 1/2hr and a 1/4 hour break
4. Shifts between 6 and 8 hours must have a 2x 1/4hr breaks and a 1/2hr break
5. Shifts over 8 hours must have 2x 1/4hr breaks and 1x 1hr break
6. More staff than are listed at any given time may occur occassionally to ensure other times are not down by more than 1 (eg. needed staff has a tolerance of -1 to ~+2)
Rosterer.xls | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |||
1 | 7:30 | 7:45 | 8:00 | 8:15 | 8:30 | 8:45 | 9:00 | 9:15 | 9:30 | 9:45 | 10:00 | 10:15 | 10:30 | 10:45 | 11:00 | 11:15 | 11:30 | 11:45 | 12:00 | 12:15 | 12:30 | 12:45 | 13:00 | 13:15 | 13:30 | |||
2 | ||||||||||||||||||||||||||||
3 | Needed | 3 | 3 | 8 | 8 | 8 | 8 | 11 | 11 | 15 | 15 | 15 | 15 | 17 | 17 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 17 | 17 | 17 | ||
4 | ||||||||||||||||||||||||||||
5 | 13:45 | 14:00 | 14:15 | 14:30 | 14:45 | 15:00 | 15:15 | 15:30 | 15:45 | 16:00 | 16:15 | 16:30 | 16:45 | 17:00 | 17:15 | 17:30 | 17:45 | 18:00 | 18:15 | 18:30 | 18:45 | 19:00 | 19:15 | 19:30 | 19:45 | |||
6 | ||||||||||||||||||||||||||||
7 | Needed | 17 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 19 | 21 | 21 | 20 | 20 | 15 | 15 | 11 | 11 | 9 | 9 | 9 | 9 | ||
8 | ||||||||||||||||||||||||||||
9 | ||||||||||||||||||||||||||||
10 | 20:00 | 20:15 | 20:30 | 20:45 | 21:00 | 21:15 | 21:30 | 21:45 | ||||||||||||||||||||
11 | ||||||||||||||||||||||||||||
12 | Needed | 8 | 8 | 8 | 8 | 8 | 8 | 5 | 5 | |||||||||||||||||||
Sheet1 (3) |