Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Nessie

XLDnaute Occasionnel
Bonsoir à tous,

J'ai des chaînes de caractères alphanumériques qui se présentent comme suit :
12abcd25 ou 12 abcd.

J'ai parcouru le net et les forums (notamment celui-ci) à la recherche d'une formule.
J'en ai trouvées qui m'expliquaient comment extraire les chiffres lorsqu'il y avait un espace et d'autres lorsque ces chiffres étaient placés à plusieurs endroits de la chaîne.
Certaines de ces formules m'ont paru indigestes ! lol !

Moi ce que je souhaiterais, c'est extraire uniquement "12" quelque soit le type de chaîne

Merci pour votre aide.
 

Tibo

XLDnaute Barbatruc
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonjour,

En supposant que tes chaines de caractères commencent toutes par des chiffres, une solution avec une formule matricielle :

Code:
=GAUCHE(A1;EQUIV(FAUX;ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1);0))

Formule matricielle à valider par CTRL + MAJ + ENTREE

On peut ajouter un *1 si on souhaite donner un caractère numérique au résultat.

@+
 

Staple1600

XLDnaute Barbatruc
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir le fil

Moi ce que je souhaiterais, c'est extraire uniquement "12" quelque soit le type de chaîne

Merci pour votre aide.

Tu ne veux que 12 à chaque fois ou c'est un exemple de chiffre ?

PS: As-tu consulté ce fil proche de ta question que j'avais posté jadis
 
Dernière édition:

Nessie

XLDnaute Occasionnel
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir le fil



Tu ne veux que 12 à chaque fois ou c'est un exemple de chiffre ?

PS: As-tu consulté ce fil proche de ta question que j'avais posté jadis

Oui, je ne veux que les 2 premiers chiffres (qui dans mon cas réel correspondent à des numéros de département) et parfois ils sont espacés, parfois ils sont collés au reste de la chaîne.

Non je n'avais pas vu ton fil
 

Nessie

XLDnaute Occasionnel
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonjour,

En supposant que tes chaines de caractères commencent toutes par des chiffres, une solution avec une formule matricielle :

Code:
=GAUCHE(A1;EQUIV(FAUX;ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1);0))

Formule matricielle à valider par CTRL + MAJ + ENTREE

On peut ajouter un *1 si on souhaite donner un caractère numérique au résultat.

Par ailleurs, avec ta formule, ça m'affiche les 3 premiers caractères quand les chiffres ne sont pas séparés du reste de la chaîne par un espace. Que dois-je rectifier dans ta formule ?

@+

lol ! cette formule fait partie de ce que je qualifiais d'"indigeste" mais apparemment, je n'ai pas le choix ! Mais question : pourquoi "1*" ? Je ne comprends pas le "donner un caractère numérique" sachant qu'il s'agit de l'extraction de caractère numérique dans une chaîne alphanumérique ?
 
Dernière édition:

KenDev

XLDnaute Impliqué
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir Nessie, Tibo, Stapple,

Si dans tous les cas ton texte commence par deux chiffres alors
Code:
=CNUM(GAUCHE(A1;2))
suffira. Tibo t'as donné une formule pour extraire un nombre quelquonque de chiffres en tête de texte (ce qui était demandé...).
Cordialement

KD

ps : les fonctions de texte (comme gauche) renvoie du texte même si les caractères sont numériques, d’où le *1 ou le CNUM.
 

Nessie

XLDnaute Occasionnel
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir Nessie, Tibo, Stapple,

Si dans tous les cas ton texte commence par deux chiffres alors
Code:
=CNUM(GAUCHE(A1;2))
suffira. Tibo t'as donné une formule pour extraire un nombre quelquonque de chiffres en tête de texte (ce qui était demandé...).
Cordialement

KD

ps : les fonctions de texte (comme gauche) renvoie du texte même si les caractères sont numériques, d’où le *1 ou le CNUM.

okkkkkkkkkk ! effectivement, pour le cas qui m'occupe, il s'agit de retenir les deux premiers chiffres de mes codes (codes qui je le rappelle sont de la forme XX abcd ou XXabcd voire même XXabcdYYZ). Je pensais que j'étais claire dans ma demande initiale. Mea culpa. Merci KenDev

Pour ma curiosité personnelle, si d'aventure j'étais amenée à vouloir ne retenir que "abcd", ou "XX" et "YYZ", je devrais donc utiliser la formule de Tibo ?
Par ailleurs, vu qu'il s'agit de numéro de département, qu'en est-il pour le département 01 s'il est formule "1", comment renvoyer "01" tout en conservant la formule pour les autres départements à 2 chiffres ?
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir Nessie, Tibo, Stapple, KenDev.

Si le n° de département en début de chaine peut être sur un caractère :
SI(ESTNUM(STXT(A1;2;1)*1);STXT(A1;1;2);0&STXT(A1;1;1))

- Renvoie une chaine de texte (mais je ne pense pas que tu veuilles additionner des numéros de département).
- Ne gère pas le cas où le premier caractère est alpha.
 

Nessie

XLDnaute Occasionnel
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir Nessie, Tibo, Stapple, KenDev.

Si le n° de département en début de chaine peut être sur un caractère :


- Renvoie une chaine de texte (mais je ne pense pas que tu veuilles additionner des numéros de département).
- Ne gère pas le cas où le premier caractère est alpha.

Wouah ! Une claque.....une claque !

Merci Pat'
 

KenDev

XLDnaute Impliqué
Re : Extraire les chiffres d'une cellule (XLS 2003 et/ ou 2010)

Bonsoir à tous,

Pour être sûr de ne pas mal interprété ta demande, si pour les entrées suivantes :
01FGFGHFG
1ghghgjh
78ghjghjgh
1 hjhjhj
78 hjhjhj
01 hhghj
a)tu souhaites avoir en résultat soit 1 soit 78 en numérique alors :
Code:
=SI(ESTNUM(CNUM(GAUCHE(A1;2)));CNUM(GAUCHE(A1;2));CNUM(GAUCHE(A1;1)))
b)tu souhaites avoir en résultat soit 01 soit 78 en texte alors :
Code:
=SI(ESTNUM(CNUM(GAUCHE(SUBSTITUE(A9;" ";"");2)));GAUCHE(A9;2);"0" & GAUCHE(A9;1))

Pour les autres questions ils serait intéressant de savoir si les entrées sont normées (nombre de caractères constant ou pas ? autre structure ?). Si tu peux transmettre un petit fichier avec sur une colonne des exemples représentatifs de ce qu'il est possible d'avoir à traiter et sur une autre colonne le résultat attendu.

Cordialement

KD

Edit : bonjour Victor
 

Staple1600

XLDnaute Barbatruc
Dernière édition:

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T