Hi:
I agree with Peter -- I might understand treating the "Total" summary lines differently, but I don't understand how formatting the E1, F1 and only the last sub-total with $ adds anything to the report.
As Peter said, you could do this in a DATA step program. You can also use a CALL DEFINE statement in PROC REPORT to have a different format applied to a cell. But the down-side of the PROC REPORT approach is that you would also have a SUB-TOTAL for the D1 row. The program below uses a dataset called TESTDATA with a grouping variable called "GRPING" that is defined as a NOPRINT variable. Right now, the program puts $ on ALL the summary lines and then also puts the $ on the E1 and F1 rows. The logic will be a bit trickier if you want to ONLY put $ on the E1, F1 and last summary line. But if you're going to go down the DATA step road, you will have control over every cell you write.
cynthia
[pre]
data testdata;
length disp $2 test $8;
infile datalines;
input disp $ test $ test1;
if test in ('A1', 'B1', 'C1') then grping = 1;
else if test = 'D1' then grping = 2;
else if test in ('E1', 'F1') then grping = 3;
return;
datalines;
mm A1 123
mm B1 123
mm C1 123
mm D1 300
mm E1 0
mm F1 45
q1 A1 222
q1 B1 333
q1 C1 0
q1 D1 99
q1 E1 0
q1 F1 450
q2 A1 333
q2 B1 555
q2 C1 98
q2 D1 0
q2 E1 122
q2 F1 0
q3 A1 440
q3 B1 0
q3 C1 0
q3 D1 780
q3 E1 0
q3 F1 0
q4 A1 3
q4 B1 300
q4 C1 3
q4 D1 868
q4 E1 0
q4 F1 0
;
run;
ods listing close;
ods html file='c:\temp\calldef.html' style=sasweb;
proc report data=testdata nowd;
column grping test test1,disp;
title '1) With PROC REPORT -- no need to transpose, but you get a subtotal for D1';
define grping / group noprint;
define test / group;
define disp / across 'Disp As Across Var';
define test1 / sum f=comma14.0 ' ';
break after grping / summarize;
compute test1;
if (upcase(_break_)='GRPING') or
test in ('E1', 'F1') then do;
call define('_c3_','format','dollar14.0');
call define('_c4_','format','dollar14.0');
call define('_c5_','format','dollar14.0');
call define('_c6_','format','dollar14.0');
call define('_c7_','format','dollar14.0');
end;
endcomp;
compute after grping;
test = 'Total';
line ' ';
endcomp;
run;
ods _all_ close;
[/pre]