let
Source = Excel.CurrentWorkbook(){[Name="Tabel1"]}[Content],
grp = Table.Group(Source, {"opdrachtnr", "referentie", "naam", "gemeente", "code"}, {{"factuurcode", each Text.Combine([factuurcode],";") }, {"postcode", each List.First([postcode])}}),
xMaxList = List.Transform({
1..List.Max(
Table.AddColumn( grp, "Custom", each
List.Count(
Text.PositionOfAny([factuurcode], {";"}, Occurrence.All)
))[Custom]
) +1
}, each "factuurcode_" & Text.From(_)),
split = Table.SplitColumn(grp, "factuurcode", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), xMaxList),
cols = Table.ColumnNames(split),
Aangepast1 = Table.Group(split, {"code"}, {{"Count", each Table.InsertRows(_,Table.RowCount(_), {Record.FromList(List.Repeat({null},Table.ColumnCount(_)),cols)} )}}),
delCode = Table.RemoveColumns(Aangepast1,{"code"}),
uitvouwen = Table.ExpandTableColumn(delCode, "Count", {"opdrachtnr", "referentie", "naam", "gemeente", "code", "factuurcode_1", "factuurcode_2", "factuurcode_3", "factuurcode_4", "factuurcode_5", "postcode"}, {"opdrachtnr", "referentie", "naam", "gemeente", "code", "factuurcode_1", "factuurcode_2", "factuurcode_3", "factuurcode_4", "factuurcode_5", "postcode"})
in
uitvouwen