DATA Step, Macro, Functions and more

Macro if statements

New Contributor
Posts: 2

Macro if statements

Why does this code not work? It doesn't seem to like the multiple conditions inside the if statement?


%if &WATERFALL_RUN. = N and &SENSITIVITY_RUN. = N %then %do




Super Contributor
Posts: 359

Re: Macro if statements



What do you mean by 'does not work' ?

Are there error messages in the log ?

There is nothing wrong with this code.

Use mprint, mlogic and symbolgen options to check how the macro code is resolved.



Posts: 1,400

Re: Macro if statements

What does your log say?

Super User
Posts: 10,571

Re: Macro if statements

It all depends on the contents of the macro variables.

%macro testmac;
%let waterfall_run=N;
%let sensitivity_run=N;
%if &WATERFALL_RUN. = N and &SENSITIVITY_RUN. = N %then %do; 
%put it works!;


Log from this:

24         %macro testmac;
25         %let waterfall_run=N;
26         %let sensitivity_run=N;
27         %if &WATERFALL_RUN. = N and &SENSITIVITY_RUN. = N %then %do;
28         %put it works!;
29         %end;
30         %mend;
32         %testmac
it works!
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Super User
Posts: 13,941

Re: Macro if statements

Doesn't work is awful vague.

Are there errors in the log?: Post the code and log in a code box opened with the {i} to maintain formatting of error messages.

No output? Post any log in a code box.

Unexpected output? Provide input data in the form of a dataset, the actual results and the expected results. Data should be in the form of a data step. Instructions here: will show how to turn an existing SAS data set into data step code that can be pasted into a forum code box using the {i} icon or attached as text to show exactly what you have and that we can test code against.

Ask a Question
Discussion stats
  • 4 replies
  • 5 in conversation