Forum Discussion

ldoriejhl's avatar
ldoriejhl
Frequent Visitor
2 years ago
Solved

Find the most recent value in a column

I'm working through a payroll file which features employee ID and name, and it includes instances where an employee name has changed, for example:

YearIDName
20211AA
20212BB
20213CC
20214DD
20221AA
20222BB
20223CE
20224DE
20231AA
20232BB
20233CE
20234DE

 

I am trying to figure out how to create a DAX column that would return only the most recent name for each employee ID, i.e. only the items at the end of the table. Any help appreciated on this one!

  • Try this DAX code for the calculated column:

     

    DAX
    MostRecentName = VAR LatestYear = CALCULATE( MAX(Table[Year]), ALLEXCEPT(Table, Table[ID]) ) RETURN CALCULATE( MAX(Table[Name]), Table[Year] = LatestYear, ALLEXCEPT(Table, Table[ID]) )
     
     
    This will create a column called MostRecentName, which will display the most recent name for each employee based on the year. If you apply this to your data, it will show "CE" for employee ID 3 and "DE" for employee ID 4, based on the latest years in your table.

2 Replies

  • 123abc's avatar
    123abc
    Icon for Community Champion rankCommunity Champion

    Try this DAX code for the calculated column:

     

    DAX
    MostRecentName = VAR LatestYear = CALCULATE( MAX(Table[Year]), ALLEXCEPT(Table, Table[ID]) ) RETURN CALCULATE( MAX(Table[Name]), Table[Year] = LatestYear, ALLEXCEPT(Table, Table[ID]) )
     
     
    This will create a column called MostRecentName, which will display the most recent name for each employee based on the year. If you apply this to your data, it will show "CE" for employee ID 3 and "DE" for employee ID 4, based on the latest years in your table.
  • Hello ldoriejhl ,

     

    this is your formula:

     

    Last Name =
    Var _id = 'Table'[ID]
    var _lyear= CALCULATE(MAX('Table'[Year]), 'Table'[ID]=_id, ALL('Table'))
    return
    CALCULATE(MAX('Table'[Name]), 'Table'[Year]=_lyear, 'Table'[ID]=_id, ALL('Table'))

    Let me know if it works for you