Extraire une chaine de caracteres
tontong Messages postés 2557 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 9 octobre 2024 - 9 oct. 2024 à 20:05
- Extraire une chaine de caracteres
- Extraire une video youtube - Guide
- Caractères ascii - Guide
- Extraire son d'une video - Guide
- Caractères spéciaux clavier azerty - Guide
- Chaine tnt gratuite sur mobile - Guide
5 réponses
9 oct. 2024 à 17:10
Bonjour
En A1 le texte avec le -
En B1 cette formule
=GAUCHE(A1;CHERCHE("-";A1)-2)&DROITE(A1;NBCAR(A1)-CHERCHE("-";A1)-1)
9 oct. 2024 à 18:12
Bonjour Brucine
En A1 le texte avec les espaces et le " - "
En B1 cette formule
=SIERREUR(GAUCHE(A1;CHERCHE(" - ";A1)-1)&DROITE(A1;NBCAR(A1)-CHERCHE(" - ";A1)-1);A1)
Il y aura certainement des ratés du aux espaces
9 oct. 2024 à 18:23
Toujours pas chez moi, ça ramène à l'identique "un porte manteau-noir"
ça, ça ramène le résultat (manteau-noir) à condition qu'il n'y ait pas un autre espace avant (j'ai un porte-manteau noir), c'est capillotracté et sûrement beaucoup plus simple dans Excel 365.
=DROITE(GAUCHE(A1;CHERCHE("-";A1)-1);NBCAR(GAUCHE(A1;CHERCHE("-";A1)-1))-CHERCHE(" ";GAUCHE(A1;CHERCHE("-";A1)-1)))&"-"&GAUCHE(DROITE(A1;NBCAR(A1)-NBCAR(GAUCHE(A1;CHERCHE("-";A1))));CHERCHE(" ";DROITE(A1;NBCAR(A1)-NBCAR(GAUCHE(A1;CHERCHE("-";A1))))))
Modifié le 9 oct. 2024 à 19:01
Re,
"sûrement beaucoup plus simple dans Excel 365."
Oui:
=LET(tbl;FRACTIONNER.TEXTE(A1;" ");INDEX(tbl;EQUIVX("*-*";tbl;2)))
Mais je n'aurais jamais trouvé ta formule !
Daniel
9 oct. 2024 à 18:51
Bonjour Brucine
Si A1 contient "j'ai un porte-manteau - noir" la formule fonctionne
On supprime le " - " entre manteau et noir, comme si cela était une erreur de saisie
j'ai un porte-manteau noir |
Pour le reste je n'ai pas 365 et on a pas assez d'informations pour être sûr de bien répondre à la question
9 oct. 2024 à 19:09
Rien n'est parfait en ce bas monde: si je mets le tiret entre manteau et noir, je me fais jeter dans tous les cas si je ne mets pas un espace après noir, et si je mets j'ai devant, il faut que je coupe non pas au premier espace mais au second, mais là, on n'en finit pas, je peux aussi écrire "ce soir j'ai un porte-jarretelles noir".
La solution discriminante, en supposant là aussi qu'un seul "mot" ait ces caractéristiques serait d'extraire tout ce qui est avant tiret et après espace et de le coller à l'extraction après tiret espace.
9 oct. 2024 à 18:54
Bonjour à tous,
Une fonction VBA :
Function Extr(C) Application.Volatile For Each Item In Split(C, " ") If IsNumeric(Application.Search("-", Item)) Then Extr = Item Exit For End If Next Item End Function
Utilisation (exemple) :
=EXTR(A1)
Si tu as des problèmes pour installer la fonction, n'hésite pas à demander.
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question9 oct. 2024 à 20:05
Bonjour à tous,
À condition de bien avoir un espace avant et après le mot composé:
On cherche la position du premier espace après "-" = CHERCHE(" ";A17;CHERCHE("-";A17))
On prend le texte à gauche B18=GAUCHE(A17;CHERCHE(" ";A17;CHERCHE("-";A17))-1)
on compte le nombre d'espaces =NBCAR(B18)-NBCAR(SUBSTITUE(B18;" ";""))
puis on cherche la position du dernier espace =CHERCHE("§";SUBSTITUE(B18;" ";"§";2))
On isole le texte à partir de cette position en regroupant tout dans une seule formule:
=STXT(GAUCHE(A17;CHERCHE(" ";A17;CHERCHE("-";A17))-1);CHERCHE("§";SUBSTITUE(GAUCHE(A17;CHERCHE(" ";A17;CHERCHE("-";A17))-1);" ";"§";2));99)
9 oct. 2024 à 17:23
Bonjour,
L'un de nous deux a mal compris.
Supposons que j'écrive en A1:
Un porte-manteau noir (je ne mets pas j'ai devant pour ne pas aggraver le cas).
Ne devrais-je pas retourner:
porte-manteau?