Adressdubletten bereinigen: Schritt für Schritt mit Beispiel
Kurz gesagt
Um Adressdubletten zu bereinigen, vereinheitlichst du zuerst die Schreibweise (Straße und Str., ß und ss, Umlaute, Hausnummernzusätze), bildest daraus einen Abgleichschlüssel, vergleichst nur Datensätze mit gleicher Postleitzahl, lässt Grenzfälle von Hand prüfen und führst dann nach festen Regeln zusammen.
Das Haus auf dem Foto trägt drei Nummern: 78, 34 und darunter die alte 16. Ein Gebäude, drei Schreibweisen, und alle drei können in einer Kundendatenbank noch irgendwo stehen. So sehen Adressdubletten aus. Falsch ist eigentlich nichts. Dasselbe wurde nur unterschiedlich erfasst.
Die Quellen sind meist dieselben. Gastbestellungen legen pro Bestellung einen neuen Kunden an. Marktplätze liefern Adressen in ihrem eigenen Format. Wer umzieht, bekommt einen zweiten Datensatz. Und am Telefon tippt jemand die Adresse neu ein, statt zu suchen.
Schritt 1: Schreibweisen vereinheitlichen
Ein Vergleich der Rohdaten findet fast nichts. Hauptstraße 12a und Hauptstr. 12 A sind dieselbe Adresse, aber kein exakter Vergleich erkennt das. Vor jedem Abgleich bringst du deshalb beide Seiten in dieselbe Form:
- alles in Kleinbuchstaben
- ß zu ss, ä zu ae, ö zu oe, ü zu ue
- Straße, Strasse und Str. auf eine Form kürzen
- Hausnummernzusätze ohne Leerzeichen an die Zahl hängen:
12 Awird12a - Punkte und Kommas entfernen, mehrfache Leerzeichen zusammenfassen
- Postleitzahlen als Text mit führender Null
Hier eine bewusst einfache Fassung in JavaScript, die wir mit sechs Beispielzeilen getestet haben:
const norm = (s) => s.toLowerCase()
.replace(/ß/g, 'ss').replace(/ä/g, 'ae').replace(/ö/g, 'oe').replace(/ü/g, 'ue')
.replace(/str\.|strasse\b/g, 'str')
.replace(/(\d+)\s*([a-z])\b/g, '$1$2')
.replace(/[.,]/g, ' ').replace(/\s+/g, ' ').trim();
const key = (strasse, plz) => `${plz.replace(/\s/g, '')}|${norm(strasse)}`;
| Eingabe | Schlüssel |
|---|---|
| Hauptstraße 12a, 01067 | 01067|hauptstr 12a |
| Hauptstr. 12 A, 01067 | 01067|hauptstr 12a |
| Hauptstrasse 12a, 01067 | 01067|hauptstr 12a |
| Hauptstraße 12, 01067 | 01067|hauptstr 12 |
| Kölner Straße 5, 50667 | 50667|koelner str 5 |
| Koelner Str. 5, 50667 | 50667|koelner str 5 |
Die ersten drei Zeilen fallen zusammen, die vierte bleibt getrennt, weil 12 und 12a verschiedene Eingänge sein können. Die beiden Kölner Varianten treffen sich ebenfalls. Die Adressen sind Beispiele für den Test.
Noch besser als eigene Regeln ist eine postalische Korrektur vor dem Abgleich, weil sie die amtliche Schreibweise zurückliefert. Wie das per Schnittstelle geht, steht im Ratgeber zur Adressprüfung per API.
Schritt 2: Nur innerhalb von Blöcken vergleichen
Jeden Datensatz mit jedem anderen zu vergleichen, skaliert nicht. Die Zahl der Paare wächst mit dem Quadrat der Datenmenge.
- Alle Paare: 100.000 × 99.999 ÷ 2
- 4.999.950.000
- Aufgeteilt in 1.000 PLZ-Blöcke à 100 Datensätze
- 1.000 Blöcke
- Paare je Block: 100 × 99 ÷ 2
- 4.950
- Paare mit Blockbildung
- 4.950.000
Gleich große Blöcke zur Veranschaulichung angenommen; echte PLZ-Gebiete sind unterschiedlich groß.
Die Blockbildung nach Postleitzahl spart in diesem Beispiel rund den Faktor tausend. Der Preis: Datensätze mit falscher Postleitzahl treffen ihre Dublette nie. Ein zweiter Durchlauf mit einem anderen Block, etwa Ort plus Straßenname, fängt einen Teil davon auf.
Schritt 3: Ähnlichkeit messen, aber mit Verstand
Innerhalb eines Blocks vergleichst du nach Ähnlichkeit. Die Levenshtein-Distanz zählt die Zeichenänderungen zwischen zwei Texten. Im Test lagen Wacholderweg und Wachholderweg eine Änderung auseinander, ein typischer Tippfehler. Meier und Maier ebenfalls eine, Schmidt und Schmitt auch.
Genau da liegt die Falle. Meier und Maier können dieselbe Person sein oder zwei Nachbarn. Und bei Hausnummern ist Ähnlichkeit wertlos: hauptstr 12 und hauptstr 21 liegen nur zwei Änderungen auseinander, sind aber verschiedene Häuser. Vergleiche Hausnummern deshalb exakt und nur Straßen- und Personennamen unscharf.
- VereinheitlichenSchreibweise, Umlaute, Abkürzungen, Hausnummernzusätze.
- Postalisch korrigierenOptional: Abgleich mit Postdaten für die amtliche Form.
- Blöcke bildenNach Postleitzahl, zweiter Durchlauf nach Ort und Straße.
- Paare bewertenHausnummer exakt, Namen und Straßen nach Ähnlichkeit.
- Grenzfälle prüfenUnsichere Paare an einen Menschen, nicht automatisch zusammenführen.
- ZusammenführenFeste Regeln, Historie behalten, alte Kundennummern verknüpfen.
Die falschen Treffer, die wirklich schaden
Zwei verschiedene Kunden zusammenzulegen ist schlimmer, als eine Dublette stehen zu lassen. Eine Dublette kostet einen zusätzlichen Katalog. Eine falsche Zusammenführung vermischt die Bestellhistorie und die personenbezogenen Daten zweier Menschen.
Typische Fallen in deutschen Beständen:
- Vater und Sohn mit gleichem Vor- und Nachnamen unter derselben Adresse
- Mehrfamilienhäuser, in denen der Adresszusatz fehlt; zwei Müllers im Vorder- und Hinterhaus sind zwei Kunden
- Bürogebäude und Coworking-Flächen mit Dutzenden Firmen unter einer Hausnummer
- Packstation-Adressen, bei denen viele Kunden dieselbe Station und Postleitzahl nutzen und sich nur durch die Postnummer unterscheiden
Die Regel, die ich jedem empfehle: Eine gleiche Adresse allein führt nie zur Zusammenführung. Es braucht ein zweites Signal, etwa dieselbe E-Mail-Adresse, dieselbe Telefonnummer oder eine sehr hohe Namensähnlichkeit. Wie der Adresszusatz sauber erfasst wird, damit Mehrfamilienhäuser nicht zur Falle werden, zeigt der Beitrag zum Adresszusatz.
Für kleine Listen reicht Excel
Nicht jeder Bestand braucht ein Programm. Bei ein paar tausend Zeilen kommst du mit einer Hilfsspalte weit. In der deutschen Excel-Version bildet diese Formel aus einer Straßenangabe in A2 eine vereinheitlichte Form:
=WECHSELN(WECHSELN(WECHSELN(KLEIN(GLÄTTEN(A2));"ß";"ss");"strasse";"str");"str.";"str")
Hänge die Postleitzahl als Text davor, sortiere nach der Hilfsspalte und markiere mit ZÄHLENWENN alle Werte, die mehr als einmal vorkommen. Excel findet so nur exakte Treffer auf der vereinheitlichten Spalte. Tippfehler wie Wacholderweg und Wachholderweg rutschen durch. Für eine erste Bestandsaufnahme genügt das trotzdem, und du siehst schnell, ob sich ein größeres Projekt lohnt.
Dubletten gar nicht erst entstehen lassen
Jede Bereinigung ist eine Reaktion auf Fehler, die früher passiert sind. Billiger ist es, neue Dubletten an der Quelle zu verhindern. Bei Gastbestellungen kannst du über die E-Mail-Adresse prüfen, ob der Kunde schon existiert, und die Bestellung dem vorhandenen Datensatz zuordnen. Am Telefon hilft eine Suchmaske, die vor dem Anlegen nach Name und Postleitzahl sucht. Für Importe aus Marktplätzen legst du feste Regeln fest, welche Felder auf welche Spalten abgebildet werden.
Prüf neue Adressen außerdem schon bei der Eingabe. Wie das geht, beschreibt der Ratgeber Adresse überprüfen.
Wer gewinnt beim Zusammenführen
Sind zwei Datensätze als Dublette bestätigt, legst du Feld für Feld fest, was übernommen wird. Übliche Regeln: Die zuletzt geprüfte Adresse schlägt die älteste. Eine postalisch korrigierte Adresse schlägt eine unkorrigierte. Die E-Mail mit bestätigter Einwilligung bleibt. Bestellungen werden zusammengelegt, nicht ersetzt. Die alten Kundennummern bleiben als Verweis erhalten, damit Rechnungen und Service-Tickets weiter auflösbar sind.
Umzüge machen das komplizierter. Steht ein Kunde einmal unter der alten und einmal unter der neuen Adresse, überschneiden sich Dublettensuche und Adressaktualisierung. Gleich deshalb zuerst gegen eine Umzugsdatenbank ab und suche danach Dubletten. Sonst führst du womöglich auf die veraltete Adresse zusammen.
Für einzelne Einträge zeigt unser Adressformat-Check, wie eine Anschrift nach Postregeln aussehen sollte. Einen CRM-Bestand mit Millionen Datensätzen aus mehreren Quellen zu bereinigen, ist dagegen ein Datenprojekt; Studios wie OnlineBuilders bauen solche Abgleichstrecken.
Fang klein an: Exportier deine Kundentabelle, bilde den Schlüssel in einer zusätzlichen Spalte und zähl, wie viele Schlüssel mehr als einmal vorkommen. Diese Zahl ist deine erste ehrliche Schätzung des Dublettenproblems.
Adressformat prüfen: Prüft Postleitzahl, Hausnummer und Zeilenfolge nach den Regeln des gewählten Landes und gibt die Anschrift so aus, wie die Post sie erwartet.
Häufige Fragen
Kann ich Adressdubletten in Excel finden?
Bei kleinen Listen ja. Bilde in einer Hilfsspalte eine vereinheitlichte Adresse mit KLEIN, GLÄTTEN und WECHSELN und nutze dann Duplikate entfernen oder ZÄHLENWENN auf diese Spalte. Excel findet damit nur exakte Treffer, Tippfehler bleiben unentdeckt.
Sind zwei Personen unter derselben Adresse eine Dublette?
Meist nicht. Gleiche Adresse mit verschiedenen Namen ist ein Haushalt. Für Kundendaten prüfst du auf Personenebene, für Werbebriefe, bei denen ein Exemplar pro Haushalt reicht, auf Haushaltsebene.
Was ist Fuzzy Matching?
Ein Vergleich nach Ähnlichkeit statt nach Gleichheit, etwa mit der Levenshtein-Distanz, die zählt, wie viele Zeichen man ändern muss, um einen Text in den anderen zu verwandeln. Meier und Maier liegen eine Änderung auseinander.
Darf ich Dubletten einfach löschen?
Besser nicht. Führ sie zusammen und behalte die alten Kundennummern als Verweis, damit Rechnungen, Tickets und Einwilligungen weiter zugeordnet werden können.