Excel : séparer une chaine de caractere à partir d'un N caracter [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015
-
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015
-
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

Messages postés
26064
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 juin 2021
5 953
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015

Merci, ça marche parfaitement, par contre je ne comprends pas pourquoi il faut mettre des slash dans la fonction trouve
Messages postés
26064
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 juin 2021
5 953 >
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015

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
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015

Merci de votre réponse.

Je voudrais maintenant savoir comment extraire la chaine contenu entre le 1er "_" et le 2e

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

Extraire le "ULTRAMID A3WG6 K00564".

L'espace semble poser probleme...

Merci de votre réponse.
Messages postés
26064
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 juin 2021
5 953
Ca se complique!

avez vous essayez d'utiliser l'outil convertir d'Excel

__sélectionnez le champ à traiter
__Ruban / Données / Convertir
__"délimité" / Suivant / autre et entrez underscore dans la case
__et OK

et pour fignoler, sélectionnez les résultats et
__touche ctrl + touche h
__remplacer case en haut: underscore
__par en bas: rien
__et "remplacer tout"

sinon vous trouverez une solution par formule en A3 dans ce modèle, mais bon courage:
https://www.cjoint.com/c/EFckDjf6zwL

... ou alors passer par VBA, mais là, ce n'est plus dans mon domaine!

crdlmnt
Messages postés
2474
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
25 mai 2021
971
Bonjour,
On peut aussi faire la recherche avec " _ " au lieu de "_".
=STXT(GAUCHE(A1;CHERCHE("§";SUBSTITUE(A1;" _ ";"§";2)));CHERCHE(" _ ";A1)+3;99)
Le plus on met de caractères le moins on a d'erreurs fortuites.
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015

Merci, ça fonctionne bien.

Cependant j'ai des difficultés à récupérer cette partie PA66-GF30 de la chaine "Thermoplastique-PA _ ULTRAMID A3WG6 K00564 _ _ PA66-GF30 _ BASF" qui est placé au 4e §.

J'essaye avec la fonction droite mais ça me retourne une chaine coupé.

Pouvez vous m'éclairer ? Merci
Messages postés
2474
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
25 mai 2021
971
=STXT(GAUCHE(A1;CHERCHE("§";SUBSTITUE(A1;" _ ";"§";4)));CHERCHE("§";SUBSTITUE(A1;" _ ";"§";3))+3;99)
Si vous aviez demandé l' extraction de chaque item depuis le début il vous aurait été conseillé d'utiliser Données Convertir Délimité Séparateur Autre _
Mais c'est un autre éclairage.
Messages postés
26064
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 juin 2021
5 953
Salut tontong
voir ici, message 6,à priori, ça n'a pas impressionné!
https://forums.commentcamarche.net/forum/affich-32052838-excel-separer-une-chaine-de-caractere-a-partir-d-un-n-caracter#6
Bien amicalement
Messages postés
2474
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
25 mai 2021
971 >
Messages postés
26064
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
4 juin 2021

Salut Vaucluse,
C'est vrai que je n'avais pas tout lu depuis hier!
À force de répéter sous toutes les formes l'étincelle va jaillir.
Messages postés
9
Date d'inscription
lundi 1 juin 2015
Statut
Membre
Dernière intervention
11 juin 2015

Merci de votre réponse, ça marche parfaitement, je vais regarder également votre solution pour optimiser mon code.