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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Alanoudfahad
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)

 

2.png

 

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
Jihwan_Kim
Super User
Super User

Hi, @Alanoudfahad 

Please check the below picture and the measure.

 

Picture4.png

 

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.


Linkedin: linkedin.com/in/jihwankim1975/

Twitter: twitter.com/Jihwan_JHKIM


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


Click here to visit my LinkedIn page

View solution in original post

4 REPLIES 4
Jihwan_Kim
Super User
Super User

Hi, @Alanoudfahad 

Please check the below picture and the measure.

 

Picture4.png

 

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.


Linkedin: linkedin.com/in/jihwankim1975/

Twitter: twitter.com/Jihwan_JHKIM


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


Click here to visit my LinkedIn page

Works wonderfully, thanks!

amitchandak
Super User
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]

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

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

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

Check out the February 2026 Power BI update to learn about new features.