Extraire du texte avec plusieurs conditions ??

  • Initiateur de la discussion Initiateur de la discussion fnony
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fnony

XLDnaute Occasionnel
Bonjour a tous

Après recherches intensives sur le forum, et multiples tests, je n'ai pas trouvé de réponses (ou pas su comment faire )..

Mon pb N° 1 me semble solvable..
Je recherche a extraire du texte d'une cellule mais j'ai plusieurs conditions, et je n'arrive pas à les imbriquer pour que ça marche
colonne A les libellés :
k2212890/NFORTA NV:RO NEGRO
J4100708 /HYUNDA MERCHANT

Colonne B
je cherche a extraire le N° de dossier :
=STXT(A2;CHERCHE("k";A2;1);8) ...

ça marche pour K mais je n'arrive pas à dire que si c'est "J" ça doit le faire aussi ??
Mon pb 2 me semble relevé de l'utopie
si dans le libellé il y a 2 fois (ou plus) la même lettre (ex: le "K") je ne veux extraire que mon N° de dossier composé systématiquement d'une lettre suivi de 8 chiffres..

Un petit fichier en PJ..


Et merci beaucoup de votre aide, surtout sur mon pb 1

A bientôt

Francois
 

Pièces jointes

Re : Extraire du texte avec plusieurs conditions ??

Re 🙂,
Tu trouveras plein d'infos dans le petit tuto que j'avais fait ICI 😛
Pour répondre à ta question le Pattern réagis lettre par lettre. L'utilisation des [] ouvre ce qu'on appelle une classe, donc plusieurs choix possibles pour 1 seul caractère. Donc effectivement, si tu ajoutes simplement le A : [AIJK], cela prendra en plus A et 7 chiffres.
\d représente n'importe quel chiffre et {7} 7 fois précisément ce qui est devant.
Donc 2 solutions possibles (euh, il y en a d'autres, on peut voir les choses de bien des manières 🙄...) pour ajouter ton 2ème cas de figure :
Tu peux dire que le Pattern (ou motif) supporte IJK en premier caractère, puis ((5 ou 7) et A) ou rien, et enfin 5 ou 7 chiffres : [IJK]([57]A){0,1}\d{5,7}
Ou tu peux utiliser le | (pipe : Alt Gr + 6) qui veut dire "ou" : (K[57]A\d{5})|([IJK]\d{7})
Bon courage 😎
 
Re : Extraire du texte avec plusieurs conditions ??

Bonjour JNP, c'est tout simplement magique... Avec tes explications, j'ai pu modifier le "pattern" et je n'ai que 0.007% d'erreur sur mon tableau , c'est génial,..
J'ai mis ton tuto dans mes favoris, je vais m'y plonger..
encore merci
François
 
Re : Extraire du texte avec plusieurs conditions ??

Re 🙂,
Pour aller vers le 0%, il faut affiner le Pattern, mais il faut beaucoup plus d'exemple que ce que tu m'as donné 😛
Par exemple : "\b((K[57]A\d{5})|([IJK]\d{7}))\b" va chercher un début et une fin de mot à chaque fois, donc fonctionne pour tous tes exemples, sauf celui avec un I suivi de 8 chiffres au lieu des 7 souhaités 🙄...
Bon courage 😎
 
Re : Extraire du texte avec plusieurs conditions ??

Hello JNP

Merci de ce nouvel apport. mais avec les | Pipes, j'ai encore réduit ma marge d'erreur, c'est un peu artisanal mais ça marche super bien, je vais faire mon malin avec ça 🙂)
Encore merci et à bientôt

F
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour