Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
mo1988
Helper I
Helper I

Overtime calculation

I am trying to calculate weekly over time of total Duration.

The formula(s) that I am currently using are:1.png

TotalHours = SUM(HoursData[Duration])
Overtime = IF([TotalHours] > 37.5, IF(([TotalHours]-37.5)>6.5, 6.5, ([TotalHours]-37.5)), 0)

While using the Overtime DAX Formula, it does calculate properly on the row level but when it comes to Matrix Total, its always showing 6.5

Any way to fix this please?

Thanks

17 REPLIES 17
Padycosmos
Solution Sage
Solution Sage

Hope this helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5, [TotalHours]-37.5,0)

Padycosmos
Solution Sage
Solution Sage

Hope this helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5, [TotalHours]-37.5,0)

Hope this helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5, [TotalHours]-37.5<=0,0)

Hi @Padycosmos - It says there is a syntax error

Sorry about that, here's the corrected one

Hope this helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5,[TotalHours]-37.5, [TotalHours]-37.5<=0,0)

mo1988
Helper I
Helper I

Its still not calculating on the row level of the matrix .. 

 

If the data is not sensitive, could you please share the pbix file?

 

Please create a calculated column instead of Measure

Even with the created column it says syntax error

Really sorry, there was an extra bracket. I have removed it now. Please try again

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5<=6.5,[TotalHours]-37.5, [TotalHours]-37.5<=0,0)

It still didnt work - I am trying to share the dataset but couldnt find the option to do so. I am sorry

You can put it in google drive and paste the link here

Hope this edited one helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5, [TotalHours]-37.5<=0,0)

Padycosmos
Solution Sage
Solution Sage

Hope this helps:

Overtime =SWITCH(TRUE(),[TotalHours]-37.5>6.5, 6.5,[TotalHours]-37.5)<=6.5, [TotalHours]-37.5,0)

 

MarkLaf
Super User
Super User

I think something like this should work.

Overtime=
SUMX(
    HoursData,
    MAX( MIN( SUM( HoursData[Duration] ) - 37.5, 6.5 ), 0 )
)

Alternatively, this is the kind of thing that you could tackle with a calculated column.

Hi @MarkLaf - The proposed solution did not work properly. It gave different numbers than to what I am expecting. But thank you

Oops. I shouldn't have had SUM in there. I think this should do it. If not, it would be helpful to provide some test data and more info on your model.

Overtime=
SUMX(
    HoursData,
    MAX( MIN( HoursData[Duration] - 37.5, 6.5 ), 0 )
)

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors