Forum Discussion

SamBowdell's avatar
SamBowdell
New Member
3 years ago
Solved

Retirement calculations

I have a table with employee data with the following information-

Employee number, name, fte, dob, age, date 

 

There is a row for every month they are employed with us.

I need to show a bar chart with a count by of staff sliced by age.

 

The outcome will mean I am able to see the count drop when people reach a set age 

Example

If 25 staff hit 65 in Sept 2023 then the total number for sept will be 65 less.

 

I also have a date table.

 

Thank you

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi SamBowdell ,

     

    I suggest you to create a data model as below.

    Fact table:

    Measure:

    Count by Age = 
    VAR _SELECTAGE =
        SELECTEDVALUE ( DimAge[Age] )
    VAR _STEP1 =
        ADDCOLUMNS (
            ALL ( 'Table' ),
            "Current Age", QUOTIENT ( DATEDIFF ( 'Table'[Dob], MAX ( DimDate[Date] ), MONTH ), 12 )
        )
    RETURN
        COUNTAX ( FILTER ( _STEP1, [Current Age] < _SELECTAGE ), [Name] )

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

4 Replies

  • rubayatyasmin's avatar
    rubayatyasmin
    Community Champion

    Hi, SamBowdell 

     

    1. Create  a calculated column using.

     

    Retired = IF('EmployeeTable'[Age] >= 65, "Yes", "No")

     

    2. Create measure for active employee count. 

     

    ActiveCount = CALCULATE(
    COUNT('EmployeeTable'[Employee number]),
    FILTER('EmployeeTable', 'EmployeeTable'[Retired] = "No")
    )

     

    Hope this helps. 

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi SamBowdell ,

     

    I suggest you to create a data model as below.

    Fact table:

    Measure:

    Count by Age = 
    VAR _SELECTAGE =
        SELECTEDVALUE ( DimAge[Age] )
    VAR _STEP1 =
        ADDCOLUMNS (
            ALL ( 'Table' ),
            "Current Age", QUOTIENT ( DATEDIFF ( 'Table'[Dob], MAX ( DimDate[Date] ), MONTH ), 12 )
        )
    RETURN
        COUNTAX ( FILTER ( _STEP1, [Current Age] < _SELECTAGE ), [Name] )

    Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.