Extraire du texte avec plusieurs conditions ??

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

  • Extraire texteFanch.xlsx
    11.4 KB · Affichages: 105

JNP

XLDnaute Barbatruc
Re : Extraire du texte avec plusieurs conditions ??

Re :),
Tu trouveras plein d'infos dans le petit tuto que j'avais fait ICI :p
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 :rolleyes:...) 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 :cool:
 

fnony

XLDnaute Occasionnel
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
 

JNP

XLDnaute Barbatruc
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é :p
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 :rolleyes:...
Bon courage :cool:
 

fnony

XLDnaute Occasionnel
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
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 607
dernier inscrit
lolo1970