Hi, I see you've got something that works, but don't you want to wrap the proc report in a macro too. Something like this: %let depts=AAA HS BUS ET IND IST PS NUR; %macro dodepts; %do i=1 %to %sysfunc(countw("&depts")); %let dept=%scan(&depts,&i); %doreport(&dept); %end; %mend dodepts; %macro doreport(dept); data _temp; set hunted; if dept="&dept"; CALL SYMPUT ('GR',trim(left(put (GRADS,8.)))); CALL SYMPUT ('PL', trim(left(put(PLACED,8.)))); CALL SYMPUT ('PCT',trim(left(put(PCT_PLACED,8.)))); run; ods tagsets.ExcelXP FILE="C:\PROGEVAL 2015\REPORTS\&dept. 2013-14 Graduate Contacts testx.Xml" style=barrettsblue; * etc; title4 font=timesRoman h=4 color=BLACK "Graduates: &GR Placed: &PL Percent Placed: &PCT"; * etc; proc report data=_temp; * etc; %mend doreport; %dodepts; Message was edited by: Geoff Der ps. You could also put all the code inside the dodepts macro and only have one macro, if you find that simpler.
... View more