複数のSASデータセットを、1つのMicrosoft Excelファイル(ブック)内で複数のシートに分けて出力する方法を教えてください。
EXPORTプロシジャでは、同一ブック内の複数シートへの出力はできません。次の2通りの方法で出力する方法があります。
具体的な説明とプログラム例をご紹介します。
■ DDE の機能を使用してExcelシートに書き込む方法
DDEは、Dynamic Data Exchange の略で、Microsoft社が提供しているWindowsアプリケーション間でのデータ交換に広く
使用されているプロトコルです(DDEの詳細については、Microsoft社提供、市販されている書籍などでご確認ください)。
SASでは、このDDEプロトコルを利用して、MS-Excelにデータを出力することが可能です(※ MS-ExcelがSASと同じPCに
インストールされていることが必要です)。
以下のプログラム例では、2つのシートに出力していますが、この部分を適宜変更することにより、さらに複数のシートに
対して書き込むことができます。
OPTIONS NOXWAIT NOXSYNC;
X "start excel";
/* MS Excel を起動 */
DATA _null_;
x=SLEEP(10);
RUN;
/* Excelの起動を10秒待機 */
/* 待機時間は環境に応じて変えてください */
FILENAME ddedata DDE 'excel|sheet1!r1c1:r100c3';
/* DDEを利用したエクセル出力 */
/* シート1枚目 */
/* 乱数を使用して、サンプルを作成します */
DATA _null_;
FILE ddedata;
DO i = 1 TO 100;
x = RANUNI(i);
y = 10 + x;
z = x - 10;
PUT x y z;
END;
RUN;
/* Excelへの書き込みを待機 */
DATA _null_;
x=SLEEP(10);
RUN;
FILENAME ddedata2 DDE 'excel|sheet2!r1c1:r100c3';
/* シート2枚目 */
/* 乱数を使用して、サンプルを作成します */
DATA _null_;
FILE ddedata2;
DO i = 1 TO 100;
x = RANUNI(i);
y = 20 + x;
z = x - 30;
PUT x y z;
END;
RUN;
■ SAS/ACCESS to ODBCを用いてExcelシートに書き込む方法
データソースの定義は、[ODBC データ ソース アドミニストレーター]を開き、データソースを定義します。なお、詳細の定義方法につきましては、Microsoft提供のヘルプ等をご参照ください。
[ODBC データ ソース アドミニストレーター]は、SASのビット数に合わせて、定義する必要があります。
一般的に、以下の実行ファイルより、[ODBC データ ソース アドミニストレーター]は、開くことができます。
32ビットの[ODBC データ ソース アドミニストレーター]
C:\Windows\SysWOW64\odbcad32.exe
64ビットの[ODBC データ ソース アドミニストレーター]
C:\WINDOWS\system32\odbcad32.exe
libname mylib odbc dsn=Excel; /*データソース名をExcel とします。*/ /*上記データソースの設定で定義した名前を指定してください。*/
DATA mylib.sheet1a; SET sashelp.class; RUN; /* 新しくsheet1a を作成 */ DATA mylib.sheet2a; SET sashelp.class; RUN; /* 新しくsheet2a を作成 */
libname mylib clear;
なお、Excelへの複数シート出力に関するサンプルのマクロを、下記のURLで公開しています。あわせてご参照ください。
URL:http://support.sas.com/kb/6/695.html
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。