cancel
Showing results for
Did you mean: Frequent Visitor

Calculating time duration

Hi!

I have a data for employees where they check in and check out everytime they enter the building. I want to calculate the time duration per day (I have a date slicer) For instance here I want to subtract 5:55pm from 7:59am to get 9hrs 56min total hours.

I appreciate any help!

1 ACCEPTED SOLUTION  Super User

Please check the below picture and the measure. Result =
VAR currentid =
MAX ( Data[ID] )
VAR currentdate =
MAX ( Data[Date] )
VAR minintime =
CALCULATE (
MIN ( Data[Time] ),
FILTER (
ALL ( Data ),
Data[ID] = currentid
&& Data[Date] = currentdate
&& Data[In/Out] = "In"
)
)
VAR maxouttime =
CALCULATE (
MAX ( Data[Time] ),
FILTER (
ALL ( Data ),
Data[ID] = currentid
&& Data[Date] = currentdate
&& Data[In/Out] = "Out"
)
)
RETURN
maxouttime - minintime

Hi, My name is Jihwan Kim.

If this post helps, then please consider accept it as the solution to help other members find it faster, and give a big thumbs up.

If this post helps, then please consider accept it as the solution to help other members find it faster, and give a big thumbs up.

Best regards, JiHwan Kim

4 REPLIES 4  Super User

Please check the below picture and the measure. Result =
VAR currentid =
MAX ( Data[ID] )
VAR currentdate =
MAX ( Data[Date] )
VAR minintime =
CALCULATE (
MIN ( Data[Time] ),
FILTER (
ALL ( Data ),
Data[ID] = currentid
&& Data[Date] = currentdate
&& Data[In/Out] = "In"
)
)
VAR maxouttime =
CALCULATE (
MAX ( Data[Time] ),
FILTER (
ALL ( Data ),
Data[ID] = currentid
&& Data[Date] = currentdate
&& Data[In/Out] = "Out"
)
)
RETURN
maxouttime - minintime

Hi, My name is Jihwan Kim.

If this post helps, then please consider accept it as the solution to help other members find it faster, and give a big thumbs up.

If this post helps, then please consider accept it as the solution to help other members find it faster, and give a big thumbs up.

Best regards, JiHwan Kim Frequent Visitor

Works wonderfully, thanks!  Super User

@Alanoudfahad , Try a new column like

var _max = if([In/out] = "Out" , max(filter(Table, [Date] =earlier([Date]) && [Id] =earlier([ID]) && [In/out] ="In" && [Time] <earlier([Time])),[Time]), blank())
return
if([In/out] = "Out" && not(isblank(_max)) , datediff(_max, [Time], minute))/60

Ideally in place of time you should use date time column

date time  =[date]+[time]

Dashboard of My Blogs !! Connect on Linkedin
Want To Learn Power BI
Learn Power BI Beginners !! Advance Power BI Concepts !! Power BI For Tableau User !! Learn Power BI in Hindi !!
Proud to be a Super User! Frequent Visitor

Hi @amitchandak It gives me this error "The expression refers to multiple columns. Multiple columns cannot be converted to a scalar value." even after crreating date/time column  