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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
omarevp
Helper II
Helper II

Calculate time difference from two dates that come from the same column

Greetings, as common, I really need your help. I need to compare a column with itself, in order to calculate duration in hh:mm:ss.

 

Here’s what I want: I have a db with these columns: driving hours, working hours and resting hours for each driver; this db registers each activity by separate as follow, with a timestamp called FechaHora:

Captura.PNG

 

If I create in report view the following, with a table visual, I can show it this way, more or less what I need:

Captura1.PNG

 

What i did in this table was to take the same field value, twice in the same table, the first one shows the First FechaHora (*) and the second one shows the Last FechaHora (**) of the same day, with an additional Date field that shows only date in order to separate each one. Now, I wish to calculate the hours difference (Horas Diff) between the Last FechaHora from the previous date and the First FechaHora from the next day. Knowing that both dates are from the same column. Here´s what I need to do, and being able to filter it by Driver (Conductor): 

Captura2.PNG

 

I hope I explained myself, because I know it’s a little confusing. I need the difference (in hours) between the Last FechaHora from the previous date and the First FechaHora from the next day. I repeat, both dates are from the same column, called FechaHora. THANKS!

1 ACCEPTED SOLUTION
v-juanli-msft
Community Support
Community Support

Hi @omarevp

Create measures

earliest = CALCULATE(MIN([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])))

last = CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])))

Measure = CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])-1)) duration = var last2=CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])-1))
return IF(ISBLANK(last2),BLANK(),[earliest]-last2)

[Measure] is equal to "last2" in the "duration" formula, it just let you know how it works, it is no need to create this measure in your table.

 

6.png

 

Best Regards

maggie

View solution in original post

1 REPLY 1
v-juanli-msft
Community Support
Community Support

Hi @omarevp

Create measures

earliest = CALCULATE(MIN([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])))

last = CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])))

Measure = CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])-1)) duration = var last2=CALCULATE(MAX([datetime]),FILTER(ALLEXCEPT(Sheet4,Sheet4[category]),[date]=MAX([date])-1))
return IF(ISBLANK(last2),BLANK(),[earliest]-last2)

[Measure] is equal to "last2" in the "duration" formula, it just let you know how it works, it is no need to create this measure in your table.

 

6.png

 

Best Regards

maggie

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.