J'essaie actuellement de réconcilier les champs «Nom» de deux sources de données distinctes. J'ai un certain nombre de noms qui ne correspondent pas exactement mais qui sont suffisamment proches pour être considérés comme identiques (exemples ci-dessous). Avez-vous des idées pour améliorer le nombre de correspondances automatiques? J'élimine déjà les initiales du milieu des critères de correspondance.
Formule de match actuelle:
=IFERROR(IF(LEFT(SYSTEM A,IF(ISERROR(SEARCH(" ",SYSTEM A)),LEN(SYSTEM A),SEARCH(" ",SYSTEM A)-1))=LEFT(SYSTEM B,IF(ISERROR(SEARCH(" ",SYSTEM B)),LEN(SYSTEM B),SEARCH(" ",SYSTEM B)-1)),"",IF(LEFT(SYSTEM A,FIND(",",SYSTEM A))=LEFT(SYSTEM B,FIND(",",SYSTEM B)),"Last Name Match","RESEARCH")),"RESEARCH")
la source
Je chercherais à utiliser cette liste (section anglaise uniquement) pour aider à éliminer les raccourcis courants.
De plus, vous voudrez peut-être envisager d'utiliser une fonction qui vous dira, en termes exacts, comment "fermer" deux chaînes sont. Le code suivant est venu d' ici et merci à smirkingman .
Ce que cela va faire est de vous dire combien d'insertions et de suppressions doivent être effectuées sur une chaîne pour accéder à l'autre. J'essaierais de garder ce nombre bas (et les noms de famille devraient être exacts).
la source
J'ai une (longue) formule que vous pouvez utiliser. Ce n'est pas aussi bien affiné que ceux ci-dessus - et ne fonctionne que pour le nom de famille plutôt que pour un nom complet - mais vous pourriez le trouver utile.
Donc, si vous avez une ligne d'en-tête et que vous souhaitez comparer
A2
avecB2
, placez-la dans n'importe quelle autre cellule de cette ligne (par exemple,C2
) et copiez jusqu'à la fin.Cela reviendra:
Après cela, il vous donnera un degré de 0 ° à 6 ° en fonction du nombre de points de comparaison entre les deux. (c.-à-d. 6 ° se compare mieux).
Comme je le dis un peu rude et prêt, mais j'espère que cela vous amènera à peu près au bon terrain de jeu.
la source
Cherchait quelque chose de similaire. J'ai trouvé le code ci-dessous. J'espère que cela aide le prochain utilisateur qui vient à cette question
Je dirais que c'est assez proche de ce que tu voulais :)
la source
Vous pouvez utiliser la fonction de similarité (pwrSIMILARITY) pour comparer les chaînes et obtenir une correspondance en pourcentage des deux. Vous pouvez le rendre sensible à la casse ou non. Vous devrez décider quel pourcentage d'une correspondance est "assez proche" de vos besoins.
Il y a une page de référence à http://officepowerups.com/help-support/excel-function-reference/excel-text-analyzer/pwrsimilarity/ .
Mais cela fonctionne assez bien pour comparer le texte de la colonne A à la colonne B.
la source
Bien que ma solution ne permette pas d'identifier des chaînes très différentes, elle est utile pour une correspondance partielle (correspondance de sous-chaîne), par exemple "ceci est une chaîne" et "une chaîne" résultera en "correspondance":
ajoutez simplement "*" avant et après la chaîne à rechercher dans le tableau.
Formule habituelle:
devient
"&" est la "version courte" pour concaténer ()
la source
Cette colonne d'analyse de code a et la colonne b, si elle trouve une similitude dans les deux colonnes, elle s'affiche en jaune. Vous pouvez utiliser un filtre de couleur pour obtenir la valeur finale. Je n'ai pas ajouté cette partie dans le code.
la source