I uncovered something. Here I've clicked on the cell for Wed the 6th in the Leadership section of the Roster table...the 3rd column in the fillable scheduling table, so this should correspond to the 3rd column in the helper column, which would be Valid!O...and since this is the Leadership section, the topmost helper cells would be Valid!O$3. But the Data Validation here is pointing to Valid!$M$3. Only the row should be fixed with a $ sign, while the column is left relative (no $ sign in front of it). This way, the Data Validation formula can adjust, meaning as it is copied across the roster table, the topmost helper references will also change so that they point to the correct helper column.
View attachment 65788
But there is another issue: including the SUM(N construction as the 4th argument seems to cause a problem, probably because this needs to be handled as an array formula to first create the array formed by the logical test before converting the TRUE's and FALSE's to 1's and 0's and then summing the array. A quick test is to replace that 4th argument with 17 (the number initially returned if there are no shift code exclusions), and the full dropdown list appears when attempting to fill a cell on the scheduling table. There are several ways to deal with this, but the simplest is to avoid it altogether and add something to your helper tables. At the top of each helper column, I added a formula that performs this same counting operation...to determine the number of valid shift codes in that column (for that specific day). By doing this, the OFFSET formula can be simplified, so the uppermost anchor point where the shift codes begin for the Leadership block is Valid!M$3, and if we now look above it in Valid!M$1, the total count of non-blank entries in the shift code column is found. Then the OFFSET formula changes to this:
...for the Leadership block
Excel Formula:
=OFFSET(Valid!M$3,,,Valid!M$1,1)
=OFFSET(Valid!M$67,,,Valid!M$65,1) for the RM block
=OFFSET(Valid!M$24,,,Valid!M$22,1) for the Graduates block
=OFFSET(Valid!M$45,,,Valid!M$43,1) for the Students block
As before, this data validation (DV) formula is placed in the upper left cell of each relevant scheduling block, the cell is copied to the clipboard, and then the entire block is selected and a Paste Special > Validation is performed to quickly assign the same DV to all cells in that block.
I didn't touch any other cells other cells (other than moving the helper block labels aside to make room for the adding counting formulas, modifying the DV OFFSET formulas and copying the DV throughout the roster table blocks). But as I look at some other areas below the roster table, I see the Daily Count tabulation block (rows 92:96). I would consider removing the blank rows. Doing so makes it easier to refer to an entire range of {D;E;N} values without any blanks, and that has advantages if one day you want to streamline some of the calculations. For example the Shift Short By formula would be C98:C100-D94:D96 to return all three subtraction values (assuming the D92, D94, and D96 values actually resided in the contiguous range D94:D96. This isn't important at the moment, but if you move the workbook to Excel 365 where array formulas are handled automatically, there are efficiency and formula maintenance advantages.
I'll give some more thought to this...there may be a better way to either construct or reference all of these dropdown helper columns, but I'll have to try out some ideas. In the meantime, let me know if this works on your system, and whether you encounter any more issues or have any questions. Here is a link to the revised version:
www.dropbox.com