Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
Hello,
I am getting this error and unsure how to resolve. Have tried a solution in another post but still no luck.
Original dax:
Overtime hours between =
VAR StartHour = SELECTEDVALUE(DistinctStartingHour[Start of Hour])
VAR EndHour = SELECTEDVALUE(DistinctEndHour[End Of Hour])
RETURN
IF([StartHour] > [EndHour] ,
--calculate overtime that crosses midnight
CALCULATE([Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= TIME(23,59,0)
)
+
CALCULATE([Overtime hours],
fact_TimeCardData[STARTTIME] >= TIME(0,0,0) && fact_TimeCardData[EndTimeAdjusted] <= [EndHour]
)
+
CALCULATE([Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour
)
,
--calculate overtime that does not cross midnight
CALCULATE([Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour
))
Updated dax from solution, still not working:
Overtime hours between =
VAR StartHour = SELECTEDVALUE(DistinctStartingHour[Start of Hour])
VAR EndHour = SELECTEDVALUE(DistinctEndHour[End Of Hour])
RETURN
IF([StartHour] > [EndHour] ,
--calculate overtime that crosses midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= TIME(23,59,0))
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= TIME(0,0,0) && fact_TimeCardData[EndTimeAdjusted] <= [EndHour])
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,(fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour)
)
,
--calculate overtime that does not cross midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour)
)))
Appreciate the assist.
Thanks
Carl
Solved! Go to Solution.
This worked:
Overtime hours between =
VAR StartHour = SELECTEDVALUE(DistinctStartingHour[Start of Hour])
VAR EndHour = SELECTEDVALUE(DistinctEndHour[End Of Hour])
RETURN
IF([StartHour] > [EndHour] ,
--calculate overtime that crosses midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= TIME(23,59,0))
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= TIME(0,0,0) && fact_TimeCardData[EndTimeAdjusted] <= [EndHour])
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,(fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour))
)
,
--calculate overtime that does not cross midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour)
)
)
This worked:
Overtime hours between =
VAR StartHour = SELECTEDVALUE(DistinctStartingHour[Start of Hour])
VAR EndHour = SELECTEDVALUE(DistinctEndHour[End Of Hour])
RETURN
IF([StartHour] > [EndHour] ,
--calculate overtime that crosses midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= TIME(23,59,0))
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= TIME(0,0,0) && fact_TimeCardData[EndTimeAdjusted] <= [EndHour])
)
+
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,(fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour))
)
,
--calculate overtime that does not cross midnight
CALCULATE([Overtime hours],
FILTER(fact_TimeCardData,fact_TimeCardData[STARTTIME] >= StartHour && fact_TimeCardData[EndTimeAdjusted] <= EndHour)
)
)
There is likely a simpler way to write your measure, but this version will be more performant (it is bad practice to filter entire tables) and may address your error.
Overtime hours between =
VAR StartHour =
SELECTEDVALUE ( DistinctStartingHour[Start of Hour] )
VAR EndHour =
SELECTEDVALUE ( DistinctEndHour[End Of Hour] )
RETURN
IF (
StartHour > EndHour,
--calculate overtime that crosses midnight
CALCULATE (
[Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour,
fact_TimeCardData[EndTimeAdjusted] <= TIME ( 23, 59, 0 )
)
+ CALCULATE (
[Overtime hours],
fact_TimeCardData[STARTTIME] >= TIME ( 0, 0, 0 ),
fact_TimeCardData[EndTimeAdjusted] <= EndHour
)
+ CALCULATE (
[Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour,
fact_TimeCardData[EndTimeAdjusted] <= EndHour
),
--calculate overtime that does not cross midnight
CALCULATE (
[Overtime hours],
fact_TimeCardData[STARTTIME] >= StartHour,
fact_TimeCardData[EndTimeAdjusted] <= EndHour
)
)
Pat
Thanks Pat, unfortunately this returned really weird results....
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the September 2025 Power BI update to learn about new features.