No worries Pipboy, those were all excellent questions, and I can tell that you actually want to learn the "why" rather than just a "here's a problem, please fix it". That type of question is much more enjoyable to answer.
1. Why the format?
The Format method uses the same formatting options that you can use when formatting cells. 1 or 2 d's would give you a number, 3 d's gives you the 3 letter abbreviation for day, and anything more than that gives you the full name. So, the code says to take the number (1-7) and turn it into a day anme (Sunday, Monday, Tuesday...)
In the workbook, you could see this with the formula:
=TEXT(1,"dddd")
2. Why Saturday?
Actually, we start with Sunday, as you'll see with formula stated above. Saturday is the equivalent of 7, which is the last number we loop through. As for which day I start with, somewhat arbitrary. I just picked 1-7. Could also do 2-8 if you want to start with Monday.
3. Explain Advanced Filter
dataRange.AdvancedFilter xlFilterCopy, .Range("P12"), _
.Range("FilterRange")
There are 3 arguments given for the AdvancedFilter method, and 1 range that it is being called against. The dataRange is the area that is being filtered, and is defined earlier in the code. The first argument states that we are copying to another location, not just filtering in place. The 2nd arguement is the Criteria Range, which tells XL what headers to filter on, and by what criteria. The last argument is where to paste the data to. FilterRange is a named Range in the workbook, defined as R1:V1. I prefer using Named ranges incase you need to move stuff around, the code doesn't have to be changed.
More info on Advanced Filter:
http://www.contextures.com/xladvfilter01.html
4. Why the If check?
It's possible that our filter returns no results. In this case, the lastRow variable will be 1 (aka, just the header row). Since I don't want to paste the headers into the Target sheet, we need to then skip this day. Hence, the If check. With the sample data, Thursday and Friday fell into this situation. Other days like Monday and Tuesday have multiple records. Those records will start in row 2 (aka, R2) and then go down some variable amount of rows that I needed to be able to detect.
To aid in understanding the code, it might be helpful to step through the code using F8 rather than a straight run. Using F8 goes through the code one line at a time, allowing you to watch what's going on in the workbook (you can flip back and forth between the workbook and VBE).