Create a disconnected table (Time Periods) with values: "Current Year," "Last Year," etc. Use a DAX measure with SWITCH() and SELECTEDVALUE() to apply filters dynamically:
SalesFiltered =
VAR SelectedPeriod = SELECTEDVALUE('Time Periods'[Period Name])
RETURN
SWITCH(
SelectedPeriod,
"Current Year", CALCULATE([Total Sales], YEAR('Sales'[Order Date]) = YEAR(TODAY())),
"Last Year", CALCULATE([Total Sales], YEAR('Sales'[Order Date]) = YEAR(TODAY()) - 1),
"Last 3 Years", CALCULATE([Total Sales], 'Sales'[Order Date] >= DATE(YEAR(TODAY()) - 3, 1, 1)),
[Total Sales] -- Default case
)
Add the slicer to your report and use SalesFiltered in visuals. The measure will update dynamically!