Fonction RECHERCHEV ... pour un début de réf.

Résolu/Fermé
Meggg - 23 sept. 2010 à 13:05
 Meggg - 23 sept. 2010 à 14:53
Bonjour,

J'ai un tableau à 2 onglets (dans le 1er la tableau sur lequel je travaille, et dans le second le tableau de référence). Je voudrais qu'excel recherche par exemple la référence qui se trouve dans la case A1, dans le tableau qui j'ai mis dans le second onglet.

Jusque là je m'en sors, mon problème c'est que des fois, la référence qui se trouve dans la case A1 est suivie d'un espace, voir plus. Il s'agit d'une erreur que je ne peux pas corriger, et dans ces cas là, excel ne retrouve pas la référence exacte dans mon tableau de référence qui se trouve dans le deuxième onglet.

J'ai essayé de mettre un * après chaque référence du tableau de références mais ça ne change rien.

Voici ma formule

=SI(ESTNA(RECHERCHEV(Feuil1!B12;Feuil2!$A$1:Feuil2!$C$505;2;FAUX));"SMALL";RECHERCHEV(Feuil1!B12;Feuil2!$A$1:Feuil2!$C$505;2;FAUX))

Que puis je faire pour que la référence avec ou sans espace à la fin soit prise en compte ?

Merci d'avance pour votre aide.

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
23 sept. 2010 à 13:20
Bonjour
vous ne pouvez pas supprimer l'espace pour des questions de codage,, où vous ne savez pas?
1° vous pouvez ne chercher qu'une partie de la référence en plaçant cette partie dans une cellule, mettons X1 pour l'exemple:
la valeur à chercher s'écrit alors:
"*"&X1&"*" pour identifier la cellule comportant ce texte n'importe où
X1&"*" pour le texte au début
"*"&X1 pour le texte à la fin.
Si ça ne convient pas, vous pouvez:copier vos références en ligne dans une colonne hors champ
supprimer l'espace par la fonction remplacer
utiliser cette colonne pour la recherche avec la fonction:
=INDEX(CHAMP COMPLET;EQUIV(Ref à trouver;COLONNE REF TRANSFORMÉES;0);N° de colonne du champ à éditer)
soit pour un champ A2 D1000 avec une colonne transformée en X2:X1000 et une référence entrée en R1:
=INDEX($A$2:$A$1000,EQUIV(R1;$X$2:$X$1000;0);2)
vous ressortira la valeur correspondantes dans la deuxième colonne du champ, soit ici la colonne B
les champs dans EQUIV et INDEX doivent avoir les mêmes références limites de ligne, (c'est plus simple)
Ainsi vous conservez intacte votre colonne de référence.

crdlmnt

1
sushicat Messages postés 154 Date d'inscription jeudi 3 janvier 2002 Statut Membre Dernière intervention 30 septembre 2010 24
23 sept. 2010 à 13:11
Il faudrait veiller à nettoyer la chaîne de caractères en amont pour virer les espaces en fin de chaîne. Si c'est de l'import automatisé par exemple, une moulinette devrait faire ça facilement.

Sinon, tu peux commencer à gérer ce genre de cas particuliers directement dans Excel, mais à chaque nouveau cas tu devras modifier la formule...

Tu peux utiliser SUPPRESPACE() par exemple.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
23 sept. 2010 à 13:24
bonjour,

essaies avec:
RECHERCHEV(Feuil1!B12&"*";....

tu dis...
0
Bonjour,

Merci à tous pour votre aide. Pour répondre à Vaucluse, c'est un problème plus humain qu'informatique. Je ne peux pas supprimer les espaces car les personnes qui remplissent gentillement ce tableau ne vont pas aprécier que je leur demande d'éviter les espaces... en gros.


J'ai essayé la formule ...&"*", et c'est super ça marche.

Merci beaucoup.
0