Forum Discussion

snph1777's avatar
snph1777
Icon for Helper V rankHelper V
1 year ago
Solved

DAX - Average (measure) based on most recent Date

My Power BI model has a single table (only).   I need to develop 2 measures, one for Salary of an employee based on most recent effective date; the other for Average Salary of an employee, based on...
  • johnt75's avatar
    1 year ago

    You can create a couple of measures like

    Total Salary =
    VAR EmpWithAllSalaries = CALCULATETABLE(
        SUMMARIZE(
            Table1,
            Table1[EmployeeName],
            Table1[EffectiveDate],
            Table1[Salary]
        ),
        ALLEXCEPT( Table1,
            Table1[EmployeeName],
            Table1[EffectiveDate],
            Table1[Salary]
        )
    )
    VAR EmpWithLatestSalary = INDEX( 1, EmpWithAllSalaries, ORDERBY( Table1[EffectiveDate], DESC ), PARTITIONBY( Table1[EmployeeName] ) )
    VAR Result = SUMX( EmpWithLatestSalary, Table1[Salary] )
    RETURN Result
    
    Average Salary =
    VAR EmpWithAllSalaries = CALCULATETABLE(
        SUMMARIZE(
            Table1,
            Table1[EmployeeName],
            Table1[EffectiveDate],
            Table1[Salary]
        ),
        ALLEXCEPT( Table1,
            Table1[EmployeeName],
            Table1[EffectiveDate],
            Table1[Salary]
        )
    )
    VAR EmpWithLatestSalary = INDEX( 1, EmpWithAllSalaries, ORDERBY( Table1[EffectiveDate], DESC ), PARTITIONBY( Table1[EmployeeName] ) )
    VAR Result = AVERAGEX( EmpWithLatestSalary, Table1[Salary] )
    RETURN Result