Hi,
I'm not sure if this is a bug, or if I'm not understanding how the intnx() function works with %sysfunc.
Method 1, using %sysfunc, spits out the error
"WARNING: An argument to the function INTNX referenced by the %SYSFUNC or %QSYSFUNC macro
function is out of range.
NOTE: Mathematical operations could not be performed during %SYSFUNC function execution. The
result of the operations have been set to a missing value."
Methods 2 and 3 output correctly within a data _null_ step.
If anyone could help enlighten me on why %sysfunc fails here, I would be really grateful.
Thanks,
Vincent
BEGIN PROGRAM
%let x=today();
/* method 1 */
%let y1=%sysfunc(intnx('qtr.2',&x,-9,'b'));
%put x=&x y1=&y1;
/* method 2 */
data _null_;
y2=intnx('qtr.2',&x,-9,'b');
put "y2=" y2;
run;
/* method 3*/
data _null_;
call symput('y3', intnx('qtr.2',&x,-9,'b'));
run;
%put y3=&y3;
%let x=%sysfunc(today());
/* method 1 */
%let y1=%sysfunc(intnx(qtr.2,&x,-9,b));
%put x=&x y1=&y1;
%let x=%sysfunc(today());
/* method 1 */
%let y1=%sysfunc(intnx(qtr.2,&x,-9,b));
%put x=&x y1=&y1;
Thanks for the helpful emails!
The following solution for method 1 worked, by removing all quotes, and enclosing &x with another %sysfunc() for &x.
%let y1=%sysfunc(intnx(qtr.2,%sysfunc(&x),-9,b));
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.