Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Calculate Hourly Rate Changes by Amount

Hi all,    I'm having trouble calculating hourly rate changes. I have a "Rates" tables and a "Skills" table that are currently matched at a many-to-many relationship (which I can delete if this is ...
  • smpa01's avatar
    7 years ago

    Anonymous  hopefully this is what you are looking for

     

    E Table

    CompanyEmployeeIDSkillStart DateEnd Date
    11001Craftsman1/1/20197/31/2019
    11001Craftsman28/1/201912/31/2020
    21002Journeyman1/1/20191/31/2019
    21002Ast.Journeyman2/1/201912/31/2020
    31003Craftsman1/1/200412/31/2004
    31003Craftsman21/1/200512/31/2005
    31003Journeyman1/1/200612/31/2006

     

    T Table

    CompanySkillRateStart DateEnd Date
    1Craftsman201/1/20197/31/2019
    1Craftsman2218/1/201912/31/2020
    2Journeyman201/1/20191/31/2019
    2Ast.Journeyman192/1/201912/31/2020
    3Craftsman201/1/200412/31/2004
    3Craftsman2251/1/200512/31/2005
    3Journeyman501/1/200612/31/2006

     

    E Table_Final Result

    Calulated Columns are as following

    Rank = 
    // To get a ranking of company-employeeID group based on EndDate
    RANKX(
           FILTER(E,
                   EARLIER(E[Company])=E[Company]
                   &&
                   EARLIER(E[EmployeeID])=E[EmployeeID]),
          E[End Date],
          ,ASC
    )
    All_Salary = LOOKUPVALUE(T[Rate],T[Company],E[Company],T[Skill],E[Skill],T[Start Date],E[Start Date],T[End Date],E[End Date])
    Last_Salary = CALCULATE(MAX(E[All_Salary]),FILTER(E, E[Rank]=EARLIER(E[Rank])-1))
    Rate_Change/Hour = IF(ISBLANK(E[Last_Salary]),0,[All_Salary]-[Last_Salary])