let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
ChangeType = Table.TransformColumnTypes(Source,{{"A", type date}, {"B", type date}, {"C", type date}, {"D", type date}}),
tbl = Table.SelectColumns(ChangeType, List.RemoveItems(Table.ColumnNames(ChangeType), {"ID"})),
AddCol = Table.AddColumn(tbl, "Latest Date", each Table.FromColumns({Table.ColumnNames(tbl),Record.ToList(_)})),
TransformCol = Table.TransformColumns(AddCol, {"Latest Date", each Text.Combine(Table.SelectRows(_, (x)=> x[Column2] = List.Max(_[Column2]))[Column1],", ")}),
Result = Table.FromColumns({ChangeType[ID]} & Table.ToColumns(TransformCol), {"ID"} & Table.ColumnNames(TransformCol))
in
Result