Pour pouvoir extraire uniquement les chiffres contenu dans une cellule Excel, nous n'avons d'autre choix que de découper chaque élément de la cellule en élément unique.
- Extraire chaque caractère
En combinant les fonctions SEQUENCE et STXT, nous pouvons extraire chaque caractère de la cellule source.
- Faire un test sur chaque caractère
Ensuite, il faut évaluer si chaque caractère est numérique ou non avec la fonction ESTNUM
- Filtrer sur les valeurs numériques
Enfin, il faut utiliser la fonction FILTRE pour ne conserver que les chiffres
- Regrouper uniquement les valeurs numériques
Pour terminer, il faut utiliser la fonction JOINDRE.TEXTE pour ne conserver que les valeurs numériques
- Les fonctions SEQUENCE, FILTRE et JOINDRE.TEXTE, ne sont accessibles que dans les versions Excel 365, Excel 2021 et Excel Online
Etape 1 : Extraire chaque caractère de la cellule
La fonction STXT vous permet d'extraire une sous-partie d'une chaîne de caractères. Associée à la fonction SEQUENCE, vous créez un tableau dans lequel chaque cellule représentera un des caractères de la cellule comme cela a été expliqué dans cet article.
=STXT(A2,SEQUENCE(,NBCAR(A2)),1)
Etape 2 : Test pour savoir si le contenu est numérique ou pas
Ensuite, nous devons effectuer un test sur chacune des cellules pour savoir si le contenu est numérique ou pas. Nous allons alors écrire la fonction suivante.
=ESTNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1))
Seulement, ça ne va pas fonctionner ?
En fait, Excel considère chaque élément comme du TEXTE . Mais grâce à la fonction CNUM, chaque partie sera comprise comme du texte ou un nombre. Avec la formule suivante on construit notre test correctement.
=ESTNUM(CNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1)))
Etape 3 : Isoler seulement les nombres
Maintenant, pour regrouper uniquement les nombres (donc là où le test est VRAI), il faut utiliser la fonction FILTRE.
- La liste à filtrer correspond à notre tableau de caractères, soit la première formule de cet article.
- Le critère de filtrage, la formule du test logique sur les nombres.
=FILTRE(CNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1)),ESTNUM(CNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1))))
Etape 4 : Regrouper les chiffres ensemble
Enfin, il ne reste plus qu'à regrouper tous les nombres dans une seule cellule. Pour cela, nous allons utiliser la fonction JOINDRE.TEXTE
=JOINDRE.TEXTE("",,FILTRE(CNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1)),ESTNUM(CNUM(STXT(A2,SEQUENCE(,NBCAR(A2)),1)))))
Retrouvez d'autres exemples avec la fonction SEQUENCE dans cette section ou sur le site de Microsoft
MOHAMED SAID
30/03/2024 @ 05:15
Bonjour,
je cherche à extraire "99D100" dans une cellule qui contient ces caractères suivants: 99D100 N.PATROL et dans la cellule qui suit le caracteres est inversé N.PATROL 99D100 je cherche à extraire uniquement "99D100"
Meilleures salutations
Frédéric LE GUEN
30/03/2024 @ 05:59
Bonjour,
Ho ça c'est facile. Vous pouvez y arriver avec le remplissage instantané sans avoir à faire de formule ou bien utiliser la fonction GAUCHE.
Guillaume
27/03/2024 @ 21:00
Bonjour,
Fonctionnalité intéressante, mais comme je le pensais ça ne résout pas mon problème, même si je pense qu'on s'en approche!
Petit challenge!
Peut-être auriez vous une idée? Ou tout simplement la confirmation que ce n'est pas faisable du tout?
La suite de caractère dont j'ai besoin d'extraire les nombre est une phrase du type: "Démarrage le 27/03/2024 20:01" contenue dans une cellule qu'on appellera A1.
Je ne vais pas mettre la formule complète ici, mais la partie de la formule qui permet d'afficher ce résultat texte + date (figée) dans A1, est comme suit: "Démarrage le "&TEXTE(MAINTENANT();"jj/mm/aa hh:mm") . C'est inclus dans plusieurs fonctions SI imbriquées, le but de la formule complète étant d'afficher automatiquement l'horodatage (fonction =maintenant) du moment ou une cellule A2 a été mise à jour selon une donnée spécifique, mais en faisant en sorte que l'horodatage contenu dans la phrase dans A1 se rafraîchisse uniquement quand A2 est mise à jour (sinon par défaut la fonction =maintenant se rafraîchi à chaque fois qu'on fait quoi que ce soit sur le classeur, ce qui ne m'intéresse pas, j'ai dû trouver une parade à ça).
ça marche très bien, cependant maintenant j'ai également besoin de récupérer la date contenue dans A1 pour m'en servir de valeur pour un autre calcul (disons dans A3), qui vise à estimer la date de fin de l'opération. C'est très facile, mais mon problème c'est qu'avec le tuto que vous proposez:
- j'arrive à extraire les chiffres, mais sous la forme 270320242001. Excel ne peut pas interpréter ça, comme ce n'est pas le n° de série de la date.
- même si j'avais une solution pour garder les "/" et les ":" du format date, je suis quasi sûr qu'Excel ne saurait toujours pas interpréter ça comme une date.
Il faudrait que je puisses extraire le résultat de la fonction =maintenant directement sous sa forme numérique basique initiale, mais comme dans ma cellule A1 c'est déjà converti au format date + heure pour s'afficher en utilisant une fonction &texte, je commence à me dire que je vais devoir faire autrement et que je ne peux pas extraire ça malheureusement...
En fait il faudrait que je puisse faire quelque chose de similaire à quand on fait une référence à une autre cellule (mettre juste =A1 dans A2 par exemple) pour en copier basiquement le contenu, mais avec le résultat de la fonction =maintenant contenu dans A1. Mais je doute que ça soit possible, ou si ça l'est je ne vois pas comment...
Peut-être qu'il est possible d'extraire cette partie en utilisant une fonction gauche? Mais avec la fonction maintenant convertie au format texte, ça risque de poser de nouveau le même problème non?
Je sèche.
Merci d'avance si vous avez une idée!
Guillaume
28/03/2024 @ 13:48
Finalement j'ai retenté avec une fonction =DROITE pour extraire juste mon horodatage sans plus de précisions à tout hasard, et ça fonctionne!
Contrairement à ce que je pensais il semble qu'Excel considère bien ma date comme une date dans ce cas, et non comme un résultat au format texte.
Plus besoin de se prendre la tête donc.
Frédéric LE GUEN
28/03/2024 @ 14:31
Tout est facile avec Excel ????????
NEROU
22/08/2023 @ 07:28
C'était si simple avant avec cnum ()
Frédéric LE GUEN
25/08/2023 @ 11:06
Non, CNUM converti un texte en nombre (si le contenu est numérique). Là j'explique comment extraire les nombres d'une chaine de caractères qui ont à la fois Texte et Nombre
Max
08/08/2023 @ 15:25
Bonjour,
Est il possible de garder uniquement un nombre de 10 caractères minimum et non une suite de chiffres ?
Exemple :
‘am-23557569000 rf08-08-3
Réponse attendue : 23557569000
Ou alors séparer les nombres par des ;
Exemple :
‘am-23557569000 rf08-08-3
Réponse attendue : 23557569000;08;08
Merci par avance
Hamza JAOUAD
10/08/2023 @ 15:39
Vous pouvez juste rajouter un gauche((la fonction donnée);10)
Frédéric LE GUEN
30/03/2024 @ 06:02
Bonjour,
Désolé pour la réponse tardive. Je pense qu'il faut faire le découpage en plusieurs étapes et ensuite regrouper en une seule cellule. C'est le plus simple
Christophe
12/07/2023 @ 21:05
Bonjour,
Vos tutos sont excel, un peu de pommade ça fait du bien.
Une fois extrait, j'aurais voulu faire une somme de ces nombres, cependant ça donne un résultat de 0. Qu'est ce que j'ai raté ??
Frédéric LE GUEN
14/07/2023 @ 04:33
C'est parce que le résultat est toujours considéré comme du texte. Il faut mettre l'ensemble de la formule dans la fonction N(votre formule)
Mehdi M
08/06/2023 @ 15:35
bonjour, il me semble comme si cette formule Excel =STXT(B2;SEQUENCE(;NBCAR(B2));1) ne soit pas compatible avec Sheets de Google bien que traduite au langage Sheets
=MID(B2;SEQUENCE(1;LEN(B2));1)
pouvez vous me donner la bonne formule sur Sheet's
Merci d avance
EMBAREK ATTOUI
21/05/2023 @ 16:41
JE CHERCHE À EXTRAIRE 6 DE 6HRS. QUELLE FONCTION FERAIT L'AFFAIRE? MERCI
Frédéric LE GUEN
25/05/2023 @ 06:25
Utilisez l'outil Remplacer (Ctrl + H) pour retirer les lettres que vous ne voulez pas conserver
T Nervil
16/05/2023 @ 13:45
Bonjour, merci beaucoup pour votre guide,
savez vous s'il est possible d'isoler les chiffres ET le séparateur des décimales (point ou virgule) qui se trouve dans la suite de chiffres ? Je n'arrive qu'à obtenir une suite de chiffres mais en perdant l'information de la délimitation des décimales.
Par avance merci
Frédéric LE GUEN
19/05/2023 @ 11:15
Bonjour, là je ne comprends pas le problème. Vous avez un exemple concret ?
M. Stak
05/05/2023 @ 09:43
PEUT ON VOIR UN FICHIER EXCEL AVEC LA FORMULE
Frédéric LE GUEN
05/05/2023 @ 12:07
Il suffit de recopier la formule. Pas besoin de fichier pour ça.
Moi
19/04/2023 @ 13:50
Pour ceux qui utilisent un Excel Français en France, pensez à remplacer les "," par des ";" dans les formules...
niass
20/01/2023 @ 12:50
Bonjour,
je cherche à extraire "YQ -13000,00". les éléments de la cellule sont séparés par des ";".
DF -5000,00;HP -2800,00;KQ -3000,00;YQ -13000,00;ZE -5000,00;VH -0,00;
Frédéric LE GUEN
12/05/2023 @ 01:13
La fonction TEXTE.AVANT fait ce travail sans problème
niass
20/01/2023 @ 12:47
Bonjour,
je cherche à extraire "YQ -13000" dans une cellule qui contient ces caractèressuivants:
DF -5000,00;HP -2800,00;KQ -3000,00;YQ -13000,00;ZE -5000,00;VH -0,00;
Frédéric LE GUEN
20/01/2023 @ 13:48
Il faut soit utiliser le remplissage instantané, ou utiliser la fonction FRACTIONNER.TEXTE
Chantriaux
18/09/2022 @ 08:18
Bonjour,
Je cherche à trouver dans une liste de 100 à 200 combien y à t'il de 2
Je vous en remercie par avance
Excellemment votre
Didier.chantriaux@gmail.com
Dayan
31/05/2022 @ 14:18
Bonjour,
Je voudrais extraire le chiffre 030 de ma cellule suivante
GP-030-010-080-001 goupille piton. Auriez-vous la formule qui permet de le faire svp.
Meilleures salutations
Frédéric LE GUEN
31/05/2022 @ 15:25
Oui, avec la fonction CHERCHE et en le combinant avec la fonction GAUCHE
Jeremy MEREMANS
01/02/2022 @ 22:50
Bonjour J'ai utilisé la fonction Filtre et celle-ci fonctionne a l'exception d'une cellule ou il y a beaucoup de caractère et celle-ci n'affiche pas le résultat .
Pouvez-vous me conceiller
Frédéric LE GUEN
11/02/2022 @ 16:59
Je crois que la fonction FILTRE est limitée à 256 caractères