フィールド(parent_account)の値に基づいて1つのSASテーブルを複数のExcelワークシートにエクスポートしようとしています。各ワークシートの名前をparent_accountと同じにしたい。私はhttp://www.tek-tips.com/viewthread.cfm?qid=1335588にある次のコードを使用していますが、これらのエラーメッセージが表示されています。フィールド値に基づいて1つのSASテーブルを複数のExcelワークシートにエクスポート
数値オペランドが必要な%EVAL関数または%IF条件で文字オペランドが見つかりました。 マクロ関数%SCANの引数2は数値ではありません。
%macro export_to_excel();
%local varlist idx var;
proc sql noprint;
select distinct parent_account into: varlist separated by '||'
from todays_activity;
quit;
%let idx = 1;
%do %while (%scan(&varlist, &idx, %str(||)) ne %str());
%let var=%scan(&varlist, &idx, %str(||));
proc export data=sashelp.class (where=(parent_account="&var"))
outfile='My file location\Report.xls'
dbms=excel;
sheet="&var";
quit;
%let idx = %eval(&idx + 1);
%end;
%mend export_to_excel;
%export_to_excel;
役に立つかもしれません。現在のバージョンを使用している場合は、ODS EXCELを使用して、各シートの新しいシートを作成するときに調整してください。次に、BY文でPROC PRINTを使用します。 – Tom
申し訳ありませんが、私はそれを言及すべきでした。 SAS Enterprise Guide 7.11を使用しています。 –
あなたのEGセッションに接続しているSASのバージョンは、EGバージョンにとってより重要です。 – Tom