<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ODS EXCELXP output multiple tables per sheet across multiple sheets in ODS and Base Reporting</title>
    <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246942#M15182</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've been stressing trying to find a resolution for my problem.&amp;nbsp; I have a report that I need to export to excel.&amp;nbsp; Each sheet contains three different SAS tables, with titles embedded, and I need to do this across 12 different sheets.&amp;nbsp; So pretty much, each of the 12 excel sheets will consist of 3 unique SAS tables with embedded titles.&amp;nbsp; I am able to produce the report of three tables on one sheet with titles; however, only the last sheet is remaining in the final excel output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%MACRO SUMMARY(TESTNS, STUDY, LB, UB);&lt;BR /&gt;&lt;BR /&gt;PROC MEANS NOPRINT N MEAN STDDEV SKEW KURT MAX P99 P95 P90 P75 P50 P25 P10 P5 P1 MIN VARDEF = N DATA =&amp;nbsp; CLEAN_&amp;amp;STUDY._&amp;amp;assessment.;&lt;BR /&gt;VAR &amp;amp;varlist.;&lt;BR /&gt;CLASS MFC;&lt;BR /&gt;OUTPUT OUT = ALL_STATS_&amp;amp;STUDY.&amp;nbsp; N= MEAN= STDDEV= SKEW= KURT= MAX= P99= P95= P90= P75= P50= P25= P10= P5= P1= MIN= /AUTONAME;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA ALL_STATS_&amp;amp;STUDY. NOPRINT;&lt;BR /&gt;SET ALL_STATS_&amp;amp;STUDY.;&lt;BR /&gt;IF MASTER_FORM_CODE = '' THEN DELETE;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;/*SUMMARY JOIN*/&lt;BR /&gt;%let SCORELIST = &amp;amp;varlist.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%do j = 1 %to 12;&lt;BR /&gt;%let SCORE = %scan(&amp;amp;SCORELIST., &amp;amp;J);&lt;BR /&gt;&lt;BR /&gt;ods tagsets.ExcelXP file='C:\Users\...\Desktop\Test Output2.xml' style=statistical&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;options (/*sheet_interval = 'NONE'*/&amp;nbsp; sheet_name = "&amp;amp;score." /*sheet_label = " " */ embedded_titles='yes');&lt;BR /&gt;&lt;BR /&gt;PROC TRANSPOSE DATA = ALL_STATS_&amp;amp;STUDY. OUT =TEST2&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;ID MFC;&lt;BR /&gt;IDLABEL MFC;&lt;BR /&gt;RUN;&lt;BR /&gt;/*ods trace on;*/&lt;BR /&gt;DATA &amp;amp;SCORE. noprint;&lt;BR /&gt;SET TEST2;&lt;BR /&gt;_NAME_ = COMPRESS(TRANWRD(UPCASE(_NAME_), "&amp;amp;SCORE._",""));&lt;BR /&gt;RENAME _NAME_ = &amp;amp;score.;&lt;BR /&gt;LABEL _NAME_ = &amp;amp;score.;&lt;BR /&gt;WHERE UPCASE(_NAME_) CONTAINS&amp;nbsp; "&amp;amp;SCORE.";&lt;BR /&gt;ods table =&lt;BR /&gt;RUN;&lt;BR /&gt;/*ods trace on;*/&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%DO I = 1 %TO &amp;amp;N_GRADES.;&lt;BR /&gt;PROC SQL noprint;&lt;BR /&gt;SELECT CGL INTO :CG&lt;BR /&gt;FROM GRADES&lt;BR /&gt;WHERE INDEX = &amp;amp;I.;&lt;BR /&gt;QUIT;&lt;BR /&gt;&lt;BR /&gt;PROC MEANS NOPRINT N MEAN STDDEV SKEW KURT MAX P99 P95 P90 P75 P50 P25 P10 P5 P1 MIN VARDEF = N DATA =&amp;nbsp; CLEAN_&amp;amp;STUDY._&amp;amp;assessment.;&lt;BR /&gt;VAR &amp;amp;varlist.;&lt;BR /&gt;CLASS MFC;&lt;BR /&gt;WHERE CURRENT_GRADE_LEVEL = "&amp;amp;CG.";&lt;BR /&gt;OUTPUT OUT = ALL_STATS_&amp;amp;STUDY.&amp;amp;I.&amp;nbsp; N= MEAN= STDDEV= SKEW= KURT= MAX= P99= P95= P90= P75= P50= P25= P10= P5= P1= MIN= /AUTONAME;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA ALL_STATS_&amp;amp;STUDY.&amp;amp;I. NOPRINT;&lt;BR /&gt;SET ALL_STATS_&amp;amp;STUDY.&amp;amp;I.;&lt;BR /&gt;IF MFC = '' THEN DELETE;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;PROC TRANSPOSE DATA = ALL_STATS_&amp;amp;STUDY.&amp;amp;I. OUT =TEST2&amp;amp;I. ;&lt;BR /&gt;ID MFC;&lt;BR /&gt;IDLABEL MFC;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA &amp;amp;SCORE.&amp;amp;I.;&lt;BR /&gt;SET TEST2&amp;amp;I.;&lt;BR /&gt;_NAME_ = COMPRESS(TRANWRD(UPCASE(_NAME_), "&amp;amp;SCORE._",""));&lt;BR /&gt;RENAME _NAME_ = &amp;amp;score.;&lt;BR /&gt;LABEL _NAME_ = &amp;amp;score.;&lt;BR /&gt;WHERE UPCASE(_NAME_) CONTAINS&amp;nbsp; "&amp;amp;SCORE.";&lt;BR /&gt;RUN;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%END;&lt;BR /&gt;&lt;BR /&gt;ods tagsets.ExcelXP options(sheet_interval = 'NONE'&amp;nbsp; sheet_name = "&amp;amp;score.");&lt;BR /&gt;title1 'ALL GRADE LEVELS';&lt;BR /&gt;proc report data = &amp;amp;score.;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%DO M = 1 %TO &amp;amp;NG.;&lt;BR /&gt;proc sql noprint;&lt;BR /&gt;select cgl into :cgl&lt;BR /&gt;from grades&lt;BR /&gt;where index = &amp;amp;M.;&lt;BR /&gt;quit;&lt;BR /&gt;%put &amp;amp;SCORE.&amp;amp;M.;&lt;BR /&gt;&lt;BR /&gt;title1 "Where CGLl = &amp;amp;cgl.";&lt;BR /&gt;proc report data = &amp;amp;SCORE.&amp;amp;m.;&lt;BR /&gt;RUN;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%END;&lt;BR /&gt;ods tagsets.ExcelXP close;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%end;&lt;BR /&gt;&lt;BR /&gt;%mend;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I had mentined, the format of the output is exactly what I need; however, I am only getting the last tab of my varlist macro when I need to get 12.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas or suggestions for improvement are greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank You!&lt;/P&gt;</description>
    <pubDate>Fri, 29 Jan 2016 17:42:21 GMT</pubDate>
    <dc:creator>CJ19</dc:creator>
    <dc:date>2016-01-29T17:42:21Z</dc:date>
    <item>
      <title>ODS EXCELXP output multiple tables per sheet across multiple sheets</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246942#M15182</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've been stressing trying to find a resolution for my problem.&amp;nbsp; I have a report that I need to export to excel.&amp;nbsp; Each sheet contains three different SAS tables, with titles embedded, and I need to do this across 12 different sheets.&amp;nbsp; So pretty much, each of the 12 excel sheets will consist of 3 unique SAS tables with embedded titles.&amp;nbsp; I am able to produce the report of three tables on one sheet with titles; however, only the last sheet is remaining in the final excel output.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;%MACRO SUMMARY(TESTNS, STUDY, LB, UB);&lt;BR /&gt;&lt;BR /&gt;PROC MEANS NOPRINT N MEAN STDDEV SKEW KURT MAX P99 P95 P90 P75 P50 P25 P10 P5 P1 MIN VARDEF = N DATA =&amp;nbsp; CLEAN_&amp;amp;STUDY._&amp;amp;assessment.;&lt;BR /&gt;VAR &amp;amp;varlist.;&lt;BR /&gt;CLASS MFC;&lt;BR /&gt;OUTPUT OUT = ALL_STATS_&amp;amp;STUDY.&amp;nbsp; N= MEAN= STDDEV= SKEW= KURT= MAX= P99= P95= P90= P75= P50= P25= P10= P5= P1= MIN= /AUTONAME;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA ALL_STATS_&amp;amp;STUDY. NOPRINT;&lt;BR /&gt;SET ALL_STATS_&amp;amp;STUDY.;&lt;BR /&gt;IF MASTER_FORM_CODE = '' THEN DELETE;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;/*SUMMARY JOIN*/&lt;BR /&gt;%let SCORELIST = &amp;amp;varlist.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%do j = 1 %to 12;&lt;BR /&gt;%let SCORE = %scan(&amp;amp;SCORELIST., &amp;amp;J);&lt;BR /&gt;&lt;BR /&gt;ods tagsets.ExcelXP file='C:\Users\...\Desktop\Test Output2.xml' style=statistical&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;options (/*sheet_interval = 'NONE'*/&amp;nbsp; sheet_name = "&amp;amp;score." /*sheet_label = " " */ embedded_titles='yes');&lt;BR /&gt;&lt;BR /&gt;PROC TRANSPOSE DATA = ALL_STATS_&amp;amp;STUDY. OUT =TEST2&amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;ID MFC;&lt;BR /&gt;IDLABEL MFC;&lt;BR /&gt;RUN;&lt;BR /&gt;/*ods trace on;*/&lt;BR /&gt;DATA &amp;amp;SCORE. noprint;&lt;BR /&gt;SET TEST2;&lt;BR /&gt;_NAME_ = COMPRESS(TRANWRD(UPCASE(_NAME_), "&amp;amp;SCORE._",""));&lt;BR /&gt;RENAME _NAME_ = &amp;amp;score.;&lt;BR /&gt;LABEL _NAME_ = &amp;amp;score.;&lt;BR /&gt;WHERE UPCASE(_NAME_) CONTAINS&amp;nbsp; "&amp;amp;SCORE.";&lt;BR /&gt;ods table =&lt;BR /&gt;RUN;&lt;BR /&gt;/*ods trace on;*/&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%DO I = 1 %TO &amp;amp;N_GRADES.;&lt;BR /&gt;PROC SQL noprint;&lt;BR /&gt;SELECT CGL INTO :CG&lt;BR /&gt;FROM GRADES&lt;BR /&gt;WHERE INDEX = &amp;amp;I.;&lt;BR /&gt;QUIT;&lt;BR /&gt;&lt;BR /&gt;PROC MEANS NOPRINT N MEAN STDDEV SKEW KURT MAX P99 P95 P90 P75 P50 P25 P10 P5 P1 MIN VARDEF = N DATA =&amp;nbsp; CLEAN_&amp;amp;STUDY._&amp;amp;assessment.;&lt;BR /&gt;VAR &amp;amp;varlist.;&lt;BR /&gt;CLASS MFC;&lt;BR /&gt;WHERE CURRENT_GRADE_LEVEL = "&amp;amp;CG.";&lt;BR /&gt;OUTPUT OUT = ALL_STATS_&amp;amp;STUDY.&amp;amp;I.&amp;nbsp; N= MEAN= STDDEV= SKEW= KURT= MAX= P99= P95= P90= P75= P50= P25= P10= P5= P1= MIN= /AUTONAME;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA ALL_STATS_&amp;amp;STUDY.&amp;amp;I. NOPRINT;&lt;BR /&gt;SET ALL_STATS_&amp;amp;STUDY.&amp;amp;I.;&lt;BR /&gt;IF MFC = '' THEN DELETE;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;PROC TRANSPOSE DATA = ALL_STATS_&amp;amp;STUDY.&amp;amp;I. OUT =TEST2&amp;amp;I. ;&lt;BR /&gt;ID MFC;&lt;BR /&gt;IDLABEL MFC;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;DATA &amp;amp;SCORE.&amp;amp;I.;&lt;BR /&gt;SET TEST2&amp;amp;I.;&lt;BR /&gt;_NAME_ = COMPRESS(TRANWRD(UPCASE(_NAME_), "&amp;amp;SCORE._",""));&lt;BR /&gt;RENAME _NAME_ = &amp;amp;score.;&lt;BR /&gt;LABEL _NAME_ = &amp;amp;score.;&lt;BR /&gt;WHERE UPCASE(_NAME_) CONTAINS&amp;nbsp; "&amp;amp;SCORE.";&lt;BR /&gt;RUN;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%END;&lt;BR /&gt;&lt;BR /&gt;ods tagsets.ExcelXP options(sheet_interval = 'NONE'&amp;nbsp; sheet_name = "&amp;amp;score.");&lt;BR /&gt;title1 'ALL GRADE LEVELS';&lt;BR /&gt;proc report data = &amp;amp;score.;&lt;BR /&gt;RUN;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%DO M = 1 %TO &amp;amp;NG.;&lt;BR /&gt;proc sql noprint;&lt;BR /&gt;select cgl into :cgl&lt;BR /&gt;from grades&lt;BR /&gt;where index = &amp;amp;M.;&lt;BR /&gt;quit;&lt;BR /&gt;%put &amp;amp;SCORE.&amp;amp;M.;&lt;BR /&gt;&lt;BR /&gt;title1 "Where CGLl = &amp;amp;cgl.";&lt;BR /&gt;proc report data = &amp;amp;SCORE.&amp;amp;m.;&lt;BR /&gt;RUN;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;%END;&lt;BR /&gt;ods tagsets.ExcelXP close;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;%end;&lt;BR /&gt;&lt;BR /&gt;%mend;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I had mentined, the format of the output is exactly what I need; however, I am only getting the last tab of my varlist macro when I need to get 12.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas or suggestions for improvement are greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank You!&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jan 2016 17:42:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246942#M15182</guid>
      <dc:creator>CJ19</dc:creator>
      <dc:date>2016-01-29T17:42:21Z</dc:date>
    </item>
    <item>
      <title>Re: ODS EXCELXP output multiple tables per sheet across multiple sheets</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246954#M15183</link>
      <description>Each time your sheet target changes you need to change the sheet name as a minimum</description>
      <pubDate>Fri, 29 Jan 2016 18:44:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246954#M15183</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-01-29T18:44:01Z</dc:date>
    </item>
    <item>
      <title>Re: ODS EXCELXP output multiple tables per sheet across multiple sheets</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246960#M15184</link>
      <description>&lt;P&gt;You should split the first ODS statement into two. &amp;nbsp;Place the part with the FILE= option before the %DO loop. Leave the part that changes the sheetname insdie the loop. &amp;nbsp;Move the ODS ... CLOSE outside of the loop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jan 2016 19:12:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246960#M15184</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2016-01-29T19:12:22Z</dc:date>
    </item>
    <item>
      <title>Re: ODS EXCELXP output multiple tables per sheet across multiple sheets</title>
      <link>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246964#M15185</link>
      <description>&lt;P&gt;Tom,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you a million time over!&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Greatly Appreciated,&lt;/P&gt;&lt;P&gt;Chris&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jan 2016 19:48:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/ODS-and-Base-Reporting/ODS-EXCELXP-output-multiple-tables-per-sheet-across-multiple/m-p/246964#M15185</guid>
      <dc:creator>CJ19</dc:creator>
      <dc:date>2016-01-29T19:48:00Z</dc:date>
    </item>
  </channel>
</rss>

