Forum Discussion

gclements's avatar
gclements
Icon for Helper II rankHelper II
5 years ago
Solved

Rank by Date with Values

Hi,

 

I am trying to get a rank by date, starting with the most recent date, and only for dates that have values.

 

Example below.  In the example I have a number of date, some of them have quantites.  For those that do have a quantity I would like to rank the date in descending order with the most recent date being rank 1.

 

I do not know whether this should be a measure or a calculated column, but I do know that the values will change based on the filters that are applied, such as the customer.

 

Any help is much appreciated.

 

DateQuantityRank
01/01/2020  
02/01/2020  
03/01/2020106
04/01/2020  
05/01/20205005
06/01/2020  
07/01/2020  
08/01/2020  
09/01/202034
10/01/2020  
11/01/2020  
12/01/2020553
13/01/2020432
14/01/20201011
15/01/2020  
16/01/2020  
  • Here is one measure expression to try.  Change DateRank to the actual name of your table.

     

    Rank if Qty =
    VAR vThisRank =
        RANKX (
            FILTER (
                ALLSELECTED (
                    DateRank[Date],
                    DateRank[Quantity]
                ),
                DateRank[Quantity] > 0
            ),
            CALCULATE (
                MAX ( DateRank[Date] )
            ),
            ,
            DESC
        )
    RETURN
        IF (
            SUM ( DateRank[Quantity] ) > 0,
            vThisRank,
            BLANK ()
        )

     

     

    Regards,

    Pat

2 Replies

  • mahoneypat's avatar
    mahoneypat
    Icon for Microsoft Employee rankMicrosoft Employee

    Here is one measure expression to try.  Change DateRank to the actual name of your table.

     

    Rank if Qty =
    VAR vThisRank =
        RANKX (
            FILTER (
                ALLSELECTED (
                    DateRank[Date],
                    DateRank[Quantity]
                ),
                DateRank[Quantity] > 0
            ),
            CALCULATE (
                MAX ( DateRank[Date] )
            ),
            ,
            DESC
        )
    RETURN
        IF (
            SUM ( DateRank[Quantity] ) > 0,
            vThisRank,
            BLANK ()
        )

     

     

    Regards,

    Pat

    • gclements's avatar
      gclements
      Icon for Helper II rankHelper II

      Fantastic.  That did the trick, thank you very much!