Extraire uniquement les chiffres d’une cellule contenant du texte et des nombres mélangés est une tâche courante dans le traitement des données. Voici plusieurs méthodes pour y parvenir.
Excel ne fournit pas de fonction native spécifique pour extraire uniquement les chiffres, mais vous pouvez combiner plusieurs fonctions pour atteindre cet objectif.
=CONCATENER(SI(ESTNUM(DROITE(A1;1));DROITE(A1;1);""))
Formule avancée avec tableau matriciel : =CONCATENER(SI(ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1));STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1);""))
Explication :
STXT
: Extrait un caractère spécifique dans la chaîne.ESTNUM
: Vérifie si le caractère est un nombre.NBCAR
: Compte le nombre total de caractères.CONCATENER
: Assemble les chiffres extraits en une seule chaîne.Si vous travaillez avec de grandes quantités de données ou si vous avez besoin d’une solution flexible, une macro VBA est idéale.
Function ExtraireChiffres(Texte As String) As String
Dim i As Integer
Dim Resultat As String
Resultat = ""
For i = 1 To Len(Texte)
If Mid(Texte, i, 1) Like "[0-9]" Then
Resultat = Resultat & Mid(Texte, i, 1)
End If
Next i
ExtraireChiffres = Resultat
End Function
=ExtraireChiffres(A1)
Exemple :
abc123de4
, la formule renverra 1234
.Power Query est idéal pour le nettoyage de données complexes.
Text.Select([Colonne], {"0".."9"})
Si vous travaillez avec des scripts externes ou des outils intégrés comme Python (avec Excel), vous pouvez utiliser une expression régulière pour extraire les chiffres.
import pandas as pd
# Exemple de données
data = {"Colonne": ["abc123", "456xyz", "78&90"]}
df = pd.DataFrame(data)
# Extraire les chiffres
df["Chiffres"] = df["Colonne"].str.extract("(\d+)", expand=False)
print(df)
Si les chiffres sont séparés dans la cellule, utilisez TEXTE
et EXTRAIRE
pour isoler les blocs numériques.
Formule pour extraire un nombre à une position précise :
=SI(ESTNUM(STXT(A1;1;1));STXT(A1;1;1);"")
ABC1234DEF
1234
.$123.45ABC
12345
.(123) 456-7890
1234567890
.Ces méthodes vous permettront d’extraire efficacement les chiffres de vos cellules Excel selon vos besoins.
Dans des cas où vos données nécessitent à la fois une extraction et une transformation (comme reformater les données après extraction), vous pouvez imbriquer les méthodes précédentes avec d’autres fonctions Excel ou Power Query.
Les numéros de téléphone peuvent contenir des espaces, des parenthèses ou des tirets. Voici comment extraire les chiffres et reformater le résultat.
Données source :
(123) 456-7890
Formule Excel :
=CONCATENER("(",STXT(A1;1;3),") ",STXT(A1;4;3),"-",STXT(A1;7;4))
VBA pour automatisation :
Function ExtraireNumTel(Texte As String) As String
Dim i As Integer
Dim Chiffres As String
Dim FormatTel As String
Chiffres = ""
' Extraire uniquement les chiffres
For i = 1 To Len(Texte)
If Mid(Texte, i, 1) Like "[0-9]" Then
Chiffres = Chiffres & Mid(Texte, i, 1)
End If
Next i
' Ajouter le format standard (XXX) XXX-XXXX
If Len(Chiffres) = 10 Then
FormatTel = "(" & Left(Chiffres, 3) & ") " & Mid(Chiffres, 4, 3) & "-" & Right(Chiffres, 4)
Else
FormatTel = Chiffres ' Si le format est incorrect, afficher les chiffres
End If
ExtraireNumTel = FormatTel
End Function
Utilisez la fonction dans une cellule :
=ExtraireNumTel(A1)
Résultat formaté :
(123) 456-7890
Si vos données contiennent plusieurs blocs de chiffres séparés, utilisez Power Query pour extraire chaque bloc séparément.
Données source :
Code: 123, ID: 456, Value: 789
Étapes dans Power Query :
:
, ,
ou espace
).Text.Select
pour extraire uniquement les chiffres dans chaque colonne.Résultat :
123
456
789
Données source :
Order1234Status5678
VBA Exemple :
Function ExtraireAprèsMotClé(Texte As String, MotClé As String) As String
Dim Position As Integer
Dim i As Integer
Dim Resultat As String
Resultat = ""
' Trouver la position du mot-clé
Position = InStr(1, Texte, MotClé, vbTextCompare)
If Position > 0 Then
' Extraire les chiffres après le mot-clé
For i = Position + Len(MotClé) To Len(Texte)
If Mid(Texte, i, 1) Like "[0-9]" Then
Resultat = Resultat & Mid(Texte, i, 1)
Else
Exit For ' Arrêter si un caractère non numérique est rencontré
End If
Next i
End If
ExtraireAprèsMotClé = Resultat
End Function
Utilisez cette fonction dans Excel pour extraire les chiffres après un mot-clé spécifique :
=ExtraireAprèsMotClé(A1, "Order")
Résultat :
1234
SUPPRESPACE
Après avoir extrait les chiffres, supprimez les espaces inutiles :
=SUPPRESPACE(A1)
Pour vérifier que seules des valeurs numériques sont extraites, utilisez une mise en forme conditionnelle :
=ESTNUM(A1)
Méthode | Complexité | Idéal pour |
---|---|---|
Formule Excel (SUBSTITUE , GAUCHE ) | Facile | Petits ensembles de données |
Macro VBA | Moyenne | Automatisation répétée sur de grands ensembles |
Power Query | Avancée | Nettoyage et transformation en masse |
Script Python | Avancée | Analyses complexes et externes |
Voici une série d’exercices conçus pour perfectionner vos compétences Excel. Les corrigés sont inclus pour…
Excel offre plusieurs méthodes pour calculer une moyenne tout en tenant compte des filtres ou…
Excel propose plusieurs fonctions pour insérer ou manipuler la date actuelle. Voici les principales méthodes…
Lorsque des nombres sont stockés sous forme de texte dans Excel, ils ne peuvent pas…
Pour supprimer plusieurs caractères spécifiques (par exemple, des symboles, chiffres ou lettres indésirables) dans des…
Excel permet de calculer différents types d'écarts selon le contexte, que ce soit pour des…
This website uses cookies.