The community is not super great at answering questions like these without a sample packaged workbook to help us understand where you got stuck.
It seems, from the description, that you can easily replicate your current view using the sample superstore data set.
Without a workbook in front of me, I can only make an educated guess, but it seems that you want to create a calculated field similar to the following:
IF DATETRUNC('year',[Order Date])<DATETRUNC('year',TODAY()) THEN DATETRUNC('year',[Order Date])
ELSE DATETRUNC('month',[Order Date]) END
Hope this helps!