Forum Discussion
Fabi_Rntmn
4 years agoRegular Visitor
Split Rows for Entries Greater Than 24 Hours
Hello Together,
imagine I have the following table consisting of start times and end times where one entry is larger than 24 hours (here 48 hours):
How can I cut this entry in this case into 3 entries for each day such that I have:
1) 11.06.2022 06:00:00 - 11.06.2022 23:59:59
2) 12.06.2022 00:00:00 - 12.06.2022 23:59:59
3) 13.06.2022 00:00:00 - 11.06.2022 06:00:00
Thank you very much for your help, I really appreciate it!
Hi Fabi_Rntmn
This is a bet complex. Please refer to sample file with the solution https://we.tl/t-rgdc467UOWNew Data = VAR T1 = GENERATE ( Data, VAR StartTime = Data[StartTime] VAR EndTime = Data[EndTime] VAR StartDate = DATE ( YEAR ( StartTime ), MONTH ( StartTime ), DAY ( StartTime ) ) VAR EndDate = DATE ( YEAR ( EndTime ), MONTH ( EndTime ), DAY ( EndTime ) ) VAR HoursToAdd = TIME ( 23, 59, 59 ) RETURN ADDCOLUMNS ( CALENDAR ( StartTime, EndTime ), "@NewStartTime", IF ( [Date] = StartDate, StartTime, [Date] ), "@NewEndTime", IF ( [Date] = EndDate, EndTime, [Date] + HoursToAdd ) ) ) RETURN SELECTCOLUMNS ( T1, "Start Time", [@NewStartTime], "End Time", [@NewEndTime], "Time Difference", DIVIDE ( DATEDIFF ( [@NewStartTime], [@NewEndTime], SECOND ), 3600 ) )
2 Replies
- tamerj1
Community Champion
Hi Fabi_Rntmn
This is a bet complex. Please refer to sample file with the solution https://we.tl/t-rgdc467UOWNew Data = VAR T1 = GENERATE ( Data, VAR StartTime = Data[StartTime] VAR EndTime = Data[EndTime] VAR StartDate = DATE ( YEAR ( StartTime ), MONTH ( StartTime ), DAY ( StartTime ) ) VAR EndDate = DATE ( YEAR ( EndTime ), MONTH ( EndTime ), DAY ( EndTime ) ) VAR HoursToAdd = TIME ( 23, 59, 59 ) RETURN ADDCOLUMNS ( CALENDAR ( StartTime, EndTime ), "@NewStartTime", IF ( [Date] = StartDate, StartTime, [Date] ), "@NewEndTime", IF ( [Date] = EndDate, EndTime, [Date] + HoursToAdd ) ) ) RETURN SELECTCOLUMNS ( T1, "Start Time", [@NewStartTime], "End Time", [@NewEndTime], "Time Difference", DIVIDE ( DATEDIFF ( [@NewStartTime], [@NewEndTime], SECOND ), 3600 ) )- Fabi_RntmnRegular Visitor
Hi tamerj1
Thank you so much for your quick help! This worked quite well 🙂