In reply to Philip Green.

Hi Philip,
Thank you for the great question. I believe it is possible, however, there might be more to it than just flipping dimensions. Here is how I would approach the "flip/swap" dimensions (untested, but gives you an idea in case you need 3 or more dimensions):

%macro iterate_supression (class1=, class2=, class3=);

%let nextclass = &class1;
%do %while (&sup_flag);

%suppress(dsname=people_sup, supclass=&nextclass);

%if &nextclass eq &class1 %then %let nextclass = &class2;
%if &nextclass eq &class2 %then %let nextclass = &class3;
%if &nextclass eq &class3 %then %let nextclass = &class1;

%end;

%mend iterate_supression;

Please let me know if this works for you.
Regards,
Leonid