This doesn't answer the question you've asked, but I think it addresses the need you seek to have filled.
First, I'll start with a spreadsheet that simply displays the data you've given. Note that I've merged the cells for each day, for a simpler display. I've also deliberately put the Items in non-alphabetical order, so you can better recognize the end result.
Next, we add a column that will copy the value in the Day column to an individual cell for each row in the Item column. This column doesn't have to be where I've placed it, but it must be adjacent to the Item column.
Now, for the sorting. For this to be done accurately, the following must be true:
- Each Day must have exactly the same number of rows as the others.
- All cells that will be sorted (better shown below) must be non-merged cells.
Now that you have all the data entered, select only columns B and C. Then, on the Data tab, select Sort. In the Sort dialog, make sure that "My data has headers" is selected. Then, choose DayValue from the "Sort by" drop-down and leave the defaults ("Values" and "Smallest to Largest") in the other drop-downs. Now, click "Add Level". For this next level, you want to select Item as the Column, and leave the defaults of "Values" and "A to Z". When done, your screen should look like this:
Now, just get rid of the extra column by selecting the column, right-clicking, and pick "Hide". After that, all that's displayed is just the data you want shown, in the order you wanted it.