ISFUZZYDUP( )-Funktion
Gibt einen logischen Wert zurück, der angibt, ob eine Zeichenfolge ein Fuzzy-Duplikat von einer Vergleichszeichenfolge ist.
Syntax
ISFUZZYDUP(Zeichenfolge1; Zeichenfolge2; levdist <;diffpct>)
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
| Zeichenfolge1 | Zeichen | Die erste Zeichenfolge des Vergleichs. |
| Zeichenfolge2 | Zeichen | Die zweite Zeichenfolge des Vergleichs. |
| levdist | numerisch |
Die maximal zulässige Levenshtein-Distanz zwischen zwei Zeichenfolgen, die als Fuzzy-Duplikate identifiziert werden sollen. Der levdist-Wert darf nicht kleiner als 1 oder größer als 10 sein. Bei einer Steigerung des Werts levdist erhöht sich die Anzahl an Ergebnissen, da Werte mit einem stärkeren Fuzzy-Grad, also einer größeren Abweichung voneinander, einbezogen werden. |
| diffpct
Optional |
numerisch |
Der obere Grenzbetrag für 'Differenzprozentsatz'. Der Differenzprozentsatz ist in Funktionsweise erläutert. Der diffpct-Wert darf nicht kleiner als 1 oder größer als 99 sein. Bei einer Steigerung des Werts diffpct erhöht sich die Anzahl an Ergebnissen, da Werte mit einem größeren Abweichungsanteil im Verhältnis zu ihrer Länge einbezogen werden. Bei einer fehlenden Angabe wird der Differenzprozentsatz beim Verarbeiten der ISFUZZYDUP( )-Funktion nicht berücksichtigt.
|
Ausgabe
Logisch. Gibt T (wahr) zurück, wenn die Werte von Zeichenfolge Fuzzy-Duplikate sind, und andernfalls F (falsch).
Beispiele
Einfache Beispiele
Gibt „F“ zurück, weil zwei Bearbeitungen erforderlich sind, um „Smith“ in „Smythe“ umzuwandeln, der Wert levdist jedoch nur 1 beträgt:
ISFUZZYDUP("Smith";"Smythe"; 1; 99)
Gibt „T“ zurück, weil zwei Bearbeitungen erforderlich sind, um „Smith“ in „Smythe“ umzuwandeln, und der Wert in levdist „2“ beträgt:
ISFUZZYDUP("Smith";"Smythe"; 2; 99)
Gibt „T“ zurück, weil keine Bearbeitungen erforderlich sind, um „SMITH“ in „smith“ umzuwandeln, und der Wert in levdist „1“ beträgt (die Funktion ISFUZZYDUP( ) unterscheidet nicht zwischen Groß- und Kleinschreibung):
ISFUZZYDUP("SMITH";"smith"; 1; 99)
Gibt einen logischen Wert (T oder F) zurück, der angibt, ob einzelne Werte im Feld Nachname Fuzzy-Duplikate für die Zeichenfolge „Smith“ sind:
ISFUZZYDUP(Nachname;"Smith"; 3; 99)
Weiterführende Beispiele
Mit dem Differenzprozentsatz arbeiten
Der Differenzprozentsatz ermöglicht Ihnen, die Anzahl der Falschmeldungen von ISFUZZYDUP( ) zu verringern.
Kein diffpct festgelegt
Gibt „T“ zurück, weil fünf Bearbeitungen erforderlich sind, um „abc“ in „Smith“ umzuwandeln, und der Wert von levdist „5“ beträgt:
ISFUZZYDUP("abc"; "Smith"; 5)
diffpct festgelegt
Gibt „F“ zurück, obwohl sich „abc“ innerhalb der festgelegten Levenshtein-Distanz von „Smith“ befindet, weil 5 Bearbeitungen und eine Zeichenfolgenlänge von 3 zu einem Differenzprozentsatz von 167% führen. Dies übersteigt den angegebenen Wert in diffpct von 99%:
ISFUZZYDUP("abc"; "Smith"; 5; 99)
Der Differenzprozentsatz ist ausführlich in Funktionsweise erläutert.
Fuzzy-Duplikate für „Smith“ isolieren
Erstellen Sie einen Filter, der alle Werte im Feld Nachname isoliert, die Fuzzy-Duplikate für „Smith“ sind:
SET FILTER TO ISFUZZYDUP(Nachname; "Smith"; 3; 99)
Durch eine Änderung der Werte levdist oder diffpct können Sie den Grad der Differenz in den gefilterten Werten angeben.
Fuzzy-Duplikate für einen Lieferantennamen isolieren
Erstellen Sie einen Filter, der alle Werte im Feld Lieferantenname isoliert, die Fuzzy-Duplikate für „"Pacific Lighting and Electrical Supply, Inc.“ sind:
SET FILTER TO ISFUZZYDUP(Lieferantenname; "Pacific Lighting and Electrical Supply, Inc."; 2; 99)
Verbessern Sie die Wirksamkeit des Filters, indem Sie zusätzliche Funktionen zusammen mit ISFUZZYDUP( ) verwenden.
ISFUZZYDUP( ) gibt zusammen mit OMIT( ) folgende Einträge zurück:
- Pacific Lighting and Electrical Supply, Inc.
- Pacific Lighting and Electrical Supply
- Pacific Lighting & Electrical Supply, Inc.
SET FILTER TO ISFUZZYDUP(OMIT(Lieferantenname; ".,&,and,Inc,Ltd,"); "Pacific Lighting Electrical Supply"; 2; 99)
ISFUZZYDUP( ) gibt zusammen mit SORTWORDS( ) und UPPER( ) folgende Einträge zurück:
- Pacific Lighting and Electrical Supply, Inc.
-
Pacific Electrical and Lighting Supply, Inc.
SET FILTER TO ISFUZZYDUP(SORTWORDS(UPPER(Lieferantenname)); SORTWORDS(UPPER("Pacific Lighting and Electrical Supply, Inc.")); 2; 99)
ISFUZZYDUP( ) gibt zusammen mit SORTWORDS( ), UPPER( ) und OMIT( ) folgende Einträge zurück:
- Pacific Lighting and Electrical Supply, Inc.
- Pacific Lighting and Electrical Supply
- Pacific Lighting & Electrical Supply, Inc.
- Pacific Electrical and Lighting Supply, Inc.
SET FILTER TO ISFUZZYDUP(SORTWORDS(UPPER(OMIT(Lieferantenname; ".,&,and,Inc,Ltd,"))); SORTWORDS(UPPER("Pacific Lighting Electrical Supply")); 2; 99)
Bemerkungen
Wann Sie ISFUZZYDUP( ) verwenden sollen
Verwenden Sie die ISFUZZYDUP( )-Funktion, um nahezu identische Werte (Fuzzy-Duplikate) zu suchen oder eine uneinheitliche Buchstabierung in manuell eingegebenen Daten zu lokalisieren.
Funktionsweise
Die ISFUZZYDUP( )-Funktion berechnet die Levenshtein-Distanz zwischen zwei Zeichenfolgen sowie den Differenzprozentsatz.
ISFUZZYDUP( ) wird als „T“ (wahr) ausgewertet, falls:
- die Levenshtein-Distanz kleiner oder gleich dem levdist-Wert ist.
- der Differenzprozentsatz kleiner oder gleich dem diffpct-Wert ist (falls angegeben).
Levenshtein-Distanz
Die Levenshtein-Distanz ist ein Wert, der die Mindestzahl von Bearbeitungen einzelner Zeichen darstellt, die erforderlich sind, um eine Zeichenfolge an eine andere anzugleichen.
Weitere Informationen finden Sie unter LEVDIST( )-Funktion.
Differenzprozentsatz
Der Differenzprozentsatz ist der Prozentsatz des Unterschieds für die kürzere der beiden ausgewerteten Zeichenfolgen.
Der Differenzprozentsatz ist das Ergebnis der folgenden internen Analytics-Berechnung, welche die Levenshtein-Distanz zwischen den beiden Zeichenfolgen verwendet:
Levenshtein-Distanz/Anzahl der Zeichen in der kürzeren Zeichenfolge × 100 = Differenzprozentsatz
Die Verwendung des Differenzprozentsatzes ermöglicht Ihnen, die Anzahl der Falschmeldungen von ISFUZZYDUP( ) zu verringern.
- Der obere Grenzbetrag für diffpct ist 99%. Dies verhindert das vollständige Ersetzen einer Zeichenfolge bei der Angleichung.
- Zeichenfolgen, bei denen viele Bearbeitungen im Verhältnis zu ihrer Länge notwendig sind, werden ausgeschlossen.
Verwendungstipps
- Unterscheidung von Groß- und Kleinschreibung Die Funktion berücksichtigt die Groß- und Kleinschreibung nicht, sodass beispielsweise „SMITH“ und „smith“ gleichwertig sind.
- Nachgestellte Leerzeichen Außerdem schneidet die Funktion nachgestellte Leerzeichen in Feldern ab, sodass die TRIM( )-Funktion nicht verwendet werden muss, wenn ein Feld als Parameter angegeben wird.
- Elemente sortieren Die Funktion SORTWORDS( ) kann die Wirksamkeit der FUZZYDUP-Funktion verbessern, indem sie einzelne Elemente in Feldwerten sequenziell sortiert.
Durch das Sortieren von Elementen, zum Beispiel Komponenten einer Adresse, ist es möglich, dass sich zwei Zeichenfolgen mit denselben Informationen, die ein unterschiedliches Format aufweisen, stärker angleichen. Eine stärkere Angleichung steigert die Wahrscheinlichkeit, dass Zeichenfolgen als Fuzzy-Duplikate ausgewählt werden.
- Generische Elemente entfernen Die OMIT( )- und EXCLUDE( )-Funktionen können die Effektivität der ISFUZZYDUP( )-Funktion verbessern, indem generische Elemente wie „GmbH“ oder „AG“ bzw. Zeichen wie Kommas, Punkte und das Kaufmannsund (&) aus den Feldwerten entfernt werden.
Durch das Entfernen generischer Elemente und Satzzeichen konzentriert sich der Zeichenfolgenvergleich mit ISFUZZYDUP( ) nur auf den Teil der Zeichenfolge, in dem aussagekräftige Unterschiede auftreten.
Unterschiede des Befehls FUZZYDUP und der Funktion ISFUZZYDUP( )
Der FUZZYDUP-Befehl identifiziert alle Fuzzy-Duplikate in einem Feld, organisiert diese in nicht erschöpfende Gruppen und gibt Ausgabeergebnisse aus, die insgesamt vollständig sind.
Die Funktion ISFUZZYDUP( ) erstellt eine einzige vollständige Liste aus Fuzzy-Duplikaten für einen spezifischen Zeichenwert.
Der Befehl und auch die Funktion identifizieren exakte Duplikate. Im Gegensatz zum Befehl können bei Verwendung der Funktion exakte Duplikate nicht ausgeschlossen werden.
Was „vollständig“ bedeutet
Mit "vollständig" sind alle Werte gemeint, die den angegebenen Differenzgrad des zurückgegebenen Testwerts aufweisen, unabhängig von ihrer Position im Testfeld in Relation zum Testwert.
Die Funktion ISFUZZYDUP( ) ist hilfreich, wenn die durch den Befehl FUZZYDUP erstellten unvollständigen Gruppen für den Zweck Ihrer Analyse nicht gut geeignet sind und Sie jedes Fuzzy-Duplikat direkt auf einen bestimmten Zeichenwert prüfen müssen.
Verwandte Funktionen
- LEVDIST( ) bietet eine alternative Methode zum Vergleichen von Zeichenfolgen anhand der Levenshtein-Distanz.
Im Gegensatz zu ISFUZZYDUP( ) beachtet LEVDIST( ) standardmäßig die Groß- und Kleinschreibung.
- DICECOEFFICIENT( ) ignoriert beim Vergleich von Zeichenfolgen die relative Position von Zeichen oder Zeichenblöcken völlig oder berücksichtigt sie weniger stark.
- SOUNDSLIKE( ) und SOUNDEX( ) vergleichen Zeichenfolgen anhand eines phonetischen (Klang) anstatt eines orthografischen Vergleichs (Buchstabierung).