AW: so nicht nachvollziehbar ...
29.06.2022 14:55:15
ChrisL
Hi
https://www.herber.de/bbs/user/153857.xlsx
Die Funktion sortiert die gegliederten Werte und liefert auch gleich noch den Index.
- Input Typ Liste mit den Gliederungswerten z.B. {"1.0", "1.1", "2.0", "2.0.1"}
- Duplikate werden durch die Funktion entfernt
- Output Typ Tabelle, Werte sortiert, zusätzlich eine Index-Spalte
Funktioniert bis zu 10 Gliederungsebenen. Die Lösung ist daher nicht 100 % dynamisch, aber 10 Ebenen sollten i.d.R. reichen.
cu
Chris
Hauptabfrage:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(Quelle, {"Spalte1"}, "Attribut", "Wert"),
#"Gruppierte Zeilen" = Table.Group(#"Entpivotierte andere Spalten", {"Spalte1"}, {{"TabelleGanz", each _, type table [Spalte1=text, Attribut=text, Wert=text]}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Gruppierte Zeilen", "Werte", each fxSortieren([TabelleGanz][Wert])),
#"Erweiterte Werte" = Table.ExpandTableColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Werte", {"Index", "WerteSortiert"}, {"Index", "WerteSortiert"}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Erweiterte Werte",{"TabelleGanz"}),
#"Pivotierte Spalte" = Table.Pivot(Table.TransformColumnTypes(#"Entfernte Spalten", {{"Index", type text}}, "de-CH"), List.Distinct(Table.TransformColumnTypes(#"Entfernte Spalten", {{"Index", type text}}, "de-CH")[Index]), "Index", "WerteSortiert")
in
#"Pivotierte Spalte"
fxSortieren:
(WertListe as list) =>
let
Quelle = List.Distinct(WertListe),
#"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"In Tabelle konvertiert", "Column1", Splitter.SplitTextByDelimiter(".", QuoteStyle.None), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10"}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", Int64.Type}, {"Column1.2", Int64.Type}, {"Column1.3", Int64.Type}, {"Column1.4", Int64.Type}, {"Column1.5", Int64.Type}, {"Column1.6", Int64.Type}, {"Column1.7", Int64.Type}, {"Column1.8", Int64.Type}, {"Column1.9", Int64.Type}, {"Column1.10", Int64.Type}}),
#"Sortierte Zeilen" = Table.Sort(#"Geänderter Typ",{{"Column1.1", Order.Ascending}, {"Column1.2", Order.Ascending}, {"Column1.3", Order.Ascending}, {"Column1.4", Order.Ascending}, {"Column1.5", Order.Ascending}, {"Column1.6", Order.Ascending}, {"Column1.7", Order.Ascending}, {"Column1.8", Order.Ascending}, {"Column1.9", Order.Ascending}, {"Column1.10", Order.Ascending}}),
#"Hinzugefügter Index" = Table.AddIndexColumn(#"Sortierte Zeilen", "Index", 1, 1, Int64.Type),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Hinzugefügter Index",{{"Column1.1", type text}, {"Column1.2", type text}, {"Column1.3", type text}, {"Column1.4", type text}, {"Column1.5", type text}, {"Column1.6", type text}, {"Column1.7", type text}, {"Column1.8", type text}, {"Column1.9", type text}, {"Column1.10", type text}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ1", "WerteSortiert", each Text.Combine({[Column1.1],[Column1.2],[Column1.3],[Column1.4],[Column1.5],[Column1.6],[Column1.7],[Column1.8],[Column1.9],[Column1.10]},".")),
#"Geänderter Typ2" = Table.TransformColumnTypes(#"Hinzugefügte benutzerdefinierte Spalte",{{"WerteSortiert", type text}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ2",{"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10"})
in
#"Entfernte Spalten"