BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hello, I'm trying to create macros containing the first date of the month for all months in between certain dates (in the case below, it is a calendar year, but this will not be the case every time).
The bold part of the program (macro dates_month)is not working for me; I'm not sure why. I'm not concerned with the actual values at this point, I'm just trying to figure out why macros &Date1 - $Date12 are not being created.
Thanks,
Joe

%macro date_calc;

data _null_;
Start = put(intnx('month',today(),-14),date9.);
call symput('Start',"'"||Start||"'d");
run;

data _null_;
firstday = intnx('month',today(),-2);
End = put((firstday - 1),date9.);
call symput('End',"'"||End||"'d");
run;

%mend date_calc;
%date_calc;

data _null_;
MONTH= INTCK('MONTH',&start,&End+1);
call symput('MONTH',(Month));
run;

%put(Start) = &Start;
%put(End) = &End;
%put(Month) = &Month;


%macro dates_month;
%do I = 1 %to 12;
data _null_;
Date&I = intnx('month',&Start,&I);
call symput("Date&I",Date&I);
run;
%end;
%mend;
%dates_month;

%put(Date1) = &Date1;
1 REPLY 1
deleted_user
Not applicable
I see you've had a number of very detailed replies on this problem through SAS/L.

I presume these will help you resolve your problem.

Kind regards

David

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 874 views
  • 0 likes
  • 1 in conversation