Fonction SORTWORDS( )

Renvoie une chaîne contenant des mots individuels triés dans un ordre séquentiel.

Syntaxe

SORTWORDS(chaîne)

Paramètres

Nom Type Description
chaîne caractère

La chaîne, ou l'expression, contenant les mots à trier.

Un « mot » est tout caractère ou groupe de caractères séparés par des espaces :

  • un mot ou un nom réel
  • un numéro qui utilise le type de données caractères
  • des groupes de lettres, de chiffres ou de caractères spéciaux tels que des abréviations ou des préfixes d'identification

Les espaces multiples entre les mots sont automatiquement converties en une seule espace. Les espaces de tête ou de fin sont automatiquement tronquées.

Sortie

Caractère.

Exemples

Exemples de base

Valeur d'entrée littérale de type caractère

Renvoie "1 2 A Z a z" (Analytics non Unicode) :

SORTWORDS("Z a 2 z A 1")

Renvoie "1 2 a A z Z" (Analytics Unicode) :

SORTWORDS("Z a 2 z A 1")

Renvoie "1 2 A A Z Z" :

SORTWORDS(UPPER("Z a 2 z A 1"))

Renvoie "CA; FL NY; TX;" :

SORTWORDS("CA; TX; NY; FL")

Renvoie "CA FL NY TX" :

SORTWORDS(OMIT("CA; TX; NY; FL"; ";"))

Entrée de champ

Renvoie toutes les valeurs du champ Adresse_Fournisseur avec les éléments d'adresse triés dans l'ordre séquentiel :

SORTWORDS(Adresse_Fournisseur)

Exemples avancés

Trier les éléments d'adresse pour améliorer la correspondance des doublons approximatifs

Vous pouvez utiliser SORTWORDS( ) comme fonction d'aide lorsque vous effectuez divers types de correspondance approximative dans Analytics.

Effet de la fonction SORTWORDS( ) sur la distance de Levenshtein

Examinons d'abord la distance Levenshtein entre deux occurrences de la même adresse, présentant un format différent.

Sans la fonction SORTWORDS( ), la distance de Levenshtein renvoyée est 22. Une distance Levenshtein aussi élevée indique que les deux chaînes ne sont pas la même adresse :

LEVDIST("125 SW 39TH ST; Suite 100"; "Suite 100; 125 SW 39TH ST")

Maintenant, ajoutons la fonction SORTWORDS( ). La distance renvoyée par Levenshtein est 2 - nettement inférieure - ce qui indique que les deux chaînes de caractères sont la même adresse.

LEVDIST(SORTWORDS("125 SW 39TH ST; Suite 100"); SORTWORDS("Suite 100; 125 SW 39TH ST"))

Isoler les doublons approximatifs de "125 SW 39TH ST, Suite 100"

Vous créez un filtre qui isole toutes les valeurs dans le champ Adresse_fournisseur qui se trouve dans une distance Levenshtein spécifiée de "125 SW 39TH ST, Suite 100" :

SET FILTER TO LEVDIST(SORTWORDS(Adresse_Fournisseur); SORTWORDS("125 SW 39TH ST; Suite 100"); F) < 3
SET FILTER TO ISFUZZYDUP(SORTWORDS(Adresse_Fournisseur); SORTWORDS("125 SW 39TH ST; Suite 100"); 3; 99)

Augmenter ou diminuer la distance Levenshtein dans les expressions ( 3 ) permet d'ajuster le niveau de différence des valeurs filtrées.

Pour plus d'informations sur la distance Levenshtein, consultez la section Fonction LEVDIST( ).

Remarques

Vidéo aperçu

Pour une vidéo de présentation de la fonction, consultez Correspondance approximative avec SORTWORDS() (en anglais uniquement).

La séquence de tri utilisée par la fonction SORTWORDS( )

La fonction SORTWORDS( ) utilise toute séquence de tri spécifiée dans l'option Ordre de tri (Outils > Options > Table). Les séquences de tri par défaut sont présentées ci-dessous.

Pour des informations détaillées, consultez la section L'option Ordre de tri et les séquences de tri.

Édition Analytics

Ordre de tri par défaut

Séquence de tri associée

Non Unicode

Système par défaut

(ASCII)

Nombres, puis majuscules, puis minuscules :

0, 1, 2... A, B, C... a, b, c...

Exemple : « Z » est trié avant « a ».

Unicode

Mélanger les langages (UCA)

(algorithme de classement Unicode)

Nombres, puis minuscules et majuscules mélangées les unes avec les autres :

0, 1, 2... a, A, b, B, c, C...

Exemple : « a » est trié avant « Z ».

Respect de la casse

La fonction SORTWORDS( ) respecte la casse. Selon l'édition d'Analytics que vous utilisez (non Unicode ou Unicode), la casse des chaînes de caractères peut affecter le tri.

Vous pouvez utiliser la fonction UPPER( ) conjointement avec la fonction SORTWORDS( ) si vous ne voulez pas que la casse affecte le tri :

SORTWORDS(UPPER("chaîne_de_caractères"))

La fonction SORTWORDS( ) peut améliorer les correspondances approximatives

La fonction SORTWORDS( ) peut améliorer l'efficacité des commandes de mise en correspondance approximative et des filtres ou conditions qui utilisent des fonctions de correspondance approximative :

Attention

Si vous utilisez SORTWORDS( ) conjointement avec l'une des commandes ou fonctions de correspondance approximative, vous devez appliquer SORTWORDS( ) aux deux chaînes de caractères ou aux deux champs comparés. L'application de la fonction à une seule des deux chaînes ou champs peut sérieusement dégrader les résultats de la correspondance approximative.

Algorithme de distance Levenshtein

La fonction SORTWORDS( ) est particulièrement utile lorsqu'elle est utilisée avec des commandes et des fonctions basées sur l'algorithme de distance de Levenshtein, qui renvoie des valeurs de différence plus importantes lorsque des éléments identiques ou similaires dans deux chaînes de caractères sont dans des positions différentes. En triant d'abord les éléments, vous pouvez réduire considérablement les valeurs de différence renvoyées par l'algorithme de Levenshtein. Les ensembles de résultats comportent moins de faux positifs et plus de vrais positifs.

Algorithme du coefficient de Dice

La fonction SORTWORDS( ) peut être utile lorsqu'elle est utilisée avec des commandes et des fonctions basées sur l'algorithme du coefficient de Dice. Cependant, il n'en résulte pas toujours une amélioration de l'efficacité. De par sa conception, l'algorithme du coefficient de Dice minimise l'importance de la position des éléments, de sorte que le tri des éléments a moins d'impact qu'avec l'algorithme de distance de Levenshtein.

Selon la nature des données, SORTWORDS( ) peut en fait dégrader l'efficacité en faisant en sorte que l'algorithme du coefficient de Dice renvoie des scores plus faibles. Tester un jeu de données d'échantillon avant de décider d'utiliser SORTWORDS( ) conjointement avec l'algorithme du coefficient de Dice dans un cadre de production.

Un deuxième élément à prendre en compte est que l'intérêt de l'utilisation de SORTWORDS( ) est plus modeste lorsque la longueur en n-grammes du coefficient de Dice est plus courte. À mesure que l'on réduit la longueur en n-grammes, l'algorithme du coefficient de Dice minimise de plus en plus l'importance de la position des éléments.