Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
wifc5013
Frequent Visitor

Dynamic Date RANKX() by Date Selected on Slicer

I am looking for a a DAX calculated column or measure that will rank dates dynamically based on a slicer date selection.

 

The end goal is to calculate 2 tables, one with the 'latest date selected' (index = 1) and one with the 'previous date' (index = 2), based on the slicer selection. Typically I would use DATEADD() or PREVIOUSDAY() for this, but the dates are not contiguous, therefore it seemed an index was needed, but I could be wrong.

 

The measure/column needs to dynamically adjust to the filter selection. Thank you kindly for your considerationrankxdate.png

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @wifc5013 ,

 

Please firstly create a calendar table

Calendar = CALENDAR(MIN('Table'[EOD_DATE]),MAX('Table'[EOD_DATE]))

Then create rank measure:

Rank = 
var _rank=RANKX(FILTER(ALL('Table'),[EOD_DATE]<=MAX('Calendar'[Date])),CALCULATE(MAX('Table'[EOD_DATE])),,DESC)
return 
IF(MAX('Table'[EOD_DATE]) >MAX('Calendar'[Date]),BLANK(), _rank)

Eyelyn9_0-1645164985419.pngEyelyn9_1-1645165004037.png

 

 

Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Hi @wifc5013 ,

 

Please firstly create a calendar table

Calendar = CALENDAR(MIN('Table'[EOD_DATE]),MAX('Table'[EOD_DATE]))

Then create rank measure:

Rank = 
var _rank=RANKX(FILTER(ALL('Table'),[EOD_DATE]<=MAX('Calendar'[Date])),CALCULATE(MAX('Table'[EOD_DATE])),,DESC)
return 
IF(MAX('Table'[EOD_DATE]) >MAX('Calendar'[Date]),BLANK(), _rank)

Eyelyn9_0-1645164985419.pngEyelyn9_1-1645165004037.png

 

 

Best Regards,
Eyelyn Qin
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

amitchandak
Super User
Super User

@wifc5013 , Try a new measure like

 

Countx(allselected(Table), Table[Date]>= min(Table[DAte]), Table[DAte])

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Thanks for your efforts. I create a measure as follows, but the lasta parameter in the measure gives error:  

 

Countx(allselected(Table), Table[Date]>= min(Table[DAte]), Table[DAte])

 

"Too many arguments passed to Countx function"

 

If i remove that, so measure become:

 

I receive error: 

Calculation error in measure 'USER_CASHPROMPT_PNL_RESULTS'[__RANKY]: The function COUNTX cannot work with values of type Boolean.

 

__RANKY = Countx(allselected(Table),Table[EOD_DATE] >= max(Table[EOD_DATE]))

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.