[excel] chaine de caractères

Résolu/Fermé
ben2ar - 7 déc. 2006 à 14:57
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 - 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.
A voir également:

27 réponses

G.David Messages postés 768 Date d'inscription vendredi 21 novembre 2003 Statut Membre Dernière intervention 1 juin 2020 203
20 déc. 2006 à 08:50
si tu as toujours le meme debut
a savoir OPHLM de
to texte en C3
=STXT(C3;10;NBCAR(C3))
9
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?
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
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
0
=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
9
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
1
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
23 juin 2011 à 13:14
Est-ce que ceci conviendrait ?
http://www.cijoint.fr/cjlink.php?file=cj201106/cijAIGq0bx.xls
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 28/03/2011 à 12:53
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?
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
28 mars 2011 à 12:53
Salut le forum

Une autre façon de faire

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

Mytå
0
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.
0
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
7 juin 2011 à 10:42
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
0
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.
0
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
Modifié par mic13710 le 7/06/2011 à 10:52
C'est ce que fait la deuxième formule il me semble ! (extraction des 1 ou 2 derniers chiffres après le dernier ; )
0
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...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 juin 2011 à 11:35
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/
0
Un grand merci Michel ! Ca fonctionne !

A bientôt !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 7/06/2011 à 11:47
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?
0
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
7 juin 2011 à 11:56
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 !
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 juin 2011 à 12:11
mon seul mérite est d'être aller fouiner sur un site réputé!!! :-)

cordialement votre
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
7 juin 2011 à 12:27
c'est vrai Michel; et je reviens car j'ai un peu oublié de citer Mita dans ma proposition alors qu'il y est aussi et il y est aussi pour quelque chose.
Rendons à César....ce qui appartient à ce vieux Jules!

Le site où tu vas fouiner mérite bien sa réputation.

bonne journée à tous.
crdlmnt
0
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 !
Ben ouais! si ça avait été pour tout un annuaire ç'aurait-t- été moins artistique
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 juin 2011 à 13:12
daranc, ????
bof
0
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
7 juin 2011 à 13:50
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 !

Et puis en cherchant un peu plus, je suis arrivé à cette formule qui marche aussi mais seulement s'il y a un ou deux chiffres à extraire :
=SI(TROUVE(";";DROITE(A1;3))>1;DROITE(A1;1);DROITE(A1;2))

Et pour éviter d'afficher #N/A si la cellule est vide (idem pour les formules ci-dessus !):
=SI(A1="";"";SI(TROUVE(";";DROITE(A1;3))>1;DROITE(A1;1);DROITE(A1;2)))
0
troubidouch Messages postés 52 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 23 juin 2011 1
22 juin 2011 à 15:37
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/06/2011 à 16:16
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
0
troubidouch Messages postés 52 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 23 juin 2011 1
23 juin 2011 à 08:12
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?
0
mic13710 Messages postés 1088 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 354
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.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
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
0
troubidouch Messages postés 52 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 23 juin 2011 1
23 juin 2011 à 10:07
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
0
Raymond PENTIER Messages postés 58392 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 avril 2024 17 094
8 févr. 2012 à 23:25
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
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
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 5/06/2012 à 11:45
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
non justement le nombre d'"\" est aussi variable, c'est pour cela que je souhaité partir de la droite.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 juin 2012 à 12:24
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
0
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
5 juin 2012 à 12:30
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;-)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 5/06/2012 à 12:43
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)
0