Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Max value with date

Hi,

 

I need to get the max value in a category with its corresponding date (preferably in DAX).

 

the example as follow

 

Table1
CityValueDate
RIY1010/9/2019
RIY2510/10/2019
RIY1110/11/2019
MKK810/10/2019
MKK910/9/2019

 

The result should be like this

 

Result
CityValueDate
RIY2510/10/2019
MKK910/9/2019

 

Thank You in advance for your help

  • RMB's avatar
    RMB
    6 years ago

    Thought it would be worth mentioning that the first answer will still have all the original values with an extra column identifying the highest for a product type without further work. I'm adding this in case a new table is wanted that only has those highest values and not the whole original table.

    First, add a calculated column to your table that creates the rank per city.

    Rank Column

    Rank = 
    RANKX (
        FILTER(
        'Table',
        'Table'[City] = EARLIER('Table'[City])
        ),
        'Table'[Value],
        ,
        DESC,
        DENSE
    )


    Now create a new table that selects only each city entry that was ranked 1.


    New table that only has cities that were ranked 1

    Table2 = 
    SELECTCOLUMNS(
        FILTER( 'Table', 'Table'[Rank] = 1),
        "City", 'Table'[City],
        "Value", 'Table'[Value],
        "Date", 'Table'[Date]
    )

    When you create your table visual now from the values on the new table you will only have the ranked 1st entries.
    Comparsion

3 Replies

    • RMB's avatar
      RMB
      Resolver II

      Thought it would be worth mentioning that the first answer will still have all the original values with an extra column identifying the highest for a product type without further work. I'm adding this in case a new table is wanted that only has those highest values and not the whole original table.

      First, add a calculated column to your table that creates the rank per city.

      Rank Column

      Rank = 
      RANKX (
          FILTER(
          'Table',
          'Table'[City] = EARLIER('Table'[City])
          ),
          'Table'[Value],
          ,
          DESC,
          DENSE
      )


      Now create a new table that selects only each city entry that was ranked 1.


      New table that only has cities that were ranked 1

      Table2 = 
      SELECTCOLUMNS(
          FILTER( 'Table', 'Table'[Rank] = 1),
          "City", 'Table'[City],
          "Value", 'Table'[Value],
          "Date", 'Table'[Date]
      )

      When you create your table visual now from the values on the new table you will only have the ranked 1st entries.
      Comparsion

      • Anonymous's avatar
        Anonymous
        Not applicable

        Thank you so much, it did the trick for me.