Forum Discussion
retention rate
Hi I am trying to calulate retention rate year by year.
My current measure is:
benz-fsproduce , I want you remove the if condition, as max of 2022 is > today
Retention Rate 2 =
VAR _StartOfPeriod = MIN('Date'[Date])
VAR _EndOfPeriod = MAX('Date'[Date])
VAR _Result =
IF( 1=1,
VAR _EmployeesAtStart =
CALCULATETABLE(
VALUES(page[Employee Name]),
page[Last Hire Date] <= _StartOfPeriod,
page[Termination Date] >= _StartOfPeriod || ISBLANK(page[Termination Date])
)
VAR _EmployeesAtEnd =
CALCULATETABLE(
VALUES(page[Employee Name]),
page[Last Hire Date] <= _EndOfPeriod,
page[Termination Date] >= _EndOfPeriod || ISBLANK(page[Termination Date])
)
VAR _NoOFEmployeesAtStartAndEnd =
COUNTROWS(
INTERSECT(_EmployeesAtStart, _EmployeesAtEnd)
)
RETURN
DIVIDE(_NoOFEmployeesAtStartAndEnd, COUNTROWS(_EmployeesAtStart))
)
RETURN
_Result
3 Replies
- amitchandak
Super User
- benz-fsproduceFrequent VisitorI tried removing "IF( TODAY() >= _EndOfPeriod," but it ended with an error. Here is my formula in text form.Retention Rate 2 =VAR _StartOfPeriod = MIN('Date'[Date])VAR _EndOfPeriod = MAX('Date'[Date])VAR _Result =IF( TODAY() >= _EndOfPeriod,VAR _EmployeesAtStart =CALCULATETABLE(VALUES(page[Employee Name]),page[Last Hire Date] <= _StartOfPeriod,page[Termination Date] >= _StartOfPeriod || ISBLANK(page[Termination Date]))VAR _EmployeesAtEnd =CALCULATETABLE(VALUES(page[Employee Name]),page[Last Hire Date] <= _EndOfPeriod,page[Termination Date] >= _EndOfPeriod || ISBLANK(page[Termination Date]))VAR _NoOFEmployeesAtStartAndEnd =COUNTROWS(INTERSECT(_EmployeesAtStart, _EmployeesAtEnd))RETURNDIVIDE(_NoOFEmployeesAtStartAndEnd, COUNTROWS(_EmployeesAtStart)))RETURN_Result
- amitchandak
Super User
benz-fsproduce , I want you remove the if condition, as max of 2022 is > today
Retention Rate 2 =
VAR _StartOfPeriod = MIN('Date'[Date])
VAR _EndOfPeriod = MAX('Date'[Date])
VAR _Result =
IF( 1=1,
VAR _EmployeesAtStart =
CALCULATETABLE(
VALUES(page[Employee Name]),
page[Last Hire Date] <= _StartOfPeriod,
page[Termination Date] >= _StartOfPeriod || ISBLANK(page[Termination Date])
)
VAR _EmployeesAtEnd =
CALCULATETABLE(
VALUES(page[Employee Name]),
page[Last Hire Date] <= _EndOfPeriod,
page[Termination Date] >= _EndOfPeriod || ISBLANK(page[Termination Date])
)
VAR _NoOFEmployeesAtStartAndEnd =
COUNTROWS(
INTERSECT(_EmployeesAtStart, _EmployeesAtEnd)
)
RETURN
DIVIDE(_NoOFEmployeesAtStartAndEnd, COUNTROWS(_EmployeesAtStart))
)
RETURN
_Result