rekario
Goto Top

Tool zum Gegenprüfen 1.500 Datensätze vs 40.000 Datensätze

Schönen guten Abend Administrator-Gemeinde,

ich habe heute ein Excel-Sheet aus einer anderen Abteilung zugeschoben bekommen, in dem sich zwei Tabellen mit einmal rund 2.700 und etwa 40.000 Datensätzen befinden.
In besagtem Sheet wurden per SVERWEIS die 2.700 Daten 1:1 gegen die 40.000 geprüft und so konnten ca. 1.200 zugeordnet werden.

Etwa ~95-98% der restlichen 1.500 nicht zugeordneten Datensätze befinden sich in irgendeiner Form ebenfalls unter den 40.000 jedoch leider nicht identisch, mal ist irgendwo dazwischen ein Leerzeichen, mal ist der zu prüfende Datensatz nur ein Ausschnitt aus dem, der im Pool enthalten ist, mal ist am Ende ein Semikolon zu viel, usw..

Hier mal ein kleines Beispiel:
Zu prüfender Datensatz
* DEBT+GENODEF1NINSVWZ+69578
Datensatz aus dem "Pool"  
* DEBT+GENODEF1NIN SVWZ+69578

Wie unschwer zu erkennen ist in diesem Beispiel lediglich das Leerzeichen der Unterschied, dennoch stimmt der Datensatz zu 99% überein.
Diese 'geringen' Abweichungen sind also durchgehend in dem Dokument zu finden, jedoch leider immer in etwas anderer Konstellation.

Nun hat mir Dr. Google leider nicht wirklich weiterhelfen können, deshalb wende ich mich an euch!

Kennt jemand ein Tool / Script (gern auch gegen kleines Geld, sofern eine kostenfreie Testversion zur Verfügung steht - soweit ich mitbekommen habe steht besagte Abteilung des Öfteren vor diesem Problem) mit dem sich auch bei geringen Abweichungen automatisch eine Verknüpfung herstellen lässt, die man im Nachhinein lediglich manuell durchprüfen muss?
Technisch sollte das doch durchaus möglich sein und ich werde wohl nicht der Erste sein, der vor einem derartigen Problem steht?

Jede Adressprüfung in Onlineshops etc. macht im Endeffekt ja nichts anderes...
Lassen sich Tools wie Beyond Compare vielleicht in die Richtung drehen?

Ich bin für jeden Hinweis / Vorschlag dankbar, der mich morgen und die Abteilung in Zukunft davor bewahrt, diese 1.500 Datensätze manuell zuzuordnen..

Danke Vorab!

Beste Grüße,
Marvin

Content-ID: 393388

Url: https://administrator.de/contentid/393388

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

StefanKittel
StefanKittel 20.11.2018 um 19:00:33 Uhr
Goto Top
Hallo,

ein einfacher Ansatz wäre zu jedem Datensatz eine bereinigte Version zu erstellen und diese zu vergleichen.
Alle Leerzeichen und Sonderzeichen entfernen und alles als kleinschrift.

DEBT+GENODEF1NINSVWZ+69578 - > debtgenodef1ninsvwz69578 
DEBT+GENODEF1NIN SVWZ+69578 - > debtgenodef1ninsvwz69578 

= Identisch

Stefan
Rekario
Rekario 20.11.2018 um 19:23:09 Uhr
Goto Top
Hi Stefan,

danke für deine Antwort!

Die Idee kam mir auch schon, jedoch ist es mit Leerzeichen allein leider nicht getan, da der zu prüfende Datensatz manchmal auch nur ein Teil dessen im "Pool" ist.

Hier ein weiteres Beispiel:
Zu prüfend:
SVWZ+Referenznr. 41314944 AAAAAAA BBBBBB
Im Pool:
04.08.18;48.95;XXXXXX XXXXXX und XXXXX Ar;;SVWZ+Referenznr. 41314944 ;AAAAAAA BBBBBB;

Ich bitte das 'schwärzen' zu entschuldigen, leider sind es sensible Daten..

Wie in diesem Beispiel zu erkennen, beginnt die Übereinstimmung der Datensätze erst nach XXXXXX Ar;;, also ab dem SVWZ und das auch nicht vollständig, es sind außerdem noch weitere Semikolon enthalten.

Somit ist ein SVERWEIS auch mit bereinigten Daten nicht möglich.

Gruß,
Marvin
Kraemer
Kraemer 20.11.2018 um 19:42:02 Uhr
Goto Top
Ist das nicht immer wieder schön, wenn das erste Beispiel absolut gar nichts mit dem zweiten gemein hat?
Egal. Wie Stefan schon schrieb: normalisieren ist das Thema. Entferne ALLE nicht relevanten Zeichen und prüfe ob der Suchstring in zu überprüfenden String vorhanden ist.
Lochkartenstanzer
Lochkartenstanzer 20.11.2018 um 20:52:10 Uhr
Goto Top
Moin,

Du mußt eine normalisierte Version der Datensätze gegeneinander prüfen, z.B. leerzeichen und "irrelevante" Sonderzeichen entfernen und dann den Rest vergleichen. Sollte sich mut geringem Aufwand oer Skript machen lassen.

lks
em-pie
em-pie 20.11.2018 um 21:05:47 Uhr
Goto Top
Moin,

Nicht ganz trivial...
Habe auf die Schnelle bei Google nichts gefunden (außer ähnliche Probleme), aber via VBA musst du es „nur“ hinbekommen, eine Art prozentualen Vergleich durchzuführen: wenn z.B. 98% des Strings übereinstimmen, gilt er als „Treffer“.
Du müsstest hier mal explizit nach suchen. Am besten in Englisch, das erhöht die Erfolgschance.

Ansonsten: die Quelle bereits bereinigen (lassen), aber das haben meine Vorredner ja schon bekundet.

Gruß
em-pie
137846
137846 20.11.2018 aktualisiert um 21:18:11 Uhr
Goto Top
Das nennt sich Levenshtein Distanz

Wenn du hier nach dem Stichwort suchst findest du z.B. das hier
Werte vergleichen die nicht 100 Prozent gleich sind
ukulele-7
ukulele-7 22.11.2018 um 11:30:28 Uhr
Goto Top
Grundsätzlich ist der Vergleich nicht identischer Zeichenketten auf Ähnlichkeiten immer komplex bzw. mühsam. Mal abgesehen von der verwendeten Methode würde ich die Daten in eine SQL DB packen, das ist mit sicherheit schneller und bietet mehr Möglichkeiten Datensätze zu verknüpfen. Allerdings macht das vermutlich nur Sinn wenn du schon über SQL Kenntnisse verfügst.
colinardo
colinardo 22.11.2018 aktualisiert um 15:06:53 Uhr
Goto Top
Servus @Rekario ,
falls du es noch brauchst, hier für dich mal als Beispiel fix und fertig in Excel VBA da du ja sowieso schon damit hantierst:
find_near_matching_entries_393388.xlsm

Grüße Uwe