表の行数が何行になっても対応できる方法です。
まず下のような表があり、赤枠の部分を読込みたいとします。
この表をDDEで取り込む場合通常は以下のようにfilenameステートメントを記述します。
filename myxls dde "Excel|[Book1]Sheet1!R2C1:R3C3";
data test;
infile myxls;
input name $ sex $ age;
run;
無事にデータセット化できました。
では下の図のように表に値が追加されていった場合はどうすればよいでしょうか。
filenameの記述を毎回書き換えるのは少し面倒ですよね。
こういう場合はfilenameステートメントを次のように記述しておきます。
filename myxls dde "Excel|[Book1]Sheet1!C1:C3";
R1C1参照の部分を以下のように変更しています。
R2C1:R3C3
↓
C1:C3
SASデータセットに取り込むプログラムは次のように変更します。
data test;
infile myxls firstobs=2;
input name $ sex $ age;
run;
firstobs=2を追加していますね。
無事にデータセット化することが出来ました。
R1C1形式の指定をカラム情報のみにすると指定したカラム範囲の全てのデータを対象にします。
(firstobs=2を追加したのは表の項目ラベルも対象範囲にはいってしまうためです)
こうしておく事でデータが随時追加されていく表に対しても
プログラムの変更なく取り込むことが出来ますので、覚えておくと便利です。
おわり
投稿者:@miya_NI
0 件のコメント:
コメントを投稿