Ne garder que les chiffre ou lettre d'une cellule [Résolu]

arguhz - 8 juin 2017 à 13:07 - Dernière réponse : arguhz 1 Messages postés jeudi 8 juin 2017Date d'inscription 8 juin 2017 Dernière intervention
- 8 juin 2017 à 15:15
Bonjour,
j'ai un problème simple en apparence mais je bloque.
J'ai un tableau dont je souhaite extraire dans un autre onglet une partie de chaque cellule en fonction de son contenu.

j'ai réussi à simplifier mon problème en 3 cas de figure :
-si la cellule ne contient que des lettres : garder le contenu
-si la cellule ne contient que des chiffres : garder de contenu
-si la cellule contient des lettres + des chiffres + éventuellement un tiret ou un espace : ne garder que les chiffres.

Sachant que les chiffres sont toujours à gauche et les lettre à droite dans le dernier cas. J'ai essayé une formule avec des "si" imbriqué les uns dans les autres mais je n'ai pas réussi. Je voudrais au mieux une formule que je pourrais appliquer facilement à tout le tableau en ciblant la même cellule dans un autre onglet.

Quelqu’un aurais une piste pour moi?

Afficher la suite 

3 réponses

Répondre au sujet
Raymond PENTIER 44507 Messages postés lundi 13 août 2007Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 8 juin 2017 à 14:15
0
Utile
On pourra te proposer une piste quand tu auras fourni des exemples de contenu mixte (tous les cas possibles).
Les solutions feront appel soit aux fonctions GAUCHE et DROITE, soit à la fonction SUBSTITUE.
Commenter la réponse de Raymond PENTIER
Vaucluse 20835 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 10 décembre 2017 Dernière intervention - Modifié par Vaucluse le 8/06/2017 à 14:34
0
Utile
Bonjour
essayez celle ci pour A1
attention, n'oubliez rien, c'est une peu long!!
=SI(GAUCHE(A1;NBCAR(A1)-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;"")))="";A1;GAUCHE(A1;NBCAR(A1)-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;"")))*1)

voila ce que ça devrait donner
https://mon-partage.fr/f/GmdzeiAo/

Notez que telle que la formule est écrite, le résultat est numérique quand il y a des chiffres, et donc si le texte commence par 0, il n'apparaitra pas.
pour éliminer ça si besoin, supprimer le *1 final

crdlmnt

ps en fait on peut raccourcir un tout petit peu au début:
=SI(NBCAR(A1)-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;""))=0;A1;GAUCHE(A1;NBCAR(A1)-NBCAR(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;"")))*1)
La qualité de la réponse dépend surtout de la clarté de la question, merci!
Commenter la réponse de Vaucluse
arguhz 1 Messages postés jeudi 8 juin 2017Date d'inscription 8 juin 2017 Dernière intervention - 8 juin 2017 à 15:15
0
Utile
Merci pour les réponses rapides,
j'ai fini par utiliser la formule suivante qui à l'air de marcher :
=SI(ESTNUM(1*GAUCHE(G6))=FAUX;G6;SI(ESTNUM(1*DROITE(G6));1*G6;SI(ESTNUM(1*GAUCHE(G6;2));1*GAUCHE(G6;2);1*GAUCHE(G6;1))))

Je teste les différente partie avec la fonction estnum(). D'abord le premier caractère à gauche puis celui à droite. Enfin je regarde si les deux premier caractère forme un nombre, sinon j'en déduit qu'il n'y en a qu'un. Je mise tout sur le fait que la partie chiffré ne comporte que 1 ou 2 chiffre, dans le cas contraire ça ne marche pas.
Commenter la réponse de arguhz