2014-01-09 6 views
1

또 다른 질문입니다. 출력을 생성하는 여러 데이터 세트를 사용하여 이들을 하나의 Excel 시트로 출력하고 내 양식을 적용 할 수 있습니다. 예를 들어 나는 데이터는 데이터가여러 데이터 집합을 Excel 통합 문서로 출력

each data set has two coloumns, for example 
Col 1 Col 2 
1 2 
3 4 
5 6 

3 세트 1, 데이터 2 설정 설정 한 나는 각 데이터가 하나 개의 워크 시트로 설정하고 같이해야 엑셀, 그래서 열로 구분합니다

Col 1 Col 2 Blank Col Col 1 Col 2 Blank Col 

somone에 내가 (DDE는 아마 가능)

답변

1

당신은 DDE를 사용하여 할 확실히 할 수 있습니다. DDE는 Excel의 메뉴, 버튼, 셀 등에서 사용자의 클릭을 시뮬레이션합니다. has1, have2 및 has3이라는 이름을 가진 3 개의 데이터 세트에 대해 매크로 루프를 사용하여이를 수행 할 수있는 예가 있습니다. 좀 더 일반적인 해결책 (알 수없는 수의 데이터 세트, 다양한 변수, 임의의 데이터 세트 이름 등)이 필요하면 코드를 업데이트해야하지만 'DDE 파트'는 본질적으로 꽤 똑같습니다. 한 가지 더 가정합니다 - 코드를 실행하는 동안 Excel 통합 문서가 열려 있어야합니다. 자동으로 수행 할 수 있지만 Excel을 시작하고 DDE 자체를 사용하여 파일을 열 수 있습니다. DDE here에는 아주 멋진 소개가 있습니다.이 모든 트릭에 대한 자세한 내용은 여기에서 설명합니다.

data have1; 
    input Col1 Col2; 
datalines; 
1 2 
3 4 
5 6 
; 
run; 
data have2; 
    input Col1 Col2; 
datalines; 
1 2 
3 4 
5 6 
7 8 
; 
run; 
data have3; 
    input Col1 Col2; 
datalines; 
1 2 
3 4 
7 8 
5 6 
9 10 
; 
run; 



%macro xlsout; 

/*iterating through your datasets*/ 
%do i=1 %to 3; 

    /*determine number of records in the current dataset*/ 
    proc sql noprint; 
     select count(*) into :noobs 
     from have&i; 
    quit; 

    /*assign a range on the workbook spreadsheet matching to data in the current dataset*/ 
    filename range dde "excel|[myworkbook.xls]sas!r1c%eval((&i-1)*3+1):r%left(&noobs)c%eval((&i-1)*3+2)" notab; 

    /*put data into selected range*/ 
    data _null_; 
     set have&i; 
     file range; 
     put Col1 '09'x Col2; 
    run; 
%end; 

%mend xlsout; 
%xlsout 
+0

당신은 챔피언에게 감사드립니다. –

+0

안녕하세요 당신의 루프 어떻게 숫자 1에서 3까지 반복하는 데이터 세트를 반복합니까? –

+0

PROC SQL 및 DATA 단계에서'have & i' 구조를 사용합니다. 'have1','have2' 및'have3' 이름을 만듭니다. –

0

당신은 정확히 SAS와 함께 할 수 없어, 문제는이 사실

안부 때문이다 DDE 볼 필요가 내게 말했다. SaviCells Pro를 살펴볼 것을 제안합니다.

http://www.sascommunity.org/wiki/SaviCells

http://www.savian.net/utilities.html

+0

도움 덕분에 외부 소프트웨어 패키지를 사용하지 않고도이 작업을 수행 할 수 있습니다. sas에서는 sas로 직접 내보낼 수 있지만 sas 내에서 출력 데이터를 처리하는 방법을 잘 모르겠다. –

0

당신은 아마 당신이 ODS TAGSETS.EXCELXP 또는 새로운 ODS EXCEL (9.4 TS1M1)을 요구하고 무엇을 달성 할 수있다. 그러나 데이터 세트를 사전에 정렬 (즉, 병합 또는 조 변경 또는 오른쪽 열의 데이터 세트 가져 오기)해야하거나 PROC REPORT 또는 다른 절차를 사용하여 올바른 형식으로 가져와야합니다.

관련 문제