Hi:
I'm still not convinced that you need a macro. I agree with Andreas. There are many techniques available to achieve your stated goal: "I want all these macro variables as i want to do multiplication based on No.
if no=1 then amt=amt+3 and number=number+3*.30;"
Consider the following program, that uses a FORMAT to create a variable called MULT -- based on the variable AGE -- when AGE is 11, MULT will be 2; when AGE is 13, MULT will be 6, etc:
[pre]
proc format;
value amult 11=2
12=4
13=6
14=8
15=10
16=12;
run;
data class;
set sashelp.class;
mult = input(put(age,2.0),amult.);
newnum = height * mult;
put age= mult= newnum=;
run;
[/pre]
You probably wouldn't need a format if there was some logic behind how NO=1 turned into a multiplier of 3. But even so, making a lookup list with PROC FORMAT is easier than writing a macro program when you don't need one.
Is there other processing that you are not explaining??? The title of your post was "Array", but you jumped past arrays straight into macro variables. Having numbered macro variables is NOT the same thing as building an array and using numbered macro variables in place of an array is probably not a good idea. At this point, however, I don't understand the need for either arrays or macro variables.
cynthia