First, your do loop is not defined well for SAS. You can just write
[pre]
do i=1 to 14;
"Do stuff here"
end;
[/pre]
Another thing is that macro variables can't be used within the same data step that they are created.
Arrays would probably do what it looks like you are trying to do.
[pre]
data new;
set old;
array Exp(14);
do i=1 to 14;
if Post in ('010') then Exp(i)=Price;
end;
run;
[/pre]
But then you will just get 14 colums with the same value. Maybe you could try and explain what you want to do.