Signaler

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

Posez votre question arguhz - Dernière réponse le 8 juin 2017 à 15:15 par arguhz
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 
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
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)
Donnez votre avis
Utile
+0
plus moins
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.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !