我正在使用tagsets.excelxp和proc报告生成一个倾销到Excel的报告。我正在尝试获取列中的最小值,并且在我的输出中分别突出显示为红色和绿色的列中的最大值。
例如:
OBS Rate
1 5%
2 10%
3 15%
在我的Excel输出中,我希望5%突出显示为红色,15%突出显示为绿色。
我正在尝试在proc报告中使用计算块,但却无法使其工作。
答案 0 :(得分:1)
这里有一个如何解决这个问题的例子。
您必须在proc report
之前创建宏变量,它存储有关最小值和最大值的信息。
之后,您需要使用compute
块和call define
进行动态格式化。
ods tagsets.ExcelXP file="C:\temp\res.xml";
proc sql noprint;
select max(age), min(age)
into :max, :min
from sashelp.class;
quit;
proc report data=sashelp.class;
column Name Age;
compute Age;
if Age.sum = &max. then
call define(_row_, 'style', 'style={background=red}');
else if Age.sum = &min. then
call define(_row_, 'style', 'style={background=green}');
endcomp;
run;
ods tagsets.ExcelXP close;