Moin,
wenn Du diesen Code auf das Beispiel der Tabelle1 aus Deinem Eröffnungspost anwendest, erhältst Du nur einen Fehler. Warum?
Weil Du im letzten Schritt bei der Typänderung auf die Spalte 14 zugreifst, die es aber in der ursprünglichen Tabelle nicht als Wert gibt. Das heißt, Du bist bei der praktizierten, statischen Verwendung sowohl bei der Anzahl als auch in der Spaltenbenennung gebunden und jede Abweichung davon wird bestraft. Deshalb wäre eine dynamische Anwendung empfehlenswert.
Bsp.: (diesmal versuche ich den M-Code nicht als PHP Code zu posten...
)
...wobei... als PHP Code sah es schöner aus...
Aber hiermit bist Du auch flexibler bei Änderungen/Ergänzungen/Löschungen in EZ1...
wenn Du diesen Code auf das Beispiel der Tabelle1 aus Deinem Eröffnungspost anwendest, erhältst Du nur einen Fehler. Warum?
Weil Du im letzten Schritt bei der Typänderung auf die Spalte 14 zugreifst, die es aber in der ursprünglichen Tabelle nicht als Wert gibt. Das heißt, Du bist bei der praktizierten, statischen Verwendung sowohl bei der Anzahl als auch in der Spaltenbenennung gebunden und jede Abweichung davon wird bestraft. Deshalb wäre eine dynamische Anwendung empfehlenswert.
Bsp.: (diesmal versuche ich den M-Code nicht als PHP Code zu posten...
)Code:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"EZ1", type text}, {"EHZ", type text}}),
Anzahl = Table.Group(#"Geänderter Typ", {"EZ1"}, {{"Anzahl", each Table.RowCount(_), Int64.Type}}),
ListMax = List.Max( Anzahl[Anzahl])-1,
#"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ", {"EZ1"}, {{"grp", each _, type table [EZ1=nullable text, EHZ=nullable text]}}),
Sort = Table.Sort(#"Gruppierte Zeilen",{{"EZ1", Order.Ascending}}),
NSPL = List.Distinct(Sort[EZ1]),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(Sort, "Liste", each [grp][EHZ]),
#"Extrahierte Werte" = Table.TransformColumns(#"Hinzugefügte benutzerdefinierte Spalte", {"Liste", each Text.Combine(List.Transform(_, Text.From), "="), type text}),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Extrahierte Werte", "Liste", Splitter.SplitTextByDelimiter("=", QuoteStyle.Csv), {Text.From(1)..Text.From(ListMax)}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Spalte nach Trennzeichen teilen",{"grp"}),
#"Transponierte Tabelle" = Table.Transpose(#"Entfernte Spalten"),
Header = Table.PromoteHeaders(#"Transponierte Tabelle", [PromoteAllScalars=true]),
TypZuweisungen = List.Transform(NSPL, each {_, type text}),
GeaenderteTypen = Table.TransformColumnTypes(Header, TypZuweisungen)
in
GeaenderteTypen...wobei... als PHP Code sah es schöner aus...

Aber hiermit bist Du auch flexibler bei Änderungen/Ergänzungen/Löschungen in EZ1...

Spalten zusammenfassen, Werte untereinander

