Try something like
LOAD if(Date < weekstart(makedate(year(today())+1,4,30),0,-1) and Date >= weekstart(makedate(year(today()),4,30),0,-1), 'This Year',
if(Date < weekstart(makedate(year(today()),4,30),0,-1) and Date >= weekstart(makedate(year(today())-1,4,30),0,-1), 'Last Year')) as YearFlag,
Date(makedate(2012)+recno()-1) as Date
weekstart( makedate(2013,4,30), 0, -1) should return the last sunday in April 2013, change the input date for other years.
Sorry, I don't understand your last request and how it is related to the year start on last sunday in April.
Attached my sample solution, you should see the year start and year end matches your requested dates as of your initial post.
comm94619.qvw 137.5 K
I recomend you to do that in the script.
Also I recomend you not to use an if clause.
Instead do the next.
Year(Date) as Year,
Year(Date-Nº of days) as FixedYear
Being Nº of days the number of days between that last sunday of April that you want, and your Date data.
You'll have to work it out a little bit more for your script.