Here is a version that consolidates some of the ideas in your workbook. We start by bringing together all of the lists that are used by Data Validation for forming drop-down lists or by the formula for convenience in referencing shift numbers, positions and days off:
MrExcel_20231122.xlsx |
---|
|
---|
| A | B | C | D | E |
---|
1 | Year | Month | Shift | Position | Days Off |
---|
2 | 2024 | January | 1st | Shift Supervisor | SM |
---|
3 | 2025 | February | 2nd | Team Lead | MT |
---|
4 | 2026 | March | 3rd | Classification Specialist | TW |
---|
5 | 2027 | April | | Job Assignment Specialist | WT |
---|
6 | 2028 | May | | Reclassification Specialist | TF |
---|
7 | 2029 | June | | | FS |
---|
8 | 2030 | July | | | SS |
---|
9 | 2031 | August | | | |
---|
10 | 2032 | September | | | |
---|
11 | 2033 | October | | | |
---|
12 | | November | | | |
---|
13 | | December | | | |
---|
|
---|
The Master sheet is very much like the one posted earlier, so I won't include it here.
The sheet named 1st looks like this:
MrExcel_20231122.xlsx |
---|
|
---|
| 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 | AA | AB | AC | AD | AE | AF | AG | AH | | AJ | AK |
---|
1 | Monthly Staffing | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Month | Year |
---|
2 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | January | 2024 |
---|
3 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
4 | Jan-24 | Members | 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 | | | | |
---|
5 | 1st Shift | | M | T | W | T | F | S | S | M | T | W | T | F | S | S | M | T | W | T | F | S | S | M | T | W | T | F | S | S | M | T | W | | | | |
---|
6 | Supervisor/Team Lead/Specialist Positions | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
7 | Shift Supervisor | foxtrot | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | |
---|
8 | Shift Supervisor | mike | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | | | | |
---|
9 | Team Lead | juliet | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | | |
---|
10 | Classification Specialist | hotel | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | | | |
---|
11 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
12 | Total Supervisors/Team Leads | | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 2 | 2 | 2 | 2 | 2 | | | | |
---|
13 | Total Classification Specialists | | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | | | | |
---|
14 | Total on Shift | | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 3 | 3 | 3 | 3 | | | | |
---|
15 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
16 | Classification Administrative Positions | Members | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
17 | Job Assignment Specialist | kilo | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | |
---|
18 | Reclassification Specialist | echo | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | X | X | | | | | | | | | |
---|
19 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
20 | Total Job Assignment Specialists | | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | | | | |
---|
21 | Total Reclassification Specialists | | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | | | | |
---|
22 | Total on Shift | | 1 | 1 | 2 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | | | | |
---|
23 | end | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
24 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
---|
|
---|
The single (but multi-step) formula builds the output shown: labels for the month-year and shift number, day numbers and days of the month, sub-blocks for the different types of positions along with totals for those sub-blocks and X's and V's for denoting "weekends" and vacations. This formula spills the results for a single month. For now, the easiest approach is to simply copy this formula to the clipboard and paste it anywhere in column A (this is critical) where you would like the next month's table to begin. The formula "looks" up to determine how many monthly calendars have already been generated so that the subsequent month will be produced. Conditional formatting is then used to identify the heading rows (blue), summary total rows (gold), and end row (black). The three shift sheets rely on the month-year selected on sheet 1st (cells AJ2:AK2) for the initial baseline month.
I haven't performed extensive testing with it, but it seems to work fine for the scenarios I've tried. Please let me know if anything seems amiss.
Here is a link to the full version of the file...
www.dropbox.com
To create this, once the 1st sheet was working correctly, I duplicated the 1st sheet and renamed the duplicate to 2nd, and then deleted the month-year selector on 2nd...and then pasted the formula from the first month on sheet 1st into the cell where I wanted the first month to appear on sheet 2nd. For sheet 3rd, I duplicated the 2nd sheet. Pasting the formula below the monthly blocks builds a new monthly output table. I considered using recursion via a LAMBDA function to automatically spill seven monthly blocks at once, but haven't had the time to work on that.