AW: Daten beneeinander zusammenführen
29.01.2025 18:08:25
Luschi
Hallo David,
hier mal meine Excel-Power Query-Version:
let
Quelle = Excel.CurrentWorkbook(){[Name="tab_Daten"]}[Content],
#"Geänderter Typ.1" = Table.TransformColumnTypes(Quelle,{{"Name", type text}, {"Produkt", type text}, {"Nummer", Int64.Type}}),
SpaltenUeberschriften = List.Skip(Table.ColumnNames(#"Geänderter Typ.1"), 1),
#"Gruppierte Zeilen" = Table.Group(#"Geänderter Typ.1", {"Name"}, {{"Gruppe", each List.Zip({_[Produkt],_[Nummer]}) }}),
#"neue Spalte.1" = Table.AddColumn(#"Gruppierte Zeilen", "Listen", each List.Combine([Gruppe])),
#"Extrahierte Werte" = Table.TransformColumns(#"neue Spalte.1", {"Listen",
each Text.Combine(List.Transform(_, Text.From), "|"), type text}),
#"Anzahl neue Spalten" =
let a = #"Extrahierte Werte"[Listen],
b = List.Transform(a, each List.Count(Text.PositionOf(_, "|", Occurrence.All))),
c = List.Max(b)+1
in c,
#"neue SpaltenUeberschriften" = List.Accumulate(
{1..#"Anzahl neue Spalten"},
{},
(st, cur)=> if Number.IsEven(cur)
then st & {SpaltenUeberschriften{1} & Text.From(cur / 2)}
else st & {SpaltenUeberschriften{0} & Text.From(Number.IntegerDivide(cur,2)+1)}),
#"neue SpaltenTypen" = List.Accumulate(
{1..#"Anzahl neue Spalten"},
{},
(st, cur)=> if Number.IsEven(cur)
then st & {{#"neue SpaltenUeberschriften"{cur-1}, Int64.Type}}
else st & {{#"neue SpaltenUeberschriften"{cur-1} , type text}}),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Extrahierte Werte", "Listen",
Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), #"neue SpaltenUeberschriften"),
#"Geänderter Typ.2" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen", #"neue SpaltenTypen")
in
#"Geänderter Typ.2"
Gruß von Luschi
aus klein-Paris