Desktop productivity for business analysts and programmers

How to resolve a macro variable from prompt for Selecting Multiple Variables from a List

Accepted Solution Solved
Reply
Contributor
Posts: 28
Accepted Solution

How to resolve a macro variable from prompt for Selecting Multiple Variables from a List

Hello,

 

I have created a text prompt "Variable_List" with Multiple Values. I want to resolve this Text Type macro in my code.

Prompt.PNG

Previously, I was using limited number of variables with manual input in the macro variable " varlist".

 

%let varlist = TBM_STAGE1 TBM_STAGE2 SHIFT_BUILD_DATE BLADDER;

I was using the below format for count and then loop across these variables to get the output.

 

/*4.Looping through the Variables and checking the Data Type with Put Statement at the end*/
		%do I=1 %to %sysfunc(countw(&varlist)); 
					%let var = %scan(&varlist, &I);

My question is I just have to Substitute the &varlist with &Variable_List. in the Do statement? Kindly let me know if you need further input.

 


Accepted Solutions
Solution
‎03-27-2018 09:26 AM
Super Contributor
Posts: 498

Re: How to resolve a macro variable from prompt for Selecting Multiple Variables from a List

SAS creates an additional variable named "Variable_List_Count" and sets it to the number of values selected. If more than one value was selected, than the values are in the variables "Variable_List1", "Variable_List2" ...

 

The following step should create the macro-variable varlist in the already used format.

data _null_;
   length varList $ 1000;

   do i = 1 to &Variable_List_Count.;
      if i = 1 then do;
         varlist = catx(' ', varList, symget("Variable_List"));
      end;
      else do;
         varlist = catx(' ', varList, symget(cats("Variable_List", i)));
      end;
   end;

   call symputx('varList', varList);
run;

View solution in original post


All Replies
Solution
‎03-27-2018 09:26 AM
Super Contributor
Posts: 498

Re: How to resolve a macro variable from prompt for Selecting Multiple Variables from a List

SAS creates an additional variable named "Variable_List_Count" and sets it to the number of values selected. If more than one value was selected, than the values are in the variables "Variable_List1", "Variable_List2" ...

 

The following step should create the macro-variable varlist in the already used format.

data _null_;
   length varList $ 1000;

   do i = 1 to &Variable_List_Count.;
      if i = 1 then do;
         varlist = catx(' ', varList, symget("Variable_List"));
      end;
      else do;
         varlist = catx(' ', varList, symget(cats("Variable_List", i)));
      end;
   end;

   call symputx('varList', varList);
run;
Contributor
Posts: 28

Re: How to resolve a macro variable from prompt for Selecting Multiple Variables from a List

Posted in reply to andreas_lds

Perfect!!! Thanks @andreas_lds for explaining the concept behind the  work and the code is working exactly what I needed Smiley Happy

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 147 views
  • 1 like
  • 2 in conversation