Téléchargement
illégal
Posez votre question Signaler

[excel] chaine de caractères

ben2ar - Dernière réponse le 8 févr. 2012 à 23:25
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.
Lire la suite 

[excel] chaine de caractères »

35 réponses
Réponse
+10
moins plus
si tu as toujours le meme debut
a savoir OPHLM de
to texte en C3
=STXT(C3;10;NBCAR(C3))
Franck - 11 janv. 2012 à 21:23
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- 12 janv. 2012 à 09:43
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
Ajouter un commentaire
Réponse
+2
moins plus
=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
Ajouter un commentaire
Réponse
+1
moins plus
Salut le forum

Une autre façon de faire

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

Mytå
Ajouter un commentaire
Réponse
+1
moins plus
Est-ce que ceci conviendrait ?
http://www.cijoint.fr/cjlink.php?file=cj201106/cijAIGq0bx.xls
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Tibo - 7 juin 2011 à 10:46
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- 7 juin 2011 à 10:51
C'est ce que fait la deuxième formule il me semble ! (extraction des 1 ou 2 derniers chiffres après le dernier ; )
Tibo - 7 juin 2011 à 10:57
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...
Ajouter un commentaire
Réponse
+0
moins plus
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/
Tibo - 7 juin 2011 à 11:40
Un grand merci Michel ! Ca fonctionne !

A bientôt !
Ajouter un commentaire
Réponse
+0
moins plus
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.

amarinho - 8 févr. 2012 à 18:07
Super ! ça fonctionne du tonnerre de Brest !
Ajouter un commentaire
Réponse
+0
moins plus
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 !
michel_m- 7 juin 2011 à 15:21
C'est vrai, Jacques Boisgontier est nul ?
mic13710- 7 juin 2011 à 15:36
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.
Daranc - 8 juin 2011 à 07:42
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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....

Ajouter un commentaire
Réponse
+0
moins plus
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- 23 juin 2011 à 09:11
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- 23 juin 2011 à 09:22
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Ce document intitulé « [excel] chaine de caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?