let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText(
"i45WclTSUQpOTUnMA9LuvkDCyMDQAsQuSq1UitWBKAjITM4uLQAy3PKLUsBqjAyBlFNOYnI2XFFwaBiQdM5ILatEGBOUmgJW4ARkhyFbYmQApMIzMktS4fJwWxBmgFUhrHFGcmxIanFOIkSRE
bJ7XeBO8cjPS4GoMASpCM7MKUstgqvB9JOhJcic/JwUNHNgwWKM4mIX7G5BCpdYAA==", BinaryEncoding.Base64),
Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Type = _t, Make = _t, Year = _t, Color = _t]),
tbl = Table.SelectRows(Source, each List.Count(List.PositionOf(Source[Name], [Name],2))>1),
tbl1 = Table.Group(tbl, {"Name"}, {{"all", each {_[Name]{0}} & List.Combine(Table.ToRows(Table.SelectColumns(_, List.Skip(Table.ColumnNames(_),1))))}}),
maxCol = List.Accumulate(tbl1[all], 0, (s,c)=> if List.Count(c) > s then List.Count(c) else s),
tbl2 = Table.TransformColumns(tbl1, {{"all", each _ & List.Repeat({null}, maxCol - List.Count(_))}}),
ColNames = {"Name"} & List.Accumulate({1..(maxCol-1)/(Table.ColumnCount(Source)-1)}, {}, (s,c)=> s & List.Transform(List.Skip(Table.ColumnNames(Source),1), each _ & "." & Text.From(c))),
tbl3 = Table.FromRows(tbl2[all],ColNames)
in
tbl3