Maybe not the most elegant but should get you started. Note the ADDED variable ROW.
data Temp1;
input Col1 $4. Var1 Var2 Var3 Var4;
row + 1;
datalines;
Var1 . 45 200 223 11
Var2 0.43 . 43 99
Var3 0.98 0.89 . 39
Var4 0.99 0.77 0.99 .
;
run;
proc report data=Temp1
style(Header)=[backgroundcolor = lightgrey];
columns row Col1 Var1 Var2 Var3 Var4;
define row /noprint order;
compute var1;
if row=2 then
call define(3, "style",
"style=[backgroundcolor=yellow]");
if row in (3,4) then
call define(3, "style",
"style=[backgroundcolor=lightgreen]");
endcomp;
run;
ROW has the NOPRINT property so it does not appear in the table but values can be checked in a compute block.
Note that call define is setting the number of the column based on the Columns statement definition. So the 3rd column is Var1 after Row and Col1.
And exercise for the interested student to do the columns for Var2, var3 and var4 as needed.