XL 2016 Extraction d'une partie du texte d'une même cellule

Ethlios

XLDnaute Junior
Bonjour à tous,

Je suis à la recherche d'une petite astuce pour séparer le texte d'une même cellule.

Exemple : aujourd'hui*20

Dans l'idée je voudrais extraire précisément le texte situé après le * donc dans l'exemple "20", auriez vous une petite formule pour cette tâche ?

Ethlios
 
Solution
Bonjour Ethlios,
Un petit fichier test eût été le bienvenu, c'est plus simple.
Si A1 contient : aujourd'hui*20, on peut faire :
VB:
=STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000)
Si on veut récupérer un nombre et non un texte :
Code:
=CNUM(STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000))
Le changement "*" en "£" est utile ici car "*" veut dire "n'importe quel texte" et le Cherche ne marche pas, il donne comme résultat 1.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Ethlios,
Un petit fichier test eût été le bienvenu, c'est plus simple.
Si A1 contient : aujourd'hui*20, on peut faire :
VB:
=STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000)
Si on veut récupérer un nombre et non un texte :
Code:
=CNUM(STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000))
Le changement "*" en "£" est utile ici car "*" veut dire "n'importe quel texte" et le Cherche ne marche pas, il donne comme résultat 1.
 

Ethlios

XLDnaute Junior
Bonjour Ethlios,
Un petit fichier test eût été le bienvenu, c'est plus simple.
Si A1 contient : aujourd'hui*20, on peut faire :
VB:
=STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000)
Si on veut récupérer un nombre et non un texte :
Code:
=CNUM(STXT(A1;1+CHERCHE("£";SUBSTITUE(A1;"*";"£"));1000))
Le changement "*" en "£" est utile ici car "*" veut dire "n'importe quel texte" et le Cherche ne marche pas, il donne comme résultat 1.
Désolé pour le fichier et merci beaucoup pour la formule ! Juste une question pourquoi ;1000) à la fin de la formule ?
 

ALS35

XLDnaute Occasionnel
Bonjour à tous,
Amitiés sylvanu,

Une autre possibilité avec la fonction TROUVE qui n'utilise pas de caractères génériques (*).
Pour le nombre après * :
=CNUM(DROITE(A1;NBCAR(A1)-TROUVE("*";A1)))
Pour le texte avant * :
=GAUCHE(A1;TROUVE("*";A1)-1)

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 217
Membres
103 158
dernier inscrit
laufin