Menu

[excel] chaine de caractères [Résolu/Fermé]

- - Dernière réponse : tontong
Messages postés
2269
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 mai 2019
- 3 déc. 2014 à 18:30
bonjour,

J'aimerai connaitre, sur Excel, la fonction qui permet d'extraire un mot dans une chaine de mots.

Exemple:
Ne garder que "douarnez" dans "OPHLM de douarnez"

Je sais qu'on peut extraire des caractères avec la fonction "droite"mais cette fonction de tient pas compte des mots, elle ne tient compte que du nombre de caractères. D'où mon problème.

Merci de m'aider.
Afficher la suite 

20/27 réponses

Meilleure réponse
Messages postés
782
Date d'inscription
vendredi 21 novembre 2003
Statut
Membre
Dernière intervention
12 mars 2019
193
9
Merci
si tu as toujours le meme debut
a savoir OPHLM de
to texte en C3
=STXT(C3;10;NBCAR(C3))

Dire « Merci » 9

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

CCM 39354 internautes nous ont dit merci ce mois-ci

Bonjour,
moi je voudrais extraire les 5premiers charactères d'une chaine composée de lettre et de chiffre, mais mon excel mac ne semble pas contenir cette formule...comment je dois faire?
JvDo
Messages postés
1928
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
23 mai 2019
742 -
Bonjour,

pour obtenir les 5 premiers caractères de ta chaîne. :
=GAUCHE(ma_chaine,5)

