Comparaison chaines de caractères

Bonjour,

Je possède deux listes de chaines de caractères :

  • Une liste A avec tous les noms de clients
  • Une liste B avec tous les clients ayant souscrit à un abonnement X

Dans la liste A avec tous les clients il y a forcément ceux de la liste B qui ont souscrit à un abonnement, cependant comme les deux listes sont sur deux fichiers différents et avec des méthodes de saisie différentes je me retrouve à faire le tri à la main..

J'ai déjà pu faire une vérification avec la chaîne de caractère exacte: en gros A1 = B1. Sauf que s'il y a même un espace en trop ou un accent au mauvais endroit, cela ne fonctionne pas!

J'ai eu l'idée d'une macro qui pourrait parcourir la liste B à partir d'un élément de la liste A et renvoie la chaîne de caractère la plus similaire avec un taux de ressemblance. En gros une fonction CHERCHE() mais "intelligente".

Par exemple "Maria Lucia", il me trouverait "Marie Lucie" avec un taux de 80%.

Généralement les différences de saisies observées sont les accents, parfois "Yu Wen 101" apparait comme "Yu Wen No101". C'est pour ça qu'un taux de ressemblance m'aiderait grandement.

Ça me permettrait de rapidement identifier ceux qui se ressemblent et de valider à la main que ce sont bien les mêmes clients.

J'ai cherché sur Google mais bizarrement Excel-Pratique ne semble plus être indexé (du moins pas sur les premières pages)?

Si vous avez une idée je suis preneur,

Merci d'avance,

RaSk

Bonjour,

Si j'avais à faire ce travail je mettrai un identifiant unique à chaque client (clé primaire). Par exemple un n° de client qu'il serait alors très facile de comparer à l'autre liste. Car je suppose que les clients abonnés sont inscrit après leur inscriptions dans le fichier Clients.

A vous de voir.

Bonjour,

Je crois qu'il y a lieu de mettre en place un dispositif faisant en sorte que tout ajout à la liste B soit dépendant de la liste A, que l'on ne puisse entrer dans B que des noms déjà présents en A.

Quand une organisation est mauvaise et provoque des nuisances, la modifier devient une priorité.

Ensuite on peut "bricoler" pour rattraper les dommages. Il convient d'abord d'extraire une liste des B ne se retrouvant pas (identiquement) dans A. Et pour chaque B de défiler la liste A... Toute recherche automatique devra en tout état de cause se conclure par un tel rapprochement et une validation manuelle de correction. Autant commencer par là ! Et on gagnera du temps au final.

La seule procédure méritant d'être définie, à mon avis, est une procédure d'appel, nom par nom de la liste B, et de validation du choix de nom correspondant en A lorsqu'on le trouve.

[Au passage, nous sommes dans du texte, dans la typographie, et cette espace dont il est question dans ce domaine n'a rien à voir avec la physique ou l'astrophysique, et est définitivement féminin.]

Cordialement

Ferrand

Merci pour vos remarques mais il faut que je vous informe de quelques points :

La liste A avec tous les clients est en fait une étude de marché avec la liste de tous les clients potentiels, provenant de différentes sources avec différentes méthodes de saisies. J'ai déjà fait de mon mieux pour que cette liste soit à peu près homogène lors de la synthèse des différentes sources.

La liste B est notre liste de clients existants qui malheureusement a été remplie au fur et à mesures des années par différentes personnes et de différentes manières.

J'ai donc déjà fait un travail sur la liste A, notamment effacer les doublons provenant de différentes sources.

La liste B provient d'un extrait ERP, je compte bien faire les modifications et instaurer une méthode de saisie pour qu'à l'avenir ça n'arrive plus mais en attendant...

Je ne suis qu'un petit stagiaire qui fait de son mieux pour traiter une liste de plus de 5000 clients à partir d'une BDD anarchique..

Bref, revenons à une solution temporaire pour mon problème :

J'ai trouvé pas mal d'algorithmes pour donner un indice de similarité à deux chaines de caractères comme celui Damerau-Levenshtein, cependant il me faudrait faire l'adapter pour qu'il parcourt l'ensemble de la liste B ! Any idea?

EDIT: Merci pour "une espace", je ne connaissais pas!

La liste de clients étant la B, c'est donc celle-ci qu'il faut normaliser et stabiliser. C'est donc lors de la constitution de listes pour études de marché qu'il convient de s'assurer si un prospect n'est pas déjà un client... Ce qui inverse ma proposition initiale.

Ceci dit, une étude de marché étant par définition éphémère, l'importance de l'affaire devient secondaire, et une approximation s'avère dès lors une opération raisonnable. Dans ces conditions, une comparaison après élimination des espaces, de tout caractère accentuable, en convertissant en majuscules (ou minuscules) donne un premier passage suffisant. Un second pouvant être envisagé sur une comparaison partielle portant sur le début par exemple...

Assortir préalablement chaque nom de chaque liste d'une clé d'identification. La comparaison devant renvoyer les clés qui ont été rapprochées pour validation.

Cordialement

Rechercher des sujets similaires à "comparaison chaines caracteres"