data a;
x=1;
y=2;
z=3;
w=4;
output;
run;
%let list=x y z w;
%macro test(in, out, list);
%let num=%sysfunc(countw(&list));
data &out;
set ∈
%do i=1 %to #
t_%scan(&list,&i)= %scan(&list,&i)**2;
%end;
run;
%mend;
%test(a,b,&list);