Hi:
What you want to do (traffic light one cell based on a comparison to another cell) is not something that is easy to do with PROC TABULATE, but can be done with PROC REPORT. Especially, since I suspect you want the BENCHMARK for a particular row combination of group and priority to be compared to the DURATION mean for the same row combination of group and priority.
PROC TABULATE only allows you to traffic light based on one cell's value. And your user-defined format method is the only method that is available to TABULATE -- you'd have to apply the format to the entire column for DURATION*MEAN.
PROC REPORT, on the other hand, allows you to traffic light cells based on the values in another cell using CALL DEFINE in a COMPUTE block. So you could traffic light the DURATION*MEAN value based on the BENCHMARK value on the same row. The (untested) syntax would be something like this:
[pre]
compute durmean;
if durmean gt benchmark.mean then do;
call define(_col_,'style','style={foreground=red}');
end;
endcomp;
[/pre]
For a more concrete example, consider the program below that uses SASHELP.CLASS and highlights several columns based on the values found in other columns.
There is too much about PROC REPORT to go into a lot of detail on the differences between REPORT and TABULATE here, but using this program as a starting point, and these papers,
http://www2.sas.com/proceedings/sugi25/25/hands/25p147.pdf
http://www2.sas.com/proceedings/sugi29/242-29.pdf
http://www2.sas.com/proceedings/sugi30/244-30.pdf
you should be able to find documentation and other user group papers to get you going down the PROC REPORT road.
cynthia
[pre]
ods html file='c:\temp\class_style.html' style=sasweb;
proc report data=sashelp.class nowd;
column age sex ('Height' height height=htavg);
define sex / group;
define age / group ;
define height / min 'Min' f=5.1;
define htavg / mean 'Mean' f=5.1;
compute sex;
if sex = 'F' and age = 13 then do;
call define(_row_,'style','style={background=yellow}');
end;
endcomp;
compute htavg;
if htavg = height.min then do;
call define (_col_,'style','style={foreground=green font_weight=bold font_size=14pt}');
call define ('height.min','style','style={foreground=green font_weight=bold font_size=14pt}');
end;
if round(htavg,.1) = 66.8 then do;
call define (_row_,'style','style={background=cxccccff}');
end;
endcomp;
run;
ods html close;
[/pre]