jipi06
XLDnaute Junior
Bonjour à toutes et tous
Je dispose de 2 bases : 1 où on trouve un référentiel de noms de chevaux (Base B : 1500 noms) et une base (Base A : 1800 lignes) où a été saisi le nom et d'autres données, sans recours à des listes de validation ...résultat : la liste saisie comporte beaucoup d'erreurs d'orthographe ...
Je dois donc travailler sur la recherche d'erreurs entre les 2 bases.
Le but étant de déterminer dans la liste A (liste de saisie) le nom le plus proche du nom inscrit au référentiel de la Base B.
J'ai essayé de faire une formule qui cherche le nom de référence en comparant à Gauche puis à Droite des noms saisis en testant de 3 à 7 caractères, mais le résultat n'est pas satisfaisant et lourd à gérer.
ex pour recherche Gauche pour 3 caractères :
SI(SOMMEPROD(--ESTNUM(CHERCHE(STXT(B2;LIGNE(INDIRECT("1:"&(NBCAR(B2)-1)));3);INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0)))))=0;"";
(SI(SOMMEPROD(--ESTNUM(CHERCHE(STXT(B2;LIGNE(INDIRECT("1:"&(NBCAR(B2)-1)));3);INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0)))))>0;
INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0))&"-";"")))
J'aurai préféré un code VBA mais je n'ai pas réussi..
Je mets un extrait du fichier et le résultat que j'attends.
Merci beaucoup de votre aide.
jipi06
Je dispose de 2 bases : 1 où on trouve un référentiel de noms de chevaux (Base B : 1500 noms) et une base (Base A : 1800 lignes) où a été saisi le nom et d'autres données, sans recours à des listes de validation ...résultat : la liste saisie comporte beaucoup d'erreurs d'orthographe ...
Je dois donc travailler sur la recherche d'erreurs entre les 2 bases.
Le but étant de déterminer dans la liste A (liste de saisie) le nom le plus proche du nom inscrit au référentiel de la Base B.
J'ai essayé de faire une formule qui cherche le nom de référence en comparant à Gauche puis à Droite des noms saisis en testant de 3 à 7 caractères, mais le résultat n'est pas satisfaisant et lourd à gérer.
ex pour recherche Gauche pour 3 caractères :
SI(SOMMEPROD(--ESTNUM(CHERCHE(STXT(B2;LIGNE(INDIRECT("1:"&(NBCAR(B2)-1)));3);INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0)))))=0;"";
(SI(SOMMEPROD(--ESTNUM(CHERCHE(STXT(B2;LIGNE(INDIRECT("1:"&(NBCAR(B2)-1)));3);INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0)))))>0;
INDEX(BAseTest;EQUIV("*"&GAUCHE(B2;3)&"*";BAseTest;0))&"-";"")))
J'aurai préféré un code VBA mais je n'ai pas réussi..
Je mets un extrait du fichier et le résultat que j'attends.
Merci beaucoup de votre aide.
jipi06