Hi David,
I'm assuming your Cleaning List, printed this week, should not include the bookings from January, as shown on the table.
Here's a solution that can be adjusted to determine the number of weeks to include on the list. The example is set to list four weeks, starting on the date in Cleaning List::B1:

The solution uses an index column (L) on Bookings 2017 to create an index of the rows whose data will be transferred to Cleaner List. This column is needed by Numbers, but should be hidden from view to prevent accidental damage to the formulas in its cells.
The Index is created by this formula, entered in Bookings 2017::L2, and filled down:
IF(AND(C≥Cleaner List::B$1,D≤Cleaner List::D$1),MAX(L$1:L1)+1,"")
The formula checks the Start Date in column B and the End Date in column C. If the Start date is on or after the corresponding date in B1 of Cleaner List, AND the End date is on or before the corresponding date in D1 of Cleaner List, then the formula adds 1 to the largest value in cells above it in its column, otherwise it returns a null string ( "" ).
Cleaner List uses two formulas:
The first is entered in cell D1, and calculates the date 4 weeks after the date entered in B1:
B1+28
To change the number of weeks, change the multiple of 7 added to B1.
The second is used to transfer the indexed data from Bookings 2017 to the corresponding cells in Cleaner List.
The formula is entered into cell A3:
IF(ROW()−2>MAX(Bookings 2017::$L),"",INDEX(Bookings 2017::$A$1:$K$11,MATCH(ROW()−2,Bookings 2017::$L,0),MATCH(A$2,Bookings 2017::$1:$1,0)))
Because A is a Header column, the formula cannot be filled across the header/body boundary between columns A and B. It can, however be filled using a single copy-paste process:
- After clicking the green checkmark to confirm the formula in A3, and with the cell still selected, press command-C to Copy.
- Then shift-click on cell E7 to extend the selection to all cells in rows 3-7.
- Paste.
The core part of this formula is the INDEX function, shown in bold.
INDEX(range, row-index, column-index, area-index)
The range is all of Bookings 2017, except column L.
row-index is the number returned by the first MATCH. The number is the place in column L of the index number matching ROW()-2 (for A3, ROW() is 3, and the index number is 3-2, or 1 found in the index column row corresponding to Mr. Banks (row 4).
column-index is the number returned by the second MATCH, matching the location in the list in row 1 of Bookings 2017 of the value in cell A2 of Cleaner List. For A3, this is the "Name" column.
INDEX returns the value from the cell at the intersection of column 1 and row 4.
The first part of the formula is an IF statement that prevents the INDEX calculation in rows beyond the last index value.
Regards,
Barry