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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
areias_br
Frequent Visitor

Personalized Collum based on the next row value

Hi,


I have a table with the following colluns:

 

Date | Hour | OperationCode | ID

 

Whenever I have a change in a operation, a new line is created with the record of the hour that operation started. 

I need to create a new collum with the "Operation Duration". Being so, it will always be the Hour of the next line - the Hour of current line. 

 

Any idea on how can i do it in Power Query? 

1 ACCEPTED SOLUTION

you can try this

 

datehour = 'Table'[Date]+'Table'[Hour]

 

Column =
VAR _next=MINX(FILTER('Table','Table'[datehour]>EARLIER('Table'[datehour])),'Table'[datehour])
var _hour=maxx(FILTER('Table','Table'[datehour]=_next),'Table'[Hour])
return if (ISBLANK(_hour),blank(), if ('Table'[Hour]>_hour, DATEDIFF((date(2020,1,1)+'Table'[Hour]),(date(2020,1,2)+_hour),MINUTE),DATEDIFF((date(2020,1,1)+'Table'[Hour]),(date(2020,1,1)+_hour),MINUTE)))
 
 
11.PNG




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

5 REPLIES 5
ryan_mayu
Super User
Super User

could you pls provide some sample data and expected output?





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Sure!

02/08/2024 | 13:50 | Navigation | 1
02/08/2024 | 23:30 | Mooring | 2
03/09/2024 | 01:00 |  Moored | 3

I expect to get the personalized collum as the following

02/08/2024 | 13:50 | Navigation | 1 | 580 minutes
02/08/2024 | 23:30 | Mooring | 2 | 90 minutes
03/09/2024 | 01:00 |  Moored | 3 | ...

how you get 580 mins and 90 mins?





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




02/08/2024 | 13:50 | Navigation | 1 | 580 minutes (23:30 - 13:50 = 09:40 => 09*60 + 40)
02/08/2024 | 23:30 | Mooring | 2 | 15 minutes (23:45 - 23:30 = 15)
02/08/2024 | 23:45 |  Moored | 3 | ...

I've changed the last value because it gets a little bit more complicated when day changes.

you can try this

 

datehour = 'Table'[Date]+'Table'[Hour]

 

Column =
VAR _next=MINX(FILTER('Table','Table'[datehour]>EARLIER('Table'[datehour])),'Table'[datehour])
var _hour=maxx(FILTER('Table','Table'[datehour]=_next),'Table'[Hour])
return if (ISBLANK(_hour),blank(), if ('Table'[Hour]>_hour, DATEDIFF((date(2020,1,1)+'Table'[Hour]),(date(2020,1,2)+_hour),MINUTE),DATEDIFF((date(2020,1,1)+'Table'[Hour]),(date(2020,1,1)+_hour),MINUTE)))
 
 
11.PNG




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.