Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PowerQuery Gruppieren/Zusammenfassen

Forumthread: PowerQuery Gruppieren/Zusammenfassen

PowerQuery Gruppieren/Zusammenfassen
01.03.2023 14:32:33
Bernd
Hallo Excel-Gemeinde,
ich habe ein kleines Anliegen, was mir seit einiger Zeit Kopfzerbrechen bereitet. Es ist garantiert ganz einfach zulösen, aber irgendwie komme ich nicht drauf. Scheinbar finde ich nicht dich richtigen Suchbegriffe für Google oder ich habe einen Fehler im Ablauf. Ich habe in Spalte A doppelte Werte, die sich aber in Spalte B unterscheiden. Ich möchte Spalte B zusammenfassen, sodass ich keine doppelten Werte mehr in Spalte A habe. Da ganze möchte ich im PowerQuery realisieren.
Ist-Zustand:
Spalte A Spalte B
(Text) (Text)
1.0001 aaa
1.0002 bbb
1.0003 ccc
1.0003 ccc1
1.0003 ccc5
1.0004 ddd
1.0005 eee
Soll-Zustand (1. Schritt):
Spalte A Spalte B Spalte C Spalte D
(Text) (Text) (Text) (Text)
1.0001 aaa
1.0002 bbb
1.0003 ccc ccc1 ccc5
1.0004 ddd
1.0005 eee
Soll-Zustand (2. Schritt):
Spalte A Spalte B
(Text) (Text)
1.0001 aaa
1.0002 bbb
1.0003 ccc; ccc1; ccc5
1.0004 ddd
1.0005 eee
Vielen Dank
Bernd Fuchs
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PowerQuery Gruppieren/Zusammenfassen
01.03.2023 15:06:13
Yal
Hallo Bernd,
https://www.google.com/search?q=power+query+group+by+text+combine
man macht eine Gruppierung, sodass alle Element von Spalte A eindeutig werden. Bei der Gruppierung gibt es keine sofortige Möglichkeit eine Text.Combine einzugeben. Man nimmt eine Dummy-Funktion, wie Sum, die man anschliessend in der Bearbeitungsleiste durhc Text.Combine ersetzt.
VG
Yal
Anzeige
AW: PowerQuery Gruppieren/Zusammenfassen
01.03.2023 15:31:32
ChrisL
Hi
Wie Yal beschrieben hat. Ein Dummy-Gruppierung machen und die Code-Zeile anpassen. So würde die fertige Zeile aussehen:
= Table.Group(Quelle, {"Spalte A"}, {"Spalte B kombi", each Text.Combine([Spalte B],"; ") , type text}) 
cu
Chris
AW: PowerQuery Gruppieren/Zusammenfassen
01.03.2023 16:06:56
ChrisL
Zur Ergänzung noch ein Weg mittels Standard-Funktionalität:
- Gruppieren nach Spalte A, neue Spaltenname "alle" und als Vorgang "Alle Zeilen" wählen
- Benutzerdefinierte Spalte hinzufügen:
Spalte B kombi = [alle][Spalte B]
- Im Titel der neuen Spalte auf die Pfeile drücken, "Werte extrahieren...", Semikolon als Trennzeichen wählen
- Spalte "alle" löschen
Anzeige
und anschliessend "Spalten teilen"
01.03.2023 16:09:15
Yal
...haben wir beide vergessen.
Diese "Spalten teilen" liefert dir aber einen festen Anzahl an Zielspalten, abhängig von deinem aktuellen Beispiel. Danach ist es leider fest. Also muss im voraus immer die maximale Anzahl an mögliche Spalten eingegeben werden.
In folgendem kommen 2 Spalten heraus:
Table.TransformColumnTypes(#"vorige Schritt",{{"Anzahl.1", type text}, {"Anzahl.2", type text}})
Du kannst in voraussicht zusätzlichen Spalten per Hand eintragen (hier eine dritte):
Table.TransformColumnTypes(#"vorige Schritt",{{"Anzahl.1", type text}, {"Anzahl.2", type text}, {"Anzahl.3", type text}})
usw.
VG
Yal
Anzeige
AW: und anschliessend "Spalten teilen"
01.03.2023 16:30:34
ChrisL
Ich hatte den Schritt 1 nur als Weg für Schritt 2 verstanden, daher gekonnt ignoriert :)
Hier noch ein Ansatz für Schritt 1:
- Gruppieren "alle"
- Benutzerdefinierte Spalte hinzufügen (der Tabelle "alle" einen Index hinzufügen)
= Table.AddIndexColumn([alle],"Index",1)
- Erweitern und Spalte "alle" löschen
- Pivotieren, wobei der Index als Spaltentitel dient
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Gruppierte Zeilen" = Table.Group(Quelle, {"Spalte A"}, {{"alle", each _, type table [Spalte A=number, Spalte B=text]}}),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Gruppierte Zeilen", "alle mit Index", each Table.AddIndexColumn([alle],"Index",1)),
    #"Erweiterte alle mit Index" = Table.ExpandTableColumn(#"Hinzugefügte benutzerdefinierte Spalte", "alle mit Index", {"Spalte B", "Index"}, {"alle mit Index.Spalte B", "alle mit Index.Index"}),
    #"Entfernte Spalten" = Table.RemoveColumns(#"Erweiterte alle mit Index",{"alle"}),
    #"Pivotierte Spalte" = Table.Pivot(Table.TransformColumnTypes(#"Entfernte Spalten", {{"alle mit Index.Index", type text}}, "de-de"), List.Distinct(Table.TransformColumnTypes(#"Entfernte Spalten", {{"alle mit Index.Index", type text}}, "de-CH")[#"alle mit Index.Index"]), "alle mit Index.Index", "alle mit Index.Spalte B")
in
    #"Pivotierte Spalte"

Anzeige
AW: PowerQuery Gruppieren/Zusammenfassen
01.03.2023 16:29:18
Luschi
Hallo PQ-M-Fan's,
sollten in 'Spalte B' neben Text auch Zahlen vorkommen, dann sieht die Gruppierung so aus:
= Table.Group(Quelle, {"Spalte A"}, {"Spalte B kombi",
               each Text.Combine(List.Transform([Spalte_B], Text.From), ",") , type text})
Gruß von Luschi
aus klein-Paris
Anzeige
AW: PowerQuery Gruppieren/Zusammenfassen
04.03.2023 23:22:59
Bernd
Vielen Dank euch allen.
Über die richtigen Google-Begriffe von YAL habe ich Hilfe gefunden und zwar so wie Chris beschrieben hat.
Einfach die Codezeile anpassen. Den Schritt 1 und 2 hatte ich nur angeben, weil ich dachte der Umfang ist komplizierter.
Schönen Abend
Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

PowerQuery: Zeilen Zusammenfassen und Gruppieren


Schritt-für-Schritt-Anleitung

  1. Power Query öffnen: Gehe zu „Daten“ > „Abfragen und Verbindungen“ und öffne den Power Query Editor.

  2. Daten laden: Lade die Tabelle mit den doppelten Werten in Spalte A und den entsprechenden Werten in Spalte B.

  3. Gruppierung durchführen:

    • Wähle die Spalte A aus.
    • Klicke auf „Gruppieren“ in der Menüleiste.
    • Setze als neuen Spaltennamen „Spalte B kombi“ und wähle eine Dummy-Funktion wie „Sum“ aus. Dies wird später durch die „Text.Combine“ Funktion ersetzt.
  4. Code anpassen:

    • Klicke in die Bearbeitungsleiste und ändere die Zeile zu:
      = Table.Group(Quelle, {"Spalte A"}, {"Spalte B kombi", each Text.Combine([Spalte B],"; "), type text})
  5. Optionale Schritte: Wenn gewünscht, füge zusätzliche Schritte hinzu, um die Spalten nach dem Gruppieren weiter zu bearbeiten.


Häufige Fehler und Lösungen

  • Fehler bei der Gruppierung: Wenn die Gruppierung nicht funktioniert, überprüfe, ob du die richtigen Spalten ausgewählt hast.

  • Doppelte Werte nicht zusammengefasst: Stelle sicher, dass du die „Text.Combine“ Funktion korrekt in den Code integriert hast.

  • Falsches Trennzeichen: Achte darauf, dass du das richtige Trennzeichen in der Text.Combine Funktion angibst; in diesem Fall ist es ein Semikolon.


Alternative Methoden

Eine alternative Methode zur Gruppierung in Power Query ist die Verwendung von:

  • Benutzerdefinierten Spalten: Du kannst eine benutzerdefinierte Spalte hinzufügen, die die Werte in Spalte B aggregiert. Gehe dazu wie folgt vor:

    • Gruppiere nach Spalte A und wähle „Alle Zeilen“.
    • Füge eine benutzerdefinierte Spalte hinzu, um die Werte in Spalte B zu extrahieren und zu verketten.
  • Power BI: Wenn du Power BI verwendest, kannst du ähnliche Gruppierungsoperationen durchführen, um Werte zusammenzufassen.


Praktische Beispiele

Angenommen, du hast folgende Daten:

Spalte A Spalte B
1.0001 aaa
1.0002 bbb
1.0003 ccc
1.0003 ccc1
1.0003 ccc5

Nach der Anwendung der oben beschriebenen Schritte solltest du folgendes Ergebnis erhalten:

Spalte A Spalte B
1.0001 aaa
1.0002 bbb
1.0003 ccc; ccc1; ccc5

Tipps für Profis

  • Verwendung von Bedingungen: Nutze power query zusammenführen mit bedingung, um die Daten nur unter bestimmten Voraussetzungen zu gruppieren.

  • Performance optimieren: Achte darauf, große Datenmengen effizient zu verarbeiten, indem du unnötige Schritte minimierst.

  • Excel Power Query Funktionen: Mache dich mit anderen Power Query Funktionen wie power query spalten addieren und power query zeilen aggregieren vertraut, um deine Abfragen weiter zu verfeinern.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten in Power Query zusammenfassen?
Du kannst die Table.Group Funktion nutzen, um mehrere Spalten zu gruppieren und die entsprechenden Werte zusammenzufassen, indem du die Text.Combine Funktion anwendest.

2. Ist Power Query in Excel und Power BI identisch?
Die Grundfunktionen sind ähnlich, aber es gibt Unterschiede in der Benutzeroberfläche und in spezifischen Funktionen. In Power BI kannst du zusätzliche Visualisierungs- und Analysefunktionen nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige