have you considered proc sort, proc tabulate, followed by proc print, using class/by statement something like :
ods tagsets.excelxp file= '!temp\demo.xml' ;
proc sort data= your_data out= _data_ ;
by age_group ;
run ;
%let ordered = &syslast ;
ods tagsets.excelxp options( sheet_name='summary' ) ;
proc tabulate data= &ordered missing format= 5. ;
class age_group ;
var date ;
table age_group all, n date=' '*( min='from' max='to')*f= mmddyy. ;
run ;
ods tagsets.excelxp options( sheet_name='detail_' ) ;
proc print data= &ordered label noobs ;
by age_group ;
pageby age_group ;
run ;
ods tagsets.excelxp close ;