pour obtenir les 5 premières lettres à gauche de ta chaîne de caractères :
=GAUCHE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE($B$6,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9",""),5)
Je suppose que tu n'as que des lettres ou des chiffres dans ta chaîne.

cordialement

remarque : remplace les virgules par le séparateur kivabien
9
Merci
=GAUCHE(A1;TROUVE(" ";A1)-1

c'elle la extrais une chaine de caractere avent un espace
jean jacque
devient
jean

et si tu mes droite a la place de gauche

t'aura jacque
voili voilo

Dire « Merci » 9

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

CCM 39354 internautes nous ont dit merci ce mois-ci

1
Merci
et si tu as "OPHLM de juan les pins" tu auras pins (*_*)
en anotation :apparemment il s'agit d'extrair un nom de commune et si il y a Y comme nom il y en a pas mal d'assez exotique
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299
1
Merci
Est-ce que ceci conviendrait ?
http://www.cijoint.fr/cjlink.php?file=cj201106/cijAIGq0bx.xls
Messages postés
23966
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
4588
0
Merci
Bonjour
si votre texte comprend toujours deux blancs et que vous voulez extraire le dernier mot:

=STXT(B2;TROUVE(" ";B2;TROUVE(" ";B2;1)+1);20)

ou aussi

=STXT(A1;TROUVE("_";SUBSTITUE(A1;" ";"_";2);1)+1;20)

si la configuration de vos textes est variable, venir nous donner ici une liste exemple des textes à traiter

crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
Salut le forum

Une autre façon de faire

=SUBSTITUE(B3;"OPHLM de ";"")

Mytå
0
Merci
Bonjour à tous,

Je reviens sur ce sujet. Je sais que la réponse qu'il me faut est toute proche de celle proposée dans ce topic mais la formule proposée "=GAUCHE(A1;TROUVE(" ";A1)-1 " me renvoie parfois des caractères en trop, notamment quand je change "gauche" en "droite".

Voici mon problème. J'ai une liste de chiffres séparés par des ";" (par exemple : 3;4;5;8;9;10;11). A chaque fois, je souhaite en extraire dans deux cases différentes le premier et le dernier (sachant que le premier, comme le dernier peuvent avoir 1 ou 2 chiffres ; de 1 à 12).

Merci beaucoup à vous,

Tibo.
mic13710
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299 -
Si vous avez toujours 1 ou 2 chiffres à la fin, vous pouvez utiliser ces formules :
=GAUCHE(A1;TROUVE(";";A1)-1)
=DROITE(A1;NBCAR(A1)-TROUVE(";";A1;NBCAR(A1)-3))

Michel
Merci beaucoup Michel

Effectivement, la formule pour extraire à gauche fonctionne très bien. En revanche, pour ce qui est à droite, l'extraction fonctionne moins bien. (je me retrouve avec des "#VALEUR!" et des "4;5". En fait, ce qu'il faudrait, c'est extraire tous les chiffres à droite avant le premier ";". Est-ce possible ?

Encore merci !

Tibo.
mic13710
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299 -
C'est ce que fait la deuxième formule il me semble ! (extraction des 1 ou 2 derniers chiffres après le dernier ; )
Sauf erreur de ma part, lorsque je prends votre formule et que je l'applique, je n'obtiens pas le bon résultat :

En A1 : 3;4;5;6
Résultat : 5;6

En A2 : 4;5
Résultat : #VALEUR!

En A3 : 3;4;5;8;9;10;11
Résultat : 11

La formule semble ne fonctionner que lorsque le dernier nombre comporte deux chiffres. Or, je ne peux pas faire le tri manuellement...
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725
0
Merci
Bonjour à tous

pour le petit dernier

=DROITE(A1;EQUIV(";";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0))

Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule

formule trouvée sur ce site
http://boisgontierjacques.free.fr/
Un grand merci Michel ! Ca fonctionne !

A bientôt !
Messages postés
23966
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
4588
0
Merci
Bonjour

Pour info,afin d'amener mon grain de sel et surtout juste pur rappeler à Michel (salut) que c'est lui qui m'a donné la solution dans une autre vie :-)

non matricielle:
=DROITE(A2;NBCAR(A2)-TROUVE("_";SUBSTITUE(A2;";";"_";NBCAR(A2)-NBCAR(SUBSTITUE(A2;";";"")))))
pour une valeur en A2 devrait marcher pour l'extraction du dernier à droite

crdlmnt

Ps la combine NBCAR(cell)-NBCAR(SUBSTITUE(Cell;"caractère";"rien") est géniale pour compter le nombre de "caractères d'un texte.

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299
0
Merci
Merci à vous Michel et Vaucluse,

Quelque chose qui parait simple au départ et qui se termine par une méga formule, et tout ça pour extraire 2 malheureux chiffres !
tontong
Messages postés
2269
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 mai 2019
716 -
Bonjour,
Dans le même genre on peut aller vérifier si l'avant-dernier caractère est numérique:
=SI(ESTNUM(CNUM(DROITE(A1;2)));CNUM(DROITE(A1;2));CNUM(DROITE(A1;1)))
mais ce n'est toujours pas très simple.
mic13710
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299 -
Effectivement Tontong, plutôt que d'aller chercher un ";", autant aller directement à l'essentiel. C'est plus mieux bien comme ça ! (lol).
michel_m
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725 -
C'est vrai, Jacques Boisgontier est nul ?
mic13710
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299 -
Oh non Michel, loin de moi cette idée ! J'aime beaucoup son site que je consulte assez souvent, et sa formule est géniale. Celle proposée par Vaucluse n'est pas mal non plus d'ailleurs.

C'était seulement une autre proposition/correction dans la continuation de ma première intervention qui n'avait pas fonctionné comme l'avait signalé Tibo.
Néanmoins elle ne fonctionne que dans le cadre de sa demande, à savoir : récupération des un ou deux derniers chiffres d'une chaîne alors que les vôtres fonctionnent aussi au delà de 2 chiffres à extraire.
Ce que je voulais dire c'est qu'on cherche en principe un truc simple pour résoudre un problème simple. Là, nous avons un problème simple résolu avec une formule longue comme le bras !
c'est là qu'est la beauté du truc.
les formules répondant à une logique ...informatique . les exemples donnés par des Tibo, Monique J.Boisonnier ,Jean-marie, ou le regretter Ti (et d'autre que j'oublie). derrière la simplicité apparente de ce que l'on veut la logique qui en découle n'est pas l'évidence (surtout lorsque l'on veut modifier la fonctionnalité de base) au début le cas est simple . c'est viré le "OPHLM de " après ça ce complique avec les points virgules puis le nombre de caractère variable.chacun des cas en rajoute une couche. Moi c'est ce que j'apelle de l'art
Messages postés
53
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
23 juin 2011
1
0
Merci
Bonjour,
Alors jai bien étudier vos formules mais malhereusement je ne trouve pas mon bonheur !

Alors si quelqu'un peut m'aider :

J'ai une suite de ce type : A10040254

Et il me faut extraire suivant les cas (dans différentes cellules) :
- A1
- 004
- 2
- 54

Je précise que mon but ultime de cette extraction est de pouvoir utiliser chacune de ces données pour un publipostage sur word
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725
0
Merci
Bonjour,

ce n'est pas le m^me problème

dans ton cas, il faut nous en dire plus:
séparer 2 caractères puis 3 puis sauter le 0 puis 1 puis 2
ou?...
restitution en ligne ou en colonnes, tirets devant les extractions ?...

a te lire....

Michel
Messages postés
53
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
23 juin 2011
1
0
Merci
Bonjour et bien pour tenter de mieux expliquer mon probleme :
jai une suite de caractères de ce type dans une colonne : A010001001
Ces éléments constituent un ensemble d'informations qu'il me faut réutiliser pour compléter un publipostage sur Word
le "A" correspond au batiment
le "01" correspond a l'etage, ...

Alors il me faut extraire de cette suite certains éléments pour pouvoir les mettre à chaque élément de mon publipostage word.

Donc étant donné qu'il s'agit d'une fichier de plus de 300 personnes je cherche un moyen soit de faire apparaitre chaque élément de cette suite :
-soit sur une meme ligne pour chaque enregistrement pour pouvoir après les exporter via un champ de fusion
- soit directement exporter sur word la suite mais en ne réussissant a faire apparaitre que la partie de la suite qui m'interesse a chaque endroit

Je ne sais pas si c'est tres clair ce que j'ai dit?
mic13710
Messages postés
1089
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
2 juin 2018
299 -
C'est un tout petit peu plus clair, sauf que si vous ne donnez qu'une toute petite partie du problème.
Vous ne dites pas si le nombre de caractères des suites est fixe ou variable.
Qu'elle est la liste des éléments à extraire. On a le premier (A), le deuxième (01), et après ?
(je note au passage que dans votre premier post il s'agissait d'extraire A1 et non A et 004 et non 01)
Vous ne dites pas si le nombre d'éléments à extraire dans chaque suite est le même et si les éléments sont tous positionnés de manière identique (et donc avec le même nombre de caractères) et si ce n'est pas le cas, qu'est-ce qui permet de les différencier.

En gros, ça va être extrêmement difficile de vous aider si vous n'en dites pas plus.
Le mieux serait de faire un petit fichier excel sur lequel vous mettez quelques suites et le résultat que vous souhaitez obtenir, de le charger sur ci-joint et de venir mettre le lien ici pour qu'on puisse vous aider efficacement.
michel_m
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725 -
Je ne sais pas si c'est tres clair ce que j'ai dit?
RATE

J'ai l'impression qu'on va être obligé de supplier troubi... pour avoir des renseignements précis
Messages postés
53
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
23 juin 2011
1
0
Merci
Alors la chaine ne dispose pas exactement du meme nombre de caracteres il oscille entre 10 et 11 caractères avec
- les 2 premiers caractères pour le batiment (parfois un seul caractère)
- les 2 suivants pour l'entrée
- les 2 suivants le niveau
- les 5 derniers le n° de porte

Les numéros sont composés de manière identique mais à partir de la fin (donc des 5 derniers caractères correspondant au numéro de porte).

Il ne me reste qu'a trouver la solution pour inserer u fichier excel pour estre plus explicite
Messages postés
48899
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
23 mai 2019
9888
0
Merci
Bonjour troubidouch.

Maintenant que tu as fourni des données claires, on peut enfin te proposer une solution. Le code étant saisi en A2, tu obtiendras :
Le bâtiment- avec =STXT(A2;1;NBCAR(A2)-9)
L'entrée---- avec =STXT(A2;NBCAR(A2)-8;2)
Le niveau- avec =STXT(A2;NBCAR(A2)-6;2)
La porte- avec =DROITE(A2;5) qui est plus simple que =STXT(A2;NBCAR(A2)-4;5)
0
Merci
Bonjour j'ai une question similaire,
j'ai un chemin du type :
"G:\documents\programme\plan.dwg"

et je voudrai extraire ici le mot "plan" par exemple.

les caractères de l'extension ".dwg" seront toujours les derniers

Je voudrai quelque chose du style,

De la droite, après "g","w","d","." et jusqu'à "\" exclut.

merci
Messages postés
23966
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
4588
0
Merci
Bonjour
si vous avez toujours trois antislash dans votre texte:
une solution parmi d'autres:
=STXT(A1;TROUVE("_";SUBSTITUE(A1;"\";"_";3);1)+1;NBCAR(A1)-TROUVE("_";SUBSTITUE(A1;"\";"_";3))-5)

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
Merci
non justement le nombre d'"\" est aussi variable, c'est pour cela que je souhaité partir de la droite.
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725
0
Merci
Bonjour à tous les deux

peut-^tre avec une fonction personnalisée
Function nom_fich(chemin As String) As String
     nom_fich = Left(Split(chemin, "\")(UBound(Split(chemin, "\"))), 4)
End Function
Messages postés
2269
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
17 mai 2019
716
0
Merci
Bonjour à tous,
On peut aussi "arranger" la formule de Vaucluse en cherchant combien il y a de barres obliques inversées dans le texte:
=STXT(A1;TROUVE("_";SUBSTITUE(A1;"\";"_";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";"")));1)+1;NBCAR(A1)-TROUVE("_";SUBSTITUE(A1;"\";"_";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";""))))-4)
Et bon appétit;-)
michel_m
Messages postés
15832
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
23 mai 2019
2725 -
Re,

A peu près le m^me principe (compter les \) formule traduite et adaptée d'un site anglophone
=GAUCHE(DROITE(A1;NBCAR(A1)-TROUVE("*";SUBSTITUE(A1;"\";"*";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";"")))));4)