Stimmt.
Aber mit Power Query habe ich einfach den überflüssigen Quark rausgeschmissen.
Code:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Spalte1", type text}, {"Spalte2", type text}, {"Spalte3", type text}, {"Spalte4", type text}, {"Spalte5", type text}, {"Spalte6", type any}, {"Spalte7", type any}}),
#"Nach unten gefüllt" = Table.FillDown(#"Geänderter Typ",{"Spalte2"}),
#"Andere entfernte Spalten" = Table.SelectColumns(#"Nach unten gefüllt",{"Spalte2", "Spalte4", "Spalte5", "Spalte7"}),
#"Entfernte oberste Zeilen" = Table.Skip(#"Andere entfernte Spalten",3),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Entfernte oberste Zeilen",{{"Spalte2", type date}}),
#"Umbenannte Spalten" = Table.RenameColumns(#"Geänderter Typ1",{{"Spalte2", "Datum"}, {"Spalte4", "Draht"}, {"Spalte5", "Rohr/Stab"}, {"Spalte7", "Gewicht in TO"}}),
#"Entpivotierte Spalten" = Table.UnpivotOtherColumns(#"Umbenannte Spalten", {"Datum", "Gewicht in TO"}, "Attribut", "Wert"),
#"Umbenannte Spalten1" = Table.RenameColumns(#"Entpivotierte Spalten",{{"Attribut", "Produkt"}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Umbenannte Spalten1",{"Wert"}),
#"Duplizierte Spalte" = Table.DuplicateColumn(#"Entfernte Spalten", "Datum", "Datum – Kopieren"),
#"Duplizierte Spalte1" = Table.DuplicateColumn(#"Duplizierte Spalte", "Datum", "Datum – Kopieren.1"),
#"Extrahiertes Jahr" = Table.TransformColumns(#"Duplizierte Spalte1",{{"Datum", Date.Year}}),
#"Name des Monats extrahiert" = Table.TransformColumns(#"Extrahiertes Jahr", {{"Datum – Kopieren", each Date.MonthName(_), type text}}),
#"Extrahierter Monat" = Table.TransformColumns(#"Name des Monats extrahiert",{{"Datum – Kopieren.1", Date.Month}}),
#"Umbenannte Spalten2" = Table.RenameColumns(#"Extrahierter Monat",{{"Datum – Kopieren", "Monat"}, {"Datum", "Jahr"}, {"Datum – Kopieren.1", "Monat#"}}),
#"Pivotierte Spalte" = Table.Pivot(#"Umbenannte Spalten2", List.Distinct(#"Umbenannte Spalten2"[Produkt]), "Produkt", "Gewicht in TO", List.Sum),
#"Sortierte Zeilen" = Table.Sort(#"Pivotierte Spalte",{{"Jahr", Order.Ascending}, {"Monat#", Order.Ascending}}),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Sortierte Zeilen",{"Monat#"})
in
#"Entfernte Spalten1"