Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Recherche dans une chaine de caractère

sanae_J

XLDnaute Nouveau
Bonjour cher communauté, Je souhaite avoir le numéro correspondant au code dans la feuille 1(données utilisées feuille 2) ,sachant que je peux avoir plus qu'un seul code par pièce dans la même cellule .Malheureusement recherche V ne fonctionne pas dans ce cas vu que la recherche se fait à gauche ,j'ai essayé avec index(equiv) mais ça marche pas aussi.
Y a t il une autre fonction que je peux utiliser pour résoudre ce problème ? merci d'avance pour votre aide.
 

Pièces jointes

  • Classeur1.xlsx
    13.3 KB · Affichages: 6
Solution
J'avé pas vu celle là !
Qui plus ait on pourrait avoir au 01234 et chercher 1234, ça marche pas non plus.
Donc un essai plus compliqué avec :
VB:
=SIERREUR(INDEX(Feuil2!A:A;EQUIV(A3&";"&"*";Feuil2!B:B;0));SIERREUR(INDEX(Feuil2!A:A;EQUIV("*"&A3&";"&"*";Feuil2!B:B;0));INDEX(Feuil2!A:A;EQUIV("*"&A3;Feuil2!B:B;0))))
Qui différencie :
- 1234 au début avec 1234;*
- 1234 au milieu avec *1234;*
- 1234 à la fin avec *1234
En espérant avoir tout couvert.

sanae_J

XLDnaute Nouveau
J'ai trouvé un petit souci ,si vous pouvez m'aider .quand j'ai par exemple 12345 en premier (code 1 ) et que moi je cherche 1234 (code2) il me renvoi code 1 car bien évidement c'est la première valeur qu'il coïncide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'avé pas vu celle là !
Qui plus ait on pourrait avoir au 01234 et chercher 1234, ça marche pas non plus.
Donc un essai plus compliqué avec :
VB:
=SIERREUR(INDEX(Feuil2!A:A;EQUIV(A3&";"&"*";Feuil2!B:B;0));SIERREUR(INDEX(Feuil2!A:A;EQUIV("*"&A3&";"&"*";Feuil2!B:B;0));INDEX(Feuil2!A:A;EQUIV("*"&A3;Feuil2!B:B;0))))
Qui différencie :
- 1234 au début avec 1234;*
- 1234 au milieu avec *1234;*
- 1234 à la fin avec *1234
En espérant avoir tout couvert.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Evidemment qu'il manquait une configuration !
Dans 5678;991234 il détecte 1234.
Là c'est mieux :
VB:
=SIERREUR(INDEX(Feuil2!A:A;EQUIV(A3&";"&"*";Feuil2!B:B;0));SIERREUR(INDEX(Feuil2!A:A;EQUIV("*"&A3&";"&"*";Feuil2!B:B;0));INDEX(Feuil2!A:A;EQUIV("*;"&A3;Feuil2!B:B;0))))
juste un petit ";" qui manquait.
 

sanae_J

XLDnaute Nouveau
Bonjour ,J'ai testé votre dernière solution mais malheureusement j'ai rencontré un problème; quand j'insère une ligne et je duplique la formule il me renvoie une valeur aléatoire même si j'ai rien renseigné comme code !
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
S'il n'y a pas de code, donc vide, il va trouver une cellule ou il y a du vide dans la colonne Code.
J'avais pas prévu ça.
Avec cette formule, s'il n'y a pas de code, on sort :
VB:
=SIERREUR(SI(A3="";"";SIERREUR(INDEX(Feuil2!A:A;EQUIV(A3&";"&"*";Feuil2!B:B;0));SIERREUR(INDEX(Feuil2!A:A;EQUIV("*"&A3&";"&"*";Feuil2!B:B;0));INDEX(Feuil2!A:A;EQUIV("*;"&A3;Feuil2!B:B;0)))));"")
 

Discussions similaires

Réponses
4
Affichages
525
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…