- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Calculate a contextual abseenteism rate
Hello everyone,
I am trying to calculate an absenteeism rate in Power Pivot using DAX. The rate should be calculated as the sum of absence hours divided by the sum of presence hours, and it should be dynamic based on the context. However, my current measure is not working correctly. Here is the DAX formula I am using:
=VAR Numerator = CALCULATE(
SUM(EVGTA[Durée_Jours]);
EVGTA[Type] = "Absence"
)
VAR Denominator = CALCULATE(
SUM(EVGTA[Durée_Jours]);
EVGTA[Type] = "Présence"
)
RETURN
IF(
ISBLANK(Numerator) || ISBLANK(Denominator) || Denominator = 0;
0;
Numerator / Denominator
)
In the example I am using, please note that:
The value of EVGTA[Type] for HORTHE = "Présence"
The value of EVGTA[Type] for MA and and RT = "Absence"
When I create a pivot table with this measure, the rate is 0.00 % on the line of each absence reason, even if the total is what I am looking for ((660 + 334) / 20657,45):
What I need is a real rate for each line, if we express it with the same example as above:
MA 660,00 3,19 %
RT 344,00 1,67 %
My date column is named EVGTA[Date du jour (détail)], sorry for my French. Of course, I need the rate to be dynamic depending on the context, whatever the dimensions used are.
Thanks for any help!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try
Absenteeism rate =
VAR Numerator =
CALCULATE ( SUM ( EVGTA[Durée_Jours] ); EVGTA[Type] = "Absence" )
VAR Denominator =
CALCULATE (
SUM ( EVGTA[Durée_Jours] );
EVGTA[Type] = "Présence";
REMOVEFILTERS ( EVGTA[Nature d'heure] )
)
RETURN
IF (
ISBLANK ( Numerator ) || ISBLANK ( Denominator )
|| Denominator = 0;
0;
Numerator / Denominator
)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks!!
I don't know why I didn't think about that, I tried ALLEXCEPT, ALLSELECTED, but not REMOVEFILTERS. I just replaced it with ALL as I use Power Pivot, not Power BI for this example.
The final syntax is:
=VAR Numerator =
CALCULATE ( SUM ( EVGTA[Durée_Jours] ); EVGTA[Type] = "Absence" )
VAR Denominator =
CALCULATE (
SUM ( EVGTA[Durée_Jours] );
EVGTA[Type] = "Présence";
ALL( EVGTA[Nature d'heure] )
)
RETURN
IF (
ISBLANK ( Numerator ) || ISBLANK ( Denominator )
|| Denominator = 0;
0;
Numerator / Denominator
)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try
Absenteeism rate =
VAR Numerator =
CALCULATE ( SUM ( EVGTA[Durée_Jours] ); EVGTA[Type] = "Absence" )
VAR Denominator =
CALCULATE (
SUM ( EVGTA[Durée_Jours] );
EVGTA[Type] = "Présence";
REMOVEFILTERS ( EVGTA[Nature d'heure] )
)
RETURN
IF (
ISBLANK ( Numerator ) || ISBLANK ( Denominator )
|| Denominator = 0;
0;
Numerator / Denominator
)

Helpful resources
Subject | Author | Posted | |
---|---|---|---|
10-03-2024 02:16 PM | |||
03-31-2024 12:51 PM | |||
10-09-2024 02:21 PM | |||
11-14-2024 01:55 AM | |||
08-05-2024 02:20 AM |