You need to use the value of column_b as CODE, not as text to be passed to macro variables.
I posted before how to do it. Use a datastep to generate the code from the metadata file. Then execute the code. So either write the generated code to a file like in my example
filename code temp;
data _null_;
set global_macro ;
file code ;
put 'call symputx(' column_a :$quote. ',' column_b ');' ;
run;
data _null_;
%include code ;
run;
or use CALL EXECUTE() to push the generated code onto the stack to run after the data step.
Or you could change the contents of COLUMN_B to be MACRO CODE and not SAS CODE.
Column_A Column_B
date_string %sysfunc(today(),date9.)
date_value %sysfunc(today())
date_literal "%sysfunc(today(),date9.)"d
sum 245866
max %sysfunc(max(135,6546,13))
string Company A
string_literal 'Company A'
Then when you use the macro variable the macro functions will execute and the value the macro processor will return to SAS to use as part of the code you want to run will be the results the macro functions.
... View more