Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fuzzy matching - unscharfe Duplikate in einer Spalte
#1
Hallo zusammen,

DerHutmacher mein Name, meines Zeichens Excel Neuling und zukünftiger Dauergast.
Zu meinem Problem, ich habe eine Tabelle mit Firmendaten ca. 4000 Zeilen. Mit den Spalten "Bezeichnung/Firmenname" (MaxMustermann GmbH, MustermannMax AG)
"Anschrift" (Musterstraße 5, Musterweg 4). Ich gehe davon aus dass diese Tabelle ca. 15% Duplikate enthält (Tippfehler, Umlaute etc.). In einer Hilfsspalte habe ich die Spalte "Bezeichnung/Firmenname"
und "Anschrift" verkettet. Nun möchte ich in dieser Spalte Duplikate finden, also der gesamte Spalteninhalt soll verglichen werden und möglicherweise übereinstimmende Zeilen untereinander ausgegeben werden.
Mit der bedingten Formatierung komme ich hier nicht weiter. Ich suche quasi eine "fehlertolerante bedingte Formatierung" --> Quasi 70%+ Übereinstimmung --> Zeilenausgabe Tabelle 2.

Hoffentlich hab ich das verständlich erklärt. Wenn mir jemand einen Tipp, eine Lösung, einen Ansatz geben kann wäre mir schon sehr geholfen.

MfG DerHutmacher
Antworten Top
#2
(19.04.2017, 10:44)DerHutmacher schrieb: Quasi 70%+ Übereinstimmung
Hallo,
und nach welchem Algorithmus soll diese "unscharfe" Prüfung stattfinden? Was bedeutet 70%+ Übereinstimmung?
Gruß Jonas
[-] Folgende(r) 1 Nutzer sagt Danke an Jonas0806 für diesen Beitrag:
  • DerHutmacher
Antworten Top
#3
Hallo,

Microsoft bietet ein Tool für "Fuzzy-text-search" an (
https://www.microsoft.com/en-us/download...x?id=15011), dass ich aber nicht getestet habe.

Da normalerweise Tippfehler eher am Ende vorkommen, kann man auch nach "Left(cells(1,1), 10)" suchen und vergleichen.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • DerHutmacher
Antworten Top
#4
70% Übereinstimmung war jetzt eher ins blaue geschossen.
Hierfür wird nach meiner Recherche wohl ein String - Matching - Algorithmus, ala Levenshtein Distanz oder ein phonetischer Ansatz benötigt.
Ich kann dass jetzt nur sehr laienhaft in Worte fassen. In Zelle C16 steht Waschmaschinen Gmbh und in Zelle C24 Waschmaschinen AG hier werden
ja nur wenige Operationen benötigt um den einen Wert aus dem anderen zu bilden -> hohe Übereinstimmung.
Jetzt die Ausgabe beider Zeilen in TabelleXYZ.
Fuzzy Lookup habe ich bereits ausprobiert allerdings möchte ich nicht zwei Spalten miteinander vergleichen und nach Dubletten suchen sondern nur in einer Spalte untereinander
vergleichen.
Antworten Top
#5
Hi,

(19.04.2017, 11:19)DerHutmacher schrieb: Fuzzy Lookup habe ich bereits ausprobiert allerdings möchte ich nicht zwei Spalten miteinander vergleichen und nach Dubletten suchen sondern nur in einer Spalte untereinander vergleichen.

und wenn Du die eine Spalte duplizierst und dann mit der originalen vergleichst?
Dann würdest Du doch das markiert bekommen, was in Spalte 1 zu Spalte 2 fuzzy-ähnlich ist und umgekehrt.
[-] Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:
  • DerHutmacher
Antworten Top
#6
Hi,

ich hatte mal sowas vor Jahren in einem anderen Forum.

Vlt kannst du damit was anfangen..


VG
Steffen


Angehängte Dateien
.xlsm   Textvergleich.xlsm (Größe: 29,67 KB / Downloads: 15)
[-] Folgende(r) 1 Nutzer sagt Danke an CitizenX für diesen Beitrag:
  • DerHutmacher
Antworten Top
#7
Hallo

Hier noch ein paar Links von mir:
http://www.mrexcel.com/forum/excel-quest...ation.html
http://www.office-loesung.de/ftopic607479_0_0_asc.php

http://de.wikipedia.org/wiki/Soundex
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • DerHutmacher
Antworten Top
#8
Guten Morgen,

erst mal vielen Dank für die vielen Tipps. Werde mal ein wenig ausprobieren.
Es werden sich bestimmt neue Fragen ergeben.

MfG DerHutmacher
Antworten Top
#9
Guten Morgen alle zusammen,

bin die letzten Tage bei meiner Problematik "Fuzzy matches in one column" zu einem relativ zufriedenstellenden Ergebnis gekommen,
allerdings ohne Levensthein, Soundex oder Koelner Phonetik.
Kurz gesagt ich habe Leerzeichen, Satzzeichen, Sonderzeichen, Ziffern und Umlaute entfernt bzw. ersetzt und den String alphabetisch geordnet. Nach diesen Änderungen liefert die bedingte Formatierung ein zufriedenstellendes
Ergebnis und markiert über 90% der Dubletten.

Jetzt wollte ich das Ganze noch relativ elegant lösen und zwar sollen die Duplikate auch gleich in ein neues Sheet verschoben werden ohne in der ursprünglichen Tabelle gelöscht zu werden.

Code:
Option Explicit
-------------------------------------------------
Sub Duplikate_auslagern()

Dim Zeile As Integer, Bereich As Integer
Application.ScreenUpdating = False
With Worksheets.Add
.Name = "Duplikate"

End With

Sheets("Stammdaten").Activate
Bereich = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For Zeile = Bereich To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(Zeile, 1)) > 1 Then
Rows(Zeile).Copy _
Sheets("Duplikate").Cells(Sheets("Duplikate").Range("A65536").End(xlUp).Offset(1, 0).Row, 1)

End If

Next Zeile

End Sub

Soweit so gut. Allerdings übernimmt es mit bisher nur die Zeilen ohne Formatierung.
Fällt jemandem noch etwas ein wie man den Code ergänzen könnte um die ursprüngliche Formatierung (bzw. das ganze in der ursprünglichen Tabellenform, mit Überschriften etc.) zu übernehmen. Soll doch schön aussehen :69:

MfG DerHutmacher
Antworten Top
#10
Bitte, verwende code tags.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • DerHutmacher
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste