Adresssuche mit Fuzzy-Logik entwickelt mit Power Query
#1
Um der Frage zuvorzukommen, welche Frage ich denn habe, gleich die Anmerkung, dass ich hier eine Lösung präsentiere zu der ich keine Frage habe. Diese würde ich eigentlich lieber im Forum “Komplettlösungen“ einstellen. Aber da dort keiner Nachfragen stellen und ich auch keine Antworten geben kann, stelle ich den Beitrag hie ein. Die Antwort, das Nachfragen im Forum “Diskussionen zu den Beispielen“ eingestellt werden sollen, finde ich auch nicht sonderlich prickelnd, weil ja dann jeder, der eine Frage hat, u.U. einen eigenen Thread eröffnet und es somit später ziemlich unmöglich wird, alle Fragen und Antworten zu einer vorgestellten Lösung zu finden.

Aber ich werde in das moderierte Forum “Komplettlösungen“ einen Link auf diesen Beitrag einstellen, da dann so dieses Thema sehr leicht gefunden werden kann.
 
Nun aber zum eigentlichen Thema:

Vor einigen Jahren habe ich eine unscharfe (Fuzzy) Adresssuche mit Power Query entwickelt und damals auch im ms-office-forum veröffentlich. Da es das mof seit einiger Zeit nicht mehr gibt, ich aber die PQ-Codes, sowohl für die Datenverschlüsselung, als auch für die Suche, optimiert habe, stelle ich das verbesserte Ergebnis nun  hier ein.

Für beide Teile ist es mir gelungen, die Laufzeiten in etwa zu halbieren. Sodass die Aufbereitung von 25.000 Adressen auf meinem alten i7 nur noch rund 70 Sek. Benötigt und die Ergebnisse einer Suche meinst nach 0,5 Sek. vorliegen.

Gemäß einer Nutzung durch mehrere User habe ich folgendes Konzept realisiert.
Es gibt eine zentrale Adresstabelle, die kontinuierlich gepflegt wird.

In einer weiteren zentralen Tabelle sind alle Verschlüsselungsregeln und Synonyme abgelegt.

Die Mappe "cef - Fuzzy Search prepare addresses_v2 (PQ).xlsm" enthält die Abfragen, um die Tabellen zu lesen, die Adressen für die Suche aufzubereiten und in dieser die Ergebnisse der Verschlüsselung abzulegen. Makrocode wird nur für die Ablaufsteuerung verwendet. Im Tabellenblatt "Param" werden die Quellen zugeordnet. In einer Echtumgebung könnte eine Aktualisierung 2 bis 3 mal täglich stattfinden.

Mit der Mappe "cef - Fuzzy search_v2 (PQ).xlsb" wird die Suche durchgeführt. Hier ist der normale Ablauf der, dass beim Öffnen der Mappe die Adressen, sowie die für die Suche notwendigen, verschlüsselten, Daten importiert und beim Schließen der Mappe wieder gelöscht werden. Es ist zwar für Power Query überhaupt kein Problem, bei jeder Suchanfrage, die Daten aus einer Mappe zu importieren, aber das wirkt sich jedes Mal mit ca. 0,5 Sek. zusätzlicher Antwortzeit aus. Deshalb habe ich mich für die Variante entschieden, dass beim Öffnen die Daten importiert und diese vor dem Schließen wieder gelöscht werden.

Aktuell sind die Parameter aber so eingestellt, dass die Adressen und Suchdaten beim Öffnen nicht geladen und beim Schließen auch nicht gelöscht werden. Somit sollte die Mappe “cef – Fuzzy search_v2 (PQ)“, nachdem die Ausführung von Makros erlaubt wurde, direkt einsatzbereit sein.


Angehängte Dateien
.xlsb   cef - Fuzzy search_v2 (PQ).xlsb (Größe: 1,55 MB / Downloads: 9)
.xlsx   cef - Fuzzy search - Adressen.xlsx (Größe: 22,66 KB / Downloads: 9)
.xlsm   cef - Fuzzy search - prepare addresses_v2 (PQ).xlsm (Größe: 93 KB / Downloads: 8)
.xlsx   cef - Fuzzy search - Replacements.xlsx (Größe: 50,95 KB / Downloads: 8)
.docx   Fuzzy search - v2.docx (Größe: 174,53 KB / Downloads: 10)
[-] Folgende(r) 2 Nutzer sagen Danke an ws-53 für diesen Beitrag:
  • derHoepp, maninweb
Antworten Top


Gehe zu:


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