BookmarkSubscribeRSS Feed
Calcite | Level 5

I would like to use the ODS tagsets sheet_interval option with a macro variable to create separate sheets for a frequency of each variable within the macro. For example, here I want separate tabs showing the values by year and state for "make," "model," and "color":

%LET varlist = make model color;

ODS tagsets.ExcelXP BODY = "C:\Mypath\myfile.xml";

ODS tagsets.ExcelXP options(sheet_interval='&varlist' absolute_column_width=&COL width_fudge='0.6' embedded_titles='Yes' sheet_name="");

TABLES year*state*(&varlist) / ROW CL; WEIGHT mywgt; RUN; ODS tagsets.ExcelXP CLOSE;


Right now, this code gives my a file with a separate tab for every table combination ( tab for the "make" table where year=2011 and state=alabama; one for the "make" table where year=2011 and state=alaska; etc.). Ideally, it would separate JUST on the macro variables so one "make" tab will have the cross-sections of every make by year and state - three tabs in total. Can someone help me see what I'm doing wrong?


Thanks! I'm using SAS 9.4.

Super User



You are getting a sheet per each table as the default. I might expect you to get a message as '&varlist' doesn't resolve your variables would not be valid options for sheet_interval which can be Table, Page, Bygroup, Proc, and None.


If I want to control output in the manner you are suggesting I would suggest sending the desired output to datasets using ODS OUTPUT and then using another report procedure that would allow use of year and state as either page variables with the PAGE interval or by variables and the BYGROUP sheet interval.



Calcite | Level 5

Thank you! I will try an an approach like that - do you know if there is a way to get the output to format in a manner similar to what is provided by the default surveyfreq procedure as below?





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. 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Get the $99 certification deal.jpg



Back in the Classroom!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 2 replies
  • 2 in conversation