cancel
Showing results for 
Search instead for 
Did you mean: 

Fabric is Generally Available. Browse Fabric Presentations. Work towards your Fabric certification with the Cloud Skills Challenge.

Reply
byggarebob
Regular Visitor

Variable filter range based on slicer single selection

Hi,

 

I'm building a report which will be used on an Ipad and I want to minimize the number of slicer selections needed for the user to make it more user friendly. I have a year slicer with single selection and I want to keep it that way.

 

I have a line chart where I want to show the selected year AND the year before. Problem is obviously with the single selection slicer. There is a "periodic table" that I use for all calendar dimensions and this is the source of the Year slicer in the report (this slicer is disconnected from the chart in question). In this periodic table I have created the following measures to try to solve the problem:

 

Selected year = SELECTEDVALUE(Periodic_table[Year])       <-  collecting the year selected in the slicer

Prior year = [Selected year]-1

 

Filter = IF(

    VALUES(Periodic_table[Year])>=[Prior year] && VALUES(Periodic_table[Year]) <= [Selected year],
    1,0)
 
I put the Filter measure as a filter in the chart and set it to only include "1". However, the chart does not seem to respond to this filter, all years are currently shown in the chart. (When I set the filter to "0" all lines disappear from the chart)
 
The chart looks like this and has the following settings:
Month and year comes from the periodic table and the data (POS visit) comes from a parameter table.
 
byggarebob_0-1675344684931.pngbyggarebob_1-1675344734076.png

 

byggarebob_2-1675344898189.png

 

I hope its somewhat easy to follow! 😄

 

Would highly appreciate any help here.

 

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@byggarebob , Based on what I got

 

In such a case slicer, need to be on an independent year/date table and then you can have measure like

 

//Date1 is independent Date table, Date is joined with Table
new measure =
var _max = maxx(allselected(Date1),Date1[Year])
var _min = _max -1
return
calculate( sum(Table[Value]), filter('Date', 'Date'[Year] >=_min && 'Date'[Year] <=_max))

 

Need of an Independent Date Table:https://www.youtube.com/watch?v=44fGGmg9fHI

View solution in original post

2 REPLIES 2
amitchandak
Super User
Super User

@byggarebob , Based on what I got

 

In such a case slicer, need to be on an independent year/date table and then you can have measure like

 

//Date1 is independent Date table, Date is joined with Table
new measure =
var _max = maxx(allselected(Date1),Date1[Year])
var _min = _max -1
return
calculate( sum(Table[Value]), filter('Date', 'Date'[Year] >=_min && 'Date'[Year] <=_max))

 

Need of an Independent Date Table:https://www.youtube.com/watch?v=44fGGmg9fHI

Your suggested solution worked! I only had to add a slicer linked to year in the independent date table and then sync that slicer to the "year"-slicer of the main date table. Thanks alot!

Helpful resources

Announcements
PBI November 2023 Update Carousel

Power BI Monthly Update - November 2023

Check out the November 2023 Power BI update to learn about new features.

Community News

Fabric Community News unified experience

Read the latest Fabric Community announcements, including updates on Power BI, Synapse, Data Factory and Data Activator.

Power BI Fabric Summit Carousel

The largest Power BI and Fabric virtual conference

130+ sessions, 130+ speakers, Product managers, MVPs, and experts. All about Power BI and Fabric. Attend online or watch the recordings.

Top Solution Authors
Top Kudoed Authors