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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
rampsaladi
Frequent Visitor

Dynamic Rank per Product in Time Period

Hi 

 

I need to be help create a Rank column. I need to be able to generate the rank in the context of the Time Period for the Products based on the Amount and This rank will be in the context of the Market where the market acts as a slicer. I added the sample data and the rank. The DAX I created always gives me a rank 1.

 

MarketsProductTime PeriodAmtRank
NorthALast 52 Weeks11
NorthBLast 52 Weeks22
NorthCLast 52 Weeks33
NorthDLast 52 Weeks44
NorthELast 52 Weeks55
NorthFLast 52 Weeks66
NorthALast 13 Week115
NorthBLast 13 Week124
NorthCLast 13 Week46
NorthDLast 13 Week3242
NorthELast 13 Week323
NorthFLast 13 Week34341
NorthALast 26 Weeks106
NorthBLast 26 Weeks344
NorthCLast 26 Weeks135
NorthDLast 26 Weeks4324321
NorthELast 26 Weeks34232
NorthFLast 26 Weeks1243
NorthALast 4 Weeks15
NorthBLast 4 Weeks42
NorthCLast 4 Weeks71
NorthDLast 4 Weeks24
NorthELast 4 Weeks33
NorthFLast 4 Weeks06

 

Any Help is appreciated.

11 REPLIES 11
gunshruthi
Helper I
Helper I

Hello All,,

My requirement is to give rank values to last 12 months dynamically And we follow June of every month as our finnacial year. Can anyone please help with the rank function measure to create calculated column

gunshruthi_0-1646828862676.png

It would be really helpfull thanks

Greg_Deckler
Super User
Super User

So, are you OK if this is a measure? I have had far more luck with RANKX as a measure versus as a column. You could create two measures:

 

MySum = SUM(Table[Amt])

MyRank = RANKX(ALL(Table),[MySum])

 

You can create a column like this:

 

Column = RANKX(aRanks,[Amt])

But it won't be grouped like you want. Here is one of the better articles explaining RANKX:

 

https://www.wiseowl.co.uk/blog/s2469/rankx-function.htm 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@rampsaladi

 

GIve this MEASURE a shot as well

 

RANK =
RANKX (
    FILTER (
        ALLSELECTED ( Table1 ),
        Table1[Time Period] = SELECTEDVALUE ( Table1[Time Period] )
    ),
    CALCULATE ( SUM ( Table1[Amt] ) ),
    ,
    DESC,
    DENSE
)

Regards
Zubair

Please try my custom visuals

@rampsaladi

 

Infact this one should give the proper results with slicers

 

RANK =
RANKX (
    CALCULATETABLE (
        VALUES ( Table1[Product] ),
        FILTER (
            ALLSELECTED ( Table1 ),
            Table1[Time Period] = SELECTEDVALUE ( Table1[Time Period] )
        )
    ),
    CALCULATE ( SUM ( Table1[Amt] ) ),
    ,
    DESC,
    DENSE
)

Regards
Zubair

Please try my custom visuals

Thank you for providing the information but the DAX you provided does not give me the correct result, it always gives rank as 1

@Zubair_Muhammad

yes I can see that but It does not work when I do it but let me try again.  I also have another requirement where I need to be able to display the Rank for each time period side by side and I tried to do that by filterting the data for the specific time period but it did not work. Any help is appreciated. 

 

Basically I need to show a side by side comparison of the Product Rank over time period in a specific market

Hi @rampsaladi

 

to show a side by side comparison of the Product Rank over time period in a specific market.....

You can try using this rank MEASURE

 

RANK_ =
RANKX (
    ALLSELECTED ( Table1[Product] ),
    CALCULATE ( SUM ( Table1[Amt] ) ),
    ,
    DESC,
    DENSE
)

 


Regards
Zubair

Please try my custom visuals

@rampsaladi

 

Use a Matrix Table...Put Time Period in Columns..Products in Rows and RANK measure in values

 

rankXY.png

 

 


Regards
Zubair

Please try my custom visuals

This is really helpful you know I never thought of it, but I have one more request can I actually have a different rank measure for each Time Period, the only reason i ask it I have other measure values that I need to dsiplay along with Rank and if I add them its get little bit skewed. the look. So Ideally I would like to have a Rank Measure for Say latest 13 Weeks timeperiod data and this will change based on the Market Slicer

Hi @rampsaladi

 

In that case try his pattern

 

RANK_Last 13 Week =
RANKX (
    ALLSELECTED ( Table1[Product] ),
    CALCULATE ( SUM ( Table1[Amt] ), Table1[Time Period] = "Last 13 Week" ),
    ,
    DESC,
    DENSE
)

Regards
Zubair

Please try my custom visuals

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.