作者kingbee ( 將心比心)
站內Statistics
標題Re: [問題] 利用MACRO垂直合併資料
時間Fri Mar 13 17:06:58 2009
隨手寫一下的 因為沒有檔案可以測試不知道對不對
你的excel檔因該都是靠編號的吧 若是連續的話(最後檔為120) 就把最下面填上120
%macro merg( datanum );
%do i = 1 %to &datanum;
PROC IMPORT OUT= data&i
DATAFILE= "D:\test\book&i"
DBMS=EXCEL REPLACE;
SHEET="sheet1";
GETNAMES=NO;
RUN;
%end;
DATA D;
SET
%do j =1 %to &datanum;
data&j
%end;
;
PROC PRINT;
RUN;
%mend;
%merg(datanum);
※ 引述《contente (妹妹)》之銘言:
: PROC IMPORT OUT= A
: DATAFILE= "D:\book1.xls"
: DBMS=EXCEL REPLACE;
: SHEET="sheet1";
: GETNAMES=NO;
: RUN;
: PROC IMPORT OUT= B
: DATAFILE= "D:\book2.xls"
: DBMS=EXCEL REPLACE;
: SHEET="sheet1";
: GETNAMES=NO;
: RUN;
: PROC IMPORT OUT= C
: DATAFILE= "D:\book3.xls"
: DBMS=EXCEL REPLACE;
: SHEET="sheet1";
: GETNAMES=NO;
: RUN;
: DATA D;
: SET A B C;
: PROC PRINT;
: RUN;
: 請問各位高手
: 如何利用MACRO指令一次把三個檔案合併再一起呢?
: 謝謝回答!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.75.188.45
推 tew:data d; set data&1-&datanum 是OK的嗎? 03/13 17:11
推 tew:順序可能有誤 因為是在%end;之後 有可能跑不出來 03/13 17:11
推 jasonlian:data d; set data&1-&datanum 這樣寫不行,建議改成: 03/14 00:21
→ jasonlian:%do j=1 %to &datanum; 03/14 00:22
→ jasonlian:proc append base=D data=data&j; 03/14 00:23
→ jasonlian:%end; 03/14 00:23
推 jasonlian:或者也可把 proc append...放在上面的%do i 迴圈裡也行 03/14 00:26
※ 編輯: kingbee 來自: 163.29.135.120 (03/16 09:25)