Hi
Sorry to insist here a bit but I believe that using a format is a more versatile approach.
Such FY categories tend to be needed over and over again for grouping and reports. That's why I think it's better to use a format which has to be created once instead of re-calculating everything over and over again.
You can store a format in a permanent catalogue - also in one which is always available when you start SAS.
Just to give you an idea of how to use a format:
/* create a format for FY */
data ctrl;
start='01oct1990'd;
retain fmtname 'FISCYRPD' type 'n';
do while (start lt '01oct2050'd);
end=intnx('month3',start,1,'b')-1;
label=put(start,date9.)||' '||cats(year(end+1)-1,'/',year(end+1));
output;
start=intnx('month3',start,1,'b');
end;
hlo='O';
label='** undefined FY **';
output;
run;
proc format library=work cntlin=ctrl;
run;
/* source data */
data have;
input type $ date anydtdte.;
datalines;
A 01-Oct-09
A 01-Jan-10
A 01-Apr-10
A 01-Jul-10
A 01-Oct-10
A 01-Jan-11
A 01-Apr-11
A 01-Jul-11
;
run;
/* print source using FY format */
title 'format applied on existing date var';
proc print data=have;
format date FISCYRPD.;
run;
/* add character var containing fiscal year string */
data want;
set have;
FY=put(date,FISCYRPD.);
run;
title 'additional var';
proc print data=want;
run;
HTH
Patrick