Power Query, mehrere Werte in einer Zelle verketten
Ausgangslage und Ziel:
einem Lieferanten sind eine oder mehrere Warengruppe(n) zugeordnet.
Im Falle des Vorhandenseins von mehreren Warengruppen je Lieferant sollen nicht
mehrere Zeilen ausgegeben werden.
Stattdessen sollen die Warengruppen getrennt durch ein Trennzeichen in einer Zelle
abgebildet werden.
Language M Code in neue Abfrage einfügen (erweiterter Editor):
---SCHNIPP --
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
fCombine = Combiner.CombineTextByDelimiter(", "),
GruppierteZeilenWarengruppe = Table.Group(
Quelle,
{"Lieferant"},
{{"Warengruppen", each fCombine([Warengruppe]), type text}}
)
in
GruppierteZeilenWarengruppe
--- SCHNAPP --
weiteres Beispiel
---SCHNIPP ---
let
Quelle = Table.NestedJoin(tbl_Lizenz,{"Rolle"},tbl_Lizenztyp,{"Rolle"},"tbl_Lizenztyp",JoinKind.LeftOuter),
fCombine = Combiner.CombineTextByDelimiter(", "),
#"Erweiterte tbl_Lizenztyp" = Table.ExpandTableColumn(Quelle, "tbl_Lizenztyp", {"Lizenztyp", "Rang"}, {"Lizenztyp", "Rang"}),
#"Gruppierte Zeilen" = Table.Group(#"Erweiterte tbl_Lizenztyp", {"user"}, {{"hoechster_Rang", each List.Max([Rang]), type number}, {"Rollen", each fCombine([Rolle]), type text}, {"Lizenztypen", each fCombine([Lizenztyp]), type text}})
in
#"Gruppierte Zeilen"
--- SCHNAPP ---
alternativer Ansatz
1 Gruppieren, Alle Zeilen (Ergebnis: Table Object)
2 Table Object in List Object konvertieren
3 Werte extrahieren, Trennzeichen für das Verketten von Listenwerten auswählen
alternativer Ansatz
einem Lieferanten sind eine oder mehrere Warengruppe(n) zugeordnet.
Im Falle des Vorhandenseins von mehreren Warengruppen je Lieferant sollen nicht
mehrere Zeilen ausgegeben werden.
Stattdessen sollen die Warengruppen getrennt durch ein Trennzeichen in einer Zelle
abgebildet werden.
Language M Code in neue Abfrage einfügen (erweiterter Editor):
---SCHNIPP --
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
fCombine = Combiner.CombineTextByDelimiter(", "),
GruppierteZeilenWarengruppe = Table.Group(
Quelle,
{"Lieferant"},
{{"Warengruppen", each fCombine([Warengruppe]), type text}}
)
in
GruppierteZeilenWarengruppe
--- SCHNAPP --
weiteres Beispiel
---SCHNIPP ---
let
Quelle = Table.NestedJoin(tbl_Lizenz,{"Rolle"},tbl_Lizenztyp,{"Rolle"},"tbl_Lizenztyp",JoinKind.LeftOuter),
fCombine = Combiner.CombineTextByDelimiter(", "),
#"Erweiterte tbl_Lizenztyp" = Table.ExpandTableColumn(Quelle, "tbl_Lizenztyp", {"Lizenztyp", "Rang"}, {"Lizenztyp", "Rang"}),
#"Gruppierte Zeilen" = Table.Group(#"Erweiterte tbl_Lizenztyp", {"user"}, {{"hoechster_Rang", each List.Max([Rang]), type number}, {"Rollen", each fCombine([Rolle]), type text}, {"Lizenztypen", each fCombine([Lizenztyp]), type text}})
in
#"Gruppierte Zeilen"
--- SCHNAPP ---
alternativer Ansatz
1 Gruppieren, Alle Zeilen (Ergebnis: Table Object)
2 Table Object in List Object konvertieren
3 Werte extrahieren, Trennzeichen für das Verketten von Listenwerten auswählen
alternativer Ansatz
benutzerdefinierte Spalte hinzufügen
=Table.Column([Anzahl],"Warengruppe")
Ergebnis: Listobjekt (List)
Details siehe hier
siehe auch List.Distint(), falls Dubletten entfernt werden sollen (eindeutige Elemente)
Ab Excel 2016 alternativ mit DAX Funktion CONCATENATEX lösbar
siehe DAX Funktionen
siehe auch List.Distint(), falls Dubletten entfernt werden sollen (eindeutige Elemente)
Ab Excel 2016 alternativ mit DAX Funktion CONCATENATEX lösbar
siehe DAX Funktionen
Lern Video
siehe auch
mehrere Werte pro Zelle getrennt durch Delimiter, eindeutige Werte ermitteln
Hallo,
AntwortenLöschenerst einmal vielen Dank für die ganzen tollen und nützlichen Tipps.
Ich bin Power Query Neuling. Habe versucht deinen alternativen Ansatz zu übermehmen,aber ab Punkt 2 Table Object in List Object konvertieren schaut es bei mir komplett anders aus und ich kann im Nachgang auch nicht extrahieren (Button off). Vielleicht markiere ich etwas falsch.Sorry bin Laie, wäre für deine Hilfe sehr dankbar.
Viele Grüße
Ersetze den Schritt
AntwortenLöschen= Table.Group(#"Geänderter Typ", {"Lieferant"}, {{"Anzahl", each _, type table}})
durch
= Table.Group(#"Geänderter Typ", {"Lieferant"}, {{"Anzahl", each _[Warengruppe]}})
dann sollte es funktionieren
Super, vielen Dank!
AntwortenLöschen