Excel : séparer une chaine de caractere à partir d'un N caracter

Résolu/Fermé
Limlight Messages postés 9 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 11 juin 2015 - 1 juin 2015 à 16:55
Limlight Messages postés 9 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 11 juin 2015 - 2 juin 2015 à 14:27
Bonjour,

Je souhaiterais afficher dans une cellule Excel la chaine de caractère à partir du 4e underscore (soit ici BASF) :

Thermoplastique-PA _ ULTRAMID A3WG6 K00564 _ _ PA66-GF30 _ BASF

j'ai utilisé la forme =STXT(G2;1;TROUVE("_";G2;1)-1) pour extraire la première chaine de caractère mais je n'arrive pas à adapter cette formule pour le 4e Underscore.

Merci de me donner une formule pour le faire.

Cordialement

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
1 juin 2015 à 17:10
Bonjour
et bonjour aux polyamide.... ça me rappelle des souvenirs!

essayez pour un texte en A1:
=SUPPRESPACE(STXT(A1;TROUVE("/";SUBSTITUE(A1;"_";"/";4);1)+1;10))

(SUPPRESPACE est là pour éliminer un espace éventuel devant le mot à extraire

Fonctionne à condition qu'il y ait toujours 4 underscore dans vos textes, si ce n'est pas le cas, revenez, c'est juste un peu plus compliqué, car il faut compter combien il y en a pour trouver le dernier

crdlmnt
1
Limlight Messages postés 9 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 11 juin 2015
1 juin 2015 à 17:16
Merci, ça marche parfaitement, par contre je ne comprends pas pourquoi il faut mettre des slash dans la fonction trouve
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394 > Limlight Messages postés 9 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 11 juin 2015
Modifié par Vaucluse le 1/06/2015 à 19:00
Simplement parce que pour identifier le 4° underscore, le code SUBSTITUE le remplace par un slash.
C'est le but de SUBSTITUE(A1;"_";"/";4)
qui se traduit par: remplacer le 4° undescore par un slash.

... on remplace le 4° underscore par un slash et ensuite, TROUVE va chercher sa position
(Un slash ou autre chose qui n'existe pas dans le texte, et ça fonctionne)
Crdlmnt
0