I am using TABULATE for a report written to Excel where the MISSING option is needed since one of the class levels can have missing values. These obs are needed for the other class level vars' summary data. This leaves a set of columns (n sum rowpctsum) with all missing values for the class var having the missing values. Is there a style definition that can suppress just the columns from the missing value and keep the other columns for the non-missing values? Below is a skeleton of the code I am using as I have had to change var names to keep it from being recognized. The var rbrn can have missing values. This table has values of tbrn within group_id as the rows and rbrn as the columns. I realize that it is a lot to ask; any help you can provide would be greatly appreciated.
You can suppress a COLUMN on PROC REPORT output by using the NOPRINT option on the DEFINE statement. This option will suppress the column on EVERY row. When you have tabular output, whether it's PROC REPORT or PROC TABULATE, both procedures "want" the same number of columns on every report row. TABULATE won't let you hide columns, REPORT will -- but you have to hide the column on EVERY report row.
There is no equivalent to NOPRINT for a ROW. I have seen some folks fake out NOPRINT by making the background color and the foreground color of the row the same -- this leaves a space, but "blanks out" the report values on the row. And, this kind of cosmetic trickery may not work in all viewers -- for example, it might work in a browser, but not in Excel or Word or vice versa.
beware of this as a solution, if you need security.
How important is it that these columns remain hidden?
How easy is it to "un-hide" columns in the generated excel?
If the whole column is to be suppressed because it is always empty, would it not be better merely to
not report these data? (just remove that part of the analysis.)