The main thing I would suggest is keeping in mind "is the current thing I am thinking about for a page, row, or column expression".
Since Tabulate is not intended to cross statistics (you can't have a mean in a row expression that attempts to calculate an intersection with another expression in a column) that means basically placing all the statistics with either a row or column. Hence recognizing which is which is a key element with Tabulate.
The Page expression is basically only class variables and creates sub-tables for the combinations of variables that appear there.
The other reason to keep the row/column straight is because you have the various PCT statistics pctn, rowpctn, colpctn, pagepctn and reppctn and the respective pctsum statistics and knowing which you want is a bit easier with that.
After that it is basically the use of () to group like items and how to do overrides. I admit that Tabulate was a bit easier without the ODS options so adding those after knowing the basic table building syntax may have been easier. Most of what I know came from a SAS publication about Proc Report and tabulate but that is at the office and I don't remember the exact name. I think it was published for SAS 7 though. I don't remember any ODS stuff there.
... View more