Duplikate entfernen mit Power Query
Kundenlisten aus zwei Exporten, doppelt erfasste Anmeldungen, eine Datei, die zweimal angehängt wurde: Duplikate entfernt Power Query mit einem Befehl. Entscheidend ist, welche Spalten du dafür markierst.
Kurz gesagt: Markiere die Spalte oder Spalten, die zusammen eindeutig sein sollen, dann Start > Zeilen entfernen > Duplikate entfernen. Power Query behält die erste Zeile je Wert. Die M-Formel lautet zum Beispiel Table.Distinct(Quelle, {"Kundennr"}).
Probier es gleich aus
Die Kundenliste wurde zweimal exportiert, und ein Kunde ist in der Zwischenzeit umgezogen. Jede Kundennummer soll am Ende nur einmal vorkommen.
Der Befehl dafür ist Start > Zeilen entfernen > Duplikate entfernen. Er vergleicht nur die Spalten, die du vorher markiert hast: Stimmen alle markierten Werte einer Zeile mit einer früheren Zeile überein, gilt sie als Duplikat und fliegt raus. Die erste Zeile je Wert bleibt stehen.
Aufgabe Die Kundenliste wurde zweimal exportiert. Jede Kundennummer soll nur einmal vorkommen, die erste Zeile je Kunde bleibt stehen.
| A | B | C | |
|---|---|---|---|
| 1 | Kundennr | Name | Ort |
| 2 | K-101 | Anna Schmidt | Berlin |
| 3 | K-102 | Ben Roth | Hamburg |
| 4 | K-101 | Anna Schmidt | Berlin |
| 5 | K-103 | Carla Weber | Leipzig |
| 6 | K-102 | Ben Roth | Bremen |
| 7 | K-104 | Dirk Vogel | Berlin |
| 8 | K-103 | Carla Weber | Leipzig |
Hast du zuerst alle Spalten markiert? Dann bleibt Ben Roth zweimal stehen, weil sich seine beiden Zeilen im Ort unterscheiden.
Welche Spalten markieren?
| Ziel | Markieren | Ergebnis |
|---|---|---|
| komplett gleiche Zeilen entfernen | alle Spalten | nur echte Doppelungen fliegen raus |
| jeden Kunden einmal | nur die Kundennummer | erste Zeile je Kunde bleibt, auch wenn andere Spalten abweichen |
| jede Kombination einmal | zum Beispiel Kunde und Produkt | eine Zeile je Kunde und Produkt |
Welche Zeile bei mehreren Treffern bleibt, hängt von der Reihenfolge ab. Willst du gezielt den neuesten Eintrag behalten, sortierst du vorher absteigend nach Datum. Microsoft weist darauf hin, dass die Reihenfolge ohne Puffern nicht in jedem Fall garantiert ist; bei wichtigen Listen prüfst du das Ergebnis deshalb kurz.
Achtung: Groß- und Kleinschreibung zählt
Hier unterscheidet sich Power Query vom Befehl Duplikate entfernen im Excel-Menü. Microsoft schreibt in der Power Query-Dokumentation ausdrücklich, dass beim Umgang mit Duplikaten die Groß- und Kleinschreibung beachtet wird. „Anna@Firma.de“ und „anna@firma.de“ sind für Power Query zwei verschiedene Werte, genauso eine Adresse mit Leerzeichen am Ende. Die Lösung: erst angleichen, dann Duplikate entfernen.
Aufgabe Jede E-Mail-Adresse soll nur einmal in der Liste stehen. Achtung: Power Query unterscheidet Groß- und Kleinschreibung, und manche Adressen haben Leerzeichen am Rand. Bereinige die Adressen (Kleinbuchstaben, Rand-Leerzeichen weg) und entferne dann die Duplikate nach E-Mail.
| A | B | |
|---|---|---|
| 1 | Quelle | |
| 2 | anna@firma.de | Webseite |
| 3 | Anna@Firma.de | Messe |
| 4 | ben@shop.de | Webseite |
| 5 | BEN@shop.de | Messe |
| 6 | carla@web.de | Webseite |
| 7 | dirk@web.de | Messe |
| 8 | anna@firma.de | Messe |
Diese Übung gehört zu Premium.
Mit Premium öffnest du alle Übungen jeder Lektion, übst unbegrenzt mit neuen Aufgaben und kannst den Abschlusstest mit Zertifikat machen.
Premium ansehen Schon Premium? Anmelden
Die erste Übung dieser Lektion ist kostenlos.
Die Reihenfolge der Schritte zählt. Entfernst du die Duplikate zuerst und bereinigst danach, stehen dieselben Adressen am Ende doppelt in der Liste. Mehr zu Kürzen und Kleinbuchstaben steht auf der Seite Daten bereinigen mit Power Query.
Der M-Code der zweiten Übung
= Table.TransformColumns(Quelle,{{"E-Mail", Text.Lower, type text}})
= Table.TransformColumns(#"Kleingeschriebener Text",{{"E-Mail", Text.Trim, type text}})
= Table.Distinct(#"Gekürzter Text", {"E-Mail"})
Die Liste in geschweiften Klammern am Ende von Table.Distinct enthält genau die Spalten, die du markiert hattest. Fehlt die Liste, vergleicht Power Query alle Spalten.
Power Query oder Menübefehl?
- Daten > Duplikate entfernen im Tabellenblatt löscht die Zeilen sofort und dauerhaft. Gut für eine einmalige Bereinigung.
- Power Query lässt die Quelle unverändert und wiederholt die Bereinigung bei jedem Aktualisieren. Gut für Listen, die regelmäßig neu kommen.
- EINDEUTIG als Formel zeigt eine Liste ohne Doppelte gleich neben den Daten, ab Excel 2021 und in Microsoft 365.
Duplikate nur anzeigen statt entfernen
Manchmal willst du die doppelten Einträge sehen, bevor du sie löschst. In Power Query gibt es dafür im selben Menü Duplikate beibehalten: Dann bleiben nur die Zeilen übrig, deren Wert mehrfach vorkommt. Eine andere Möglichkeit ist Gruppieren nach mit Zeilen zählen; alle Werte mit einer Anzahl über 1 sind Duplikate.
Typische Fehler
Es werden zu wenige Duplikate gefunden
Meist sind es Leerzeichen am Rand oder unterschiedliche Schreibweise. Gleich die Spalte mit Kürzen und Kleinbuchstaben an. Auch Zahlen, die einmal als Text und einmal als Zahl vorliegen, gelten als verschieden; setz vorher den Datentyp.
Es verschwinden zu viele Zeilen
Es war zu wenig markiert. Prüf in der Formelleiste, welche Spalten in der Liste von Table.Distinct stehen.
Auf Englisch
Im englischen Excel heißt der Befehl Remove Duplicates unter Home > Remove Rows, das Gegenstück Keep Duplicates. Der Schritt heißt dort „Removed Duplicates“ statt „Entfernte Duplikate“, die M-Funktion Table.Distinct ist in beiden Sprachen gleich.
In welchen Excel-Versionen geht das?
Duplikate entfernen gehört zum Power Query-Editor in Excel 2016 und neuer für Windows und in Microsoft 365, auf dem Mac nur mit Microsoft 365. Mehr dazu auf der Einstiegsseite zu Power Query.
Häufige Fragen
Kann ich Groß- und Kleinschreibung ignorieren lassen?
Über das Menü nicht. Der einfache Weg ist, die Spalte vorher mit Kleinbuchstaben oder Großbuchstaben anzugleichen, so wie in der Übung.
Bleibt immer die erste Zeile stehen?
In der Regel ja. Sollen bestimmte Zeilen sicher bleiben, sortiere vorher so, dass sie oben stehen, und prüf das Ergebnis.
Werden meine Originaldaten gelöscht?
Nein. Power Query verändert nur das Ergebnis der Abfrage, die Ausgangstabelle bleibt vollständig.