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

Signaler
-
Messages postés
1
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
8 juin 2017
-
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?

3 réponses

Messages postés
52627
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
13 novembre 2020
14 539
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.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
25543
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
13 novembre 2020
5 597
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!
Messages postés
1
Date d'inscription
jeudi 8 juin 2017
Statut
Membre
Dernière intervention
8 juin 2017

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.