Extraire partiellement un texte avec critere

Bonjour la communauté!

je vous sollicite à nous pour une question: exemple: THYERRYO835900LIP-TEXTEP05-PoL

comment feriez vous pour a partir de données varies (maxi 30), réduire le texte suivant critere, exemple dans le fichier joint

Merci à vous par avance

12classeur-2.xlsx (9.47 Ko)

Bonjour,

En supposant que l'exemple ait des erreurs et que vous cherchiez à reproduire le fonctionnement suivant (que vous auriez pu préciser, ça me semble essentiel...) :

=REGEX.EXTRAIRE(A2;"^[A-Z]+[0-9]+")

L'expression regex permet d'extraire le premier groupe de texte majuscule suivi d'une suite de numéros. On s'arrête dès que la suite de numéros est interrompue.

Mais :

le "O" de la 1e ligne sort de nulle part

La dernière ligne est en contradiction avec l'avant-dernière

Bref, c'est vraiment incomplet comme demande

bonjour @sabot12617,

ceci était un exemple et je ne pense pas qu'il est d'erreur, cependant j'ai une multitude de cas différent au final, j'ai mis les principaux, comment feriez vous avec cette formule qui fonctionne très bien pour les 4 premiers exemples mais qui ne m'affiche pas la totalité de ce que je cherche

données: CHARMACHCMAN1M05801-REP41-TOL résultat attendu : CHARMACHCMAN1M05801

j'avais réussi à obtenir un résultat qui me convenez pas trop mal avec =GAUCHE(GAUCHE(A6;TROUVE("-";A6)-1);MAX(SI(ESTNUM(STXT(GAUCHE(A6;TROUVE("-";A6)-1);LIGNE(1:50);1)*1);LIGNE(1:50)))), l'inconvénient est que je ne peux pas l'utiliser telle qu'elle parce que j'ai d'autres données à coté de la ligne, peux être une formule écrite différement pour me permettre d'avoir un résultat dans une zone de ma feuille plus restreinte?

Pouvez-vous décrire votre condition d'arrêt ? C'est essentiel pour établir une formule : sous quelle(s) condition arrête-t-on l'extraction de texte ?

Si vous mettez des mots dessus on arrivera a établir une formule rapidement.

le premier cas d'arrêt est le " -", ça c'est la première condition

une fois série (texte + chiffre ) arrêté au " - ", il peut y avoir soit de 1 à 3 lettres avant que je veux supprimer ex: THYERRY587383P-08-TOL ou THYERRY587383PXT-08-TOL

soit dans d'autres cas, je peux avoir toujours une fois le "-" arrêté 1 à 3 chiffres qui eux pour le coup sont arrêté après par un point ex NDH14050801.1-TOL ou

7classeur1.xlsx (9.56 Ko)

NDH140508941.425-TOL

résultat que je souhaite obtenir : THYERRY587383 pour le premier exemple, NDH14050801 pour le deuxième et NDH140508941 pour le troisième

Bonjour à tous !

Une proposition à tester :

=REGEX.REMPLACER(TEXTE.AVANT(A2;{"-"."."});"[A-Z;a-z]*$";"")

Okay merci c'est beaucoup plus clair. Dans ce cas je te propose la formule

=LET(_step1;TEXTE.AVANT(EPURAGE(A2);"-"); _step2;SI(REGEX.TEST(_step1;"\.");TEXTE.AVANT(_step1;".");_step1); REGEX.EXTRAIRE(_step2;"^[A-Z]+[0-9]+"))

EDIT : voir formule @JFL avec "[A-Za-z]*$ au lieu de [A-Z;a-z]*$ dans le regex (capture du point virgule inutile)

Cependant, ATTENTION ! dans ton fichier A8 contient un caractère spécial invisible en début de chaine (le UNICHAR(65279) = le code Unicode du BOM (Byte Order Mark) apparemment), qui fait tout planter, même avec épurage. Je te conseille de faire très attention lors de tes copié/collé dans Excel car ce sont des éléments très durs à détecter.

Hello,

A partir du moment que dans la chaîne de départ il y ait au un caractère ou plus suivi d'au moins un chiffre ou plus, cette formule peut fonctionner :

=REGEX.EXTRAIRE(A2;"(\w+\d+)[\w-.]")

Ami calmant, J.P

oops,

j'ai fait une erreur dans mon expression régulière , c'est plutôt :

=REGEX.EXTRAIRE(A2;"^(\w+\d+)[\w\-\.]")

Explication en angliche :

formuleregex
Rechercher des sujets similaires à "extraire partiellement texte critere"