SAS tagsets.excelxp条件格式

时间:2016-08-09 20:28:48

标签: excel sas

我正在使用tagsets.excelxp和proc报告生成一个倾销到Excel的报告。我正在尝试获取列中的最小值,并且在我的输出中分别突出显示为红色和绿色的列中的最大值。

例如:

OBS   Rate    
1     5%    
2     10%    
3     15%

在我的Excel输出中,我希望5%突出显示为红色,15%突出显示为绿色。

我正在尝试在proc报告中使用计算块,但却无法使其工作。

1 个答案:

答案 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;