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-Key: 393388

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

Printed on: April 24, 2024 at 16:04 o'clock

Member: StefanKittel
StefanKittel Nov 20, 2018 at 18:00:33 (UTC)
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
Member: Rekario
Rekario Nov 20, 2018 at 18:23:09 (UTC)
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
Member: Kraemer
Kraemer Nov 20, 2018 at 18:42:02 (UTC)
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.
Member: Lochkartenstanzer
Lochkartenstanzer Nov 20, 2018 at 19:52:10 (UTC)
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
Member: em-pie
em-pie Nov 20, 2018 at 20:05:47 (UTC)
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
Mitglied: 137846
137846 Nov 20, 2018 updated at 20:18:11 (UTC)
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
Member: ukulele-7
ukulele-7 Nov 22, 2018 at 10:30:28 (UTC)
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.
Member: colinardo
colinardo Nov 22, 2018 updated at 14:06:53 (UTC)
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