Menu

Extraire une chaine de caractère excel [Résolu/Fermé]

- - Dernière réponse :  Tojo - 23 avril 2018 à 09:31
Bonjour,

Bonjour,

Je cherche a extraire une chaine de caractère d'une cellule excel qui se trouve a gauche d'un caractère spécifique (ex: * / - etc...) qui se trouve aussi dans cette même chaine de caractère.
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
23286
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
15 janvier 2019
5540
76
Merci
Bonjour
Pour extraire en A1 un texte avant un /
=STXT(A1;1;TROUVE("/";A1;1)-1)
Si vous voulez que le signe / soit édité avec le résultat, enlevez le -1 en fin de formule.
Crdlmnt

Dire « Merci » 76

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 55540 internautes nous ont dit merci ce mois-ci

Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
1023
17
Merci
Re le forum

Explication de la formule
=STXT(A1;(CHERCHE("-";A1;1))+1;CHERCHE("-";A1;(CHERCHE("-";A1;1))+1)-((CHERCHE("-";A1;1))+1))

Fonction : STXT(texte;no_départ;no_car)
texte représente la chaîne de texte contenant les caractères à extraire.
no_départ représente la position dans le texte du premier caractère à extraire.
Le premier caractère de texte a un no_départ égal à 1, et ainsi de suite.
no_car indique le nombre de caractères à extraire du texte à l'aide de STXT.

Le première partie trouve le début du texte (no_départ)
=(CHERCHE("-";A1;1))+1

La deuxième partie trouve la longueur du texte (no_car)
=CHERCHE("-";A1;(CHERCHE("-";A1;1))+1)-((CHERCHE("-";A1;1))+1)

Mytå
Messages postés
16795
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 janvier 2019
4971
7
Merci
Salut,

Si la première valeur est en A1 exemple titi et toto/bernard et jacques

cette formule te donnera titi et toto

=GAUCHE(A1;TROUVE("/";A1)-1)

ou encore
=STXT(A1;1;CHERCHE("/";A1;1)-1)
2
Merci
et la même cellule si aucun caractère n'est trouvé
Merci d'avance.
Messages postés
23286
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
15 janvier 2019
5540
2
Merci
Re

j'attend avec impatience la réponse de mon ami Mike....
en attendant je préfére vous conseiller tout d'abord de traiter votre colonne de texte avec "remplacer" pour réaligner tous les signes possibles sur un seul modèle (quitte à recopier votre lsite pour ne pas détruire l'original) et ensuite d'utiliser la formule:

=SI(ESTERREUR(TROUVE("signe";A1));A1;STXT(A1;1;TROUVE("signe";A1)-1))

Ca risque d'être le plus simple, à mon avis.
En attendant mieux
Bonne journée

Crdlmnt
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
1023
2
Merci
Salut le forum

En B1 la formule

=STXT(A1;(CHERCHE("-";A1;1))+1;CHERCHE("-";A1;(CHERCHE("-";A1;1))+1)-((CHERCHE("-";A1;1))+1))


Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Dernière intervention
25 juin 2010
4
2
Merci
je te remercie de ta réponse et de ta patience

Sincérement
Didier
1
Merci
Le problème c'est que dans la même collone de cellule, on trouve aussi du "*" comme "/" comme "+" comme " ".
Messages postés
16795
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 janvier 2019
4971
1
Merci
Re,

ce n'est pas un problème, donnes nous la liste des symboles que tu peux rencontrer dans tes valeurs
Messages postés
16795
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 janvier 2019
4971
1
Merci
Salut,

Après un petit remontant une formule qui traite les séparations * - / _ + excepté l’espace, ne sachant pas s’il y en a plusieurs dans la valeur

=STXT(A1;1;TROUVE("/";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"*";"/");"-";"/");"_";"/");"+";"/");1)-1)

Si par contre un seul espace cette dernière le prendra en compte

=STXT(A1;1;TROUVE("/";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"*";"/");"-";"/");"_";"/");"+";"/");" ";"/");1)-1)

Dans le cas ou il existerait plusieurs espaces on pourrait le traiter à condition de savoir lequel traiter

Je serai de retour dans la soirée après une après midi de formation d'informatique bien sur
1
Merci
Merci infiniment a vous deux.
Messages postés
16795
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 janvier 2019
4971
1
Merci
Re,

Si ton problème est réglé, confirmes nous le que l'on mette le statut de la discussion en résolu
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Dernière intervention
25 juin 2010
4
1
Merci
alors soit je m'y prend comme un manche (surement vrai au vue de mon niveau dans excel)
soit je me suis mal exprimer (fort possible aussi)

ce que je veux obtenir c'est ça:
dans ma cellule A1 ma chaine complète et dans la cellule A2 uniquement la réf qui ce trouve entre les tirets et là j'ai besoin de vos connaissances pour me trouver une formule à entré dans ma cellule A2.

Chaine complète Chaine à extraire

100322239 BLDX125N-ADH35FNA-UU1600X100 ADH35FNA

100322239 (toujours 9 chiffres) après toujours 10 espaces et pour le reste de la chaine les groupes de lettres et de chiffres entre les tirets sont variable en nombres (suivant réf).

Merci
DIDIER
Messages postés
23286
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
15 janvier 2019
5540
1
Merci
Bonjour
ça peut être sous réserve que votre 1° tiret soit bien le 19° caractère
Le nombre de caractères à éditer entre les deux tirets est pris en compte par la formule)


=STXT(A1;20;TROUVE("-";A1;20)-20)

Sinon revenez, ça sera un peu plus compliqué si la position des tirets est variable, mais il y a des solutions.

crdlmnt
Ps
un conseil pou l'avenir:
éviter de vous accrocher sur une ancienne discussion, c'est plus difficile pour détecter votre demande, et surtout, celle ci était signalée comme résolue
Messages postés
10
Date d'inscription
mercredi 13 janvier 2010
Dernière intervention
25 juin 2010
4
1
Merci
super çà fonctionne

merci à toi Mytâ
peut-tu m'expliquer sommairement la formule que je ne fasse pas que de la recopie betement sans rien comprendre
merci d'avance
DIDIER
Messages postés
5
Date d'inscription
dimanche 1 décembre 2013
Dernière intervention
27 décembre 2018
2
1
Merci
Bonjour,
je souhaiterais aller plus loin :

j'ai récupéré des champs avec un ID, genre "Papa;#12" (ça vient de SharePoint)

grâce à la fonction =STXT indiquée plus haut, je peux extraire "Papa"

mais parfois, j'ai "Papa;#12;#Maman;#24"

grâce à la fonction =NBCAR(A1)-NBCAR(SUBSTITUE(A1;"#";"")), je peux trouver le nombre d'ID (en divisant par 2 puis +0.5 soit dans notre exemple 3/2+0.5=2 IDs)

maintenant, j'aimerais extraire "Papa" et "Maman", faire une boucle, quoi !
il faut que je me lance dans une macro ?

PS : je profiterai de ma boucle pour remplacer le bon ID grâce à =RECHERCHEV pour obtenir genre "Papa;#15;#Maman;#18"

merci