电源查询
let
Source = Web.BrowserContents("https://stackoverflow.com/questions/68194967/power-query-merge-duplicated-rows-with-collapsing-values"),
#"Extracted Table From Html" = Html.Table(Source, {{"Column1", "DIV.s-table-container:nth-child(3) > TABLE.s-table > * > TR > :nth-child(1)"}, {"Column2", "DIV.s-table-container:nth-child(3) > TABLE.s-table > * > TR > :nth-child(2)"}, {"Column3", "DIV.s-table-container:nth-child(3) > TABLE.s-table > * > TR > :nth-child(3)"}}, [RowSelector="DIV.s-table-container:nth-child(3) > TABLE.s-table > * > TR"]),
#"Promoted Headers" = Table.PromoteHeaders(#"Extracted Table From Html", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Stop", type text}, {"Time_in", type time}, {"Time_out", type time}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Time_out"}),
#"Grouped Rows" = Table.Group(#"Removed Columns", {"Stop"}, {{"ad_1", each _, type table [Stop=nullable text, Time_in=nullable time]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let x= [ad_1],
#"Removed Columns1" = Table.RemoveColumns(x,{"Stop"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns1",{{"Time_in", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1, Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Added Index", each ([Index] = 1)),
#"Removed Columns2" = Table.RemoveColumns(#"Filtered Rows",{"Index"})
in
#"Removed Columns2"),
#"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"ad_1"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Columns1", "Custom", {"Time_in"}, {"Time_in"}),
Custom1 = Table.RemoveColumns(#"Changed Type",{"Time_in"}),
#"Grouped Rows1" = Table.Group(Custom1, {"Stop"}, {{"ad_2", each _, type table [Stop=nullable text, Time_out=nullable time]}}),
Custom2 = Table.AddColumn(#"Grouped Rows1", "Custom", each let x= [ad_2],
#"Removed Columns1" = Table.RemoveColumns(x,{"Stop"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns1",{{"Time_out", Order.Descending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1, Int64.Type),
#"Filtered Rows" = Table.SelectRows(#"Added Index", each ([Index] = 1)),
#"Removed Columns2" = Table.RemoveColumns(#"Filtered Rows",{"Index"})
in
#"Removed Columns2"),
#"Removed Columns2" = Table.RemoveColumns(Custom2,{"ad_2"}),
#"Expanded Custom1" = Table.ExpandTableColumn(#"Removed Columns2", "Custom", {"Time_out"}, {"Time_out"}),
#"Merged Queries" = Table.NestedJoin(#"Expanded Custom", {"Stop"}, #"Expanded Custom1", {"Stop"}, "Expanded Custom1", JoinKind.LeftOuter),
#"Expanded Expanded Custom1" = Table.ExpandTableColumn(#"Merged Queries", "Expanded Custom1", {"Time_out"}, {"Time_out"})
in
#"Expanded Expanded Custom1"
DAX
min:= MIN('Table 1'[Time_in])
max:= MAX('Table 1'[Time_out])
DAX 结果