Forum Discussion
Mahmed1
2 years agoHelper IV
Split data into right date
Hi - not sure how complexed this is i have a table where i have Start Date Time End Date Time 19/12/23 22:35. 20/12/23 01:00 20/12/23. 08:00. 20/12/23 16:00 etc all i want to do is if ...
- 2 years ago
Hi Mahmed1 ,
Apologise!
Here the code in Power Query M that you can paste into the advanced editor (if you do not know, how to exactly do this, please check out this quick walkthrough)
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMrTUNzTSNzJWMDKyMjZV0lEyMoAKGBhaGRgoxepEw4X0FAwsQGJIigzNwIpiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Start Date Time" = _t, #"End Date Time" = _t]), #"Split Column by Delimiter" = Table.SplitColumn(Source, "Start Date Time", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Start Date Time.1", "Start Date Time.2"}), #"Split Column by Delimiter1" = Table.SplitColumn(#"Split Column by Delimiter", "End Date Time", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"End Date Time.1", "End Date Time.2"}), #"Renamed Columns" = Table.RenameColumns(#"Split Column by Delimiter1",{{"Start Date Time.1", "Start Date"}, {"Start Date Time.2", "Start Time"}, {"End Date Time.1", "End Date"}, {"End Date Time.2", "End Time"}}), #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Start Date", type date}, {"Start Time", type time}, {"End Date", type date}, {"End Time", type time}}), #"Added Custom" = Table.AddColumn(#"Changed Type1", "Custom", each { Number.From ( [Start Date] ) ..Number.From ( [End Date] ) }), #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"), #"Changed Type" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}}), #"Added Custom1" = Table.AddColumn(#"Changed Type", "Start Date Time", each if [Start Date] = [Custom] then Text.From ( [Start Date] ) & " " & Text.From ( [Start Time] ) else Text.From ( [End Date] ) & " 00:00"), #"Added Custom2" = Table.AddColumn(#"Added Custom1", "End Date Time", each if [End Date] = [Custom] then Text.From ( [End Date] ) & " " & Text.From ( [End Time] ) else Text.From ( [End Date] ) & " 00:00"), #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"Start Date", "Start Time", "End Date", "End Time", "Custom"}), #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns",{{"End Date Time", type datetime}, {"Start Date Time", type datetime}}) in #"Changed Type2"/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/ - 2 years ago
With Duration.TotalMinutes
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Add_Date = Table.AddColumn(Source, "Date_",
each List.Dates(
Date.From([Start Date Time]),
Duration.Days(Date.From([End Date Time])-Date.From([Start Date Time]))+1,
#duration(1,0,0,0))),
Date_Expand = Table.ExpandListColumn(Add_Date, "Date_"),
Type_datetime = Table.TransformColumnTypes(Date_Expand,{{"Date_", type datetime}}),
#"Start Date Time 2" = Table.AddColumn(Type_datetime, "Start Date Time 2",
each List.Max({[Start Date Time],[Date_]})),
#"End Date Time 2" = Table.AddColumn(#"Start Date Time 2", "End Date Time 2",
each List.Min({[End Date Time],[Date_]+#duration(1,0,0,0)})),
Total_Minutes = Table.AddColumn(#"End Date Time 2", "Total_Minutes",
each Duration.TotalMinutes([End Date Time 2]-[Start Date Time 2]))
in
Total_MinutesStéphane
slorin
2 years agoSuper User
With Duration.TotalMinutes
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Add_Date = Table.AddColumn(Source, "Date_",
each List.Dates(
Date.From([Start Date Time]),
Duration.Days(Date.From([End Date Time])-Date.From([Start Date Time]))+1,
#duration(1,0,0,0))),
Date_Expand = Table.ExpandListColumn(Add_Date, "Date_"),
Type_datetime = Table.TransformColumnTypes(Date_Expand,{{"Date_", type datetime}}),
#"Start Date Time 2" = Table.AddColumn(Type_datetime, "Start Date Time 2",
each List.Max({[Start Date Time],[Date_]})),
#"End Date Time 2" = Table.AddColumn(#"Start Date Time 2", "End Date Time 2",
each List.Min({[End Date Time],[Date_]+#duration(1,0,0,0)})),
Total_Minutes = Table.AddColumn(#"End Date Time 2", "Total_Minutes",
each Duration.TotalMinutes([End Date Time 2]-[Start Date Time 2]))
in
Total_Minutes
Stéphane