Okay, try this one. For simplicity I've created two separate cells calculating where your selected day starts in the data and how many rows it has (You can bury these inside the formula if you like...). You can then use an OFFSET function to look up each bit of data - so, for example, J2 has this in it:
To explain.
1. If the row you're currently in (here, row 2) is bigger than no of rows of data +1 (because of the titles in the output data), then put in a dash. Otherwise do the offset>
2. OFFSET takes min 3 values - cell to start in, how many rows to offset by, how many columns to offset by. So, starting in B1, the top of the 'Route' data, you need to calculate the number of offset rows. I've bracketed them to make them easier to read.
3. Firstly, $I$3-1. I3 shows the row number of the first entry you're interested in, so if you're interested in row 8 but are starting in row 1, then you need to offset by 7 (hence the -1).
4. Secondly, when you copy the formula down in the output data, you need to increment this by 1 for each row that you're copying it down. The first bit of data is in row 2 because of the titles, and that one shouldn't be incremented; the second bit of data is in row 3, and should be incremented by 1; etc. Hence ROW()-2
There are experts on this forum who can give you advice on which should run faster, but unfortunately I'm not one of them!
Bookmarks