Extraire la fin d'une chaine de caractère [Résolu/Fermé]

Signaler
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014
-
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
-
je cherche à extraire d'une cellule la chaine de caractères qui précède le dernier tiret de de toute la chaine de caractère, et pouvoir répéter cette fonction sur plusieurs cellules dont la chaine de caractère n'est pas toujours de même longueur.

ex:extraire seulement "T1TRANSFO" de la chaine : "PMFR-MTA-C-5758-ELEHT-T1TRANSFO"


PMFR-MTA-C-5758-ELEHT-T1TRANSFO
PMFR-MTA-C-5758-FROID-CLIM
PMFR-MTA-C-5758-INCEN-DETINC
PMFR-MTA-C-5758-INCEN-POSTSPK
PMFR-MTA-C-5758-INCEN-STOCKSPK
PMFR-MTA-C-5758-INGAZ-DETGAZ
PMFR-MTA-C-5758-LEVAG-MONTECG
PMFR-MTA-C-5758-PORBA-PORTRAPID

je vous remercie par avance

7 réponses

Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Bonjour

Le texte est en A5

Il faut toujours 5 tirets voici une formule

=DROITE($A5;NBCAR($A5)-TROUVE("-";$A5;(TROUVE("-";$A5;TROUVE("-";$A5;(TROUVE("-";$A5;(TROUVE("-";$A5;1)+1))+1))+1)+1)))
Messages postés
23558
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
6 404
Bonjour à tous,

Comme tu as toujours 5 tirets et le 5ème toujours en même position :
=STXT(A2;CHERCHE("-";A2;21)+1;50)

eric

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(devise Shadok)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014

merci bcp pour les réponces rapide ça marche tres bien, entre temps moi aussi j'ai trouvé une solution:

=DROITE(A390;NBCAR(A390)-TROUVE("-";A390)-17)

mais au faite j'ai oublier de mentionner que parfois j'ai des chaine qui ne comporte pas 5 tiret et la par contre je ne voudrais rien extraire, en gros je voudrais extraire que les caractaitre qui précède le 5ème tiret sinon une cellule vide...une difficulté de plus


ex:
PMFR-MTA-B-LC27-PALET-RBT07
PMFR-MTA-C
PMFR-MTA-C-0147
PMFR-MTA-C-0147-EAUCH
PMFR-MTA-C-0147-EAUCH-SSTATION
PMFR-MTA-C-0147-ECLAI
PMFR-MTA-C-0147-ECLAI-BAES

je vous remerci par avance
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Bonjour

La formule est un peu longue mais elle fonctionne sans imposer une position à 21 ou un -17 ou autre caractère
S'il n'y a pas cinq tirets rien n'est affiché

=SI(ESTERREUR(DROITE($A6;NBCAR($A6)-TROUVE("-";$A6;(TROUVE("-";$A6;TROUVE("-";$A6;(TROUVE("-";$A6;(TROUVE("-";$A6;1)+1))+1))+1)+1))));"";DROITE($A6;NBCAR($A6)-TROUVE("-";$A6;(TROUVE("-";$A6;TROUVE("-";$A6;(TROUVE("-";$A6;(TROUVE("-";$A6;1)+1))+1))+1)+1))))
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Avec la proposition de teste pour les 5 tirets d'Eriiic cela donne

=SI(NBCAR(A5)-NBCAR(SUBSTITUE(A5;"-";""))=5;DROITE($A5;NBCAR($A5)-CHERCHE("-";$A5;(CHERCHE("-";$A5;CHERCHE("-";$A5;(CHERCHE("-";$A5;(CHERCHE("-";$A5;1)+1))+1))+1))+1));"")
Messages postés
23558
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
6 404
A quoi ça sert de proposer plus long que la dernière proposition ?
Messages postés
23558
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
6 404
Re,

en plus court :
=SI(NBCAR(A2)-NBCAR(SUBSTITUE(A2;"-";""))=5;STXT(A2;CHERCHE("-";A2;21)+1;50);"")

eric
Messages postés
25372
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
13 octobre 2020
5 523
Bonsoir
ou alors:
=STXT(A1;TROUVE("/";SUBSTITUE(A1;"-";"/";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"-";""))))+1;25)
qui fonctionne quelque soit le nombre de tirets
crdlmnt
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Voila à vous deux Eriiic et Vaucluse
Vous m'avez permis d'apprendre comment simplifier ma formule
Je préfère celle de Vaucluse qui impose juste un mot de 25 caractères maximum en extraction
Alors que celle d'Eriiic impose un tiret après le 21 caractère
Messages postés
23558
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
12 octobre 2020
6 404
Alors que celle d'Eriiic impose un tiret après le 21 caractère
Pas compris là...
Ca retourne ce que tu as demandé :
j'ai des chaine qui ne comporte pas 5 tiret et la par contre je ne voudrais rien extraire

eric
Messages postés
5518
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
7 octobre 2020
497
Bonjour Eriiic

Je me suis mal exprimé, dans votre formule vous chercher le tiret à partir du 21 caractères et pour moi cela impose que toutes les chaînes analysées comportant 5 tirets soient composées d'un minimum de 21 caractères. Je préfère une formule sans contrainte. C'est uniquement pour mon information.

Merci Eriiic et Vaucluse pour vos réponses
Messages postés
31
Date d'inscription
lundi 24 mars 2014
Statut
Membre
Dernière intervention
7 août 2014

je vous remercie Vaucluse, eriiic, PHILOU10120 ça marche tres bien!!