hallo zusammen,
seit der Umstellung auf SAS 9.4 haben wir in einer Auswertung (die wir täglich erzeugen) das Problem, dass in unserer Excelausgabe (per ODS) der Autofilter mitten in die Daten gesetzt wird.
Verursacht wird dies wahrscheinlich durch einen Compute-Block zur Textausgabe im Proc Report auf dem zuvor erzeugten Excel-Sheet. Der Autofilter landet dann nicht in den Spaltenüberschriften, sondern in der letzten Datenzeile des vorhergehenden Sheets.
Nachstellen lässt sich das Problem mit folgendem Code:
data test;
var1=1; var2=1; var3=10; output;
var1=1; var2=2; var3=10; output;
var1=1; var2=2; var3=10; output;
var1=2; var2=1; var3=10; output;
var1=2; var2=2; var3=10; output;
var1=2; var2=2; var3=10; output;
var1=2; var2=2; var3=10; output;
var1=2; var2=2; var3=10; output;
var1=2; var2=2; var3=10; output;
var1=2; var2=2; var3=10; output;
run;
ods results;
ods _all_ close;
ods tagsets.excelxp file='p:\test.xls' style=styles.sasweb;
* Excelsheet 1;
ods tagsets.excelxp options(sheet_name='Sheet 1');
proc report data=test nowd;
column var1 var2 var3;
define var1 / group noprint;
define var2 / group;
define var3 / analysis sum;
compute before var1;
text = "Textausgabe ";
line text $40.;
endcomp;
run;
* Excelsheet 2 mit Autofilter;
ods tagsets.excelxp options(sheet_name='Sheet 2' autofilter='all');
proc report data=test nowd;
column var1 var2 var3;
define var1 / display;
define var2 / display;
define var3 / display;
run;
ods _all_ close;
ods html newfile=proc;
Das Tabellenblatt 2 hat die Autofilter jetzt in Zeile 7:
Leider können wir auf den Compute-Block nicht verzichten.
Hat einer eine Idee, wie ich das beheben kann?
Vielen Dank und viele Grüße. Heide Tribius