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

Level up your Power BI skills this month - build one visual each week and tell better stories with data! Get started

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
April Power BI Update Carousel

Power BI Monthly Update - April 2026

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

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.