Comment extraire les chiffres d’une cellule dans Excel
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.
1. Utiliser une formule avec une colonne auxiliaire
Excel ne fournit pas de fonction native spécifique pour extraire uniquement les chiffres, mais vous pouvez combiner plusieurs fonctions pour atteindre cet objectif.
Formule avec des fonctions Excel :
- Si vos données se trouvent dans la colonne A (exemple : cellule A1), utilisez cette formule dans une colonne vide (par exemple, B1) : Formule simple :
=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);""))
- Appuyez sur Ctrl + Shift + Entrée après avoir saisi la formule pour qu’elle fonctionne comme une formule matricielle.
- Étirez la formule vers le bas pour appliquer à toutes les lignes.
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.
2. Utiliser une macro VBA pour extraire les chiffres
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.
Code VBA :
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
Étapes :
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Cliquez sur Insertion > Module.
- Collez le code ci-dessus.
- Fermez l’éditeur et retournez dans Excel.
- Dans une cellule vide, utilisez la fonction personnalisée comme suit :
=ExtraireChiffres(A1)
Exemple :
- Si la cellule A1 contient
abc123de4
, la formule renverra1234
.
3. Utiliser Power Query pour extraire les chiffres
Power Query est idéal pour le nettoyage de données complexes.
Étapes :
- Sélectionnez vos données, allez dans Données > Obtenir et transformer les données > Depuis une table/plage.
- Dans l’éditeur Power Query :
- Ajoutez une colonne personnalisée :
Text.Select([Colonne], {"0".."9"})
- Cela extrait uniquement les chiffres de la chaîne.
- Ajoutez une colonne personnalisée :
- Cliquez sur Fermer et charger pour importer les données nettoyées dans Excel.
4. Utiliser un script Python (facultatif)
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.
Exemple de code Python :
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)
5. Utiliser des fonctions combinées pour des cas spécifiques
Exemple : Extraire les nombres séparés
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);"")
Cas pratiques
- Nettoyer des identifiants :
- Cellule :
ABC1234DEF
- Résultat :
1234
.
- Cellule :
- Extraire des montants dans des cellules mélangées :
- Cellule :
$123.45ABC
- Résultat :
12345
.
- Cellule :
- Analyser des données téléphoniques :
- Cellule :
(123) 456-7890
- Résultat :
1234567890
.
- Cellule :
Conseils
- Vérifiez vos données sources : Assurez-vous que les cellules contiennent des caractères valides.
- Combinez plusieurs méthodes : Par exemple, utilisez Power Query pour des données volumineuses et des formules Excel pour des opérations rapides.
- Testez les macros VBA sur des copies de vos données pour éviter les erreurs.
Ces méthodes vous permettront d’extraire efficacement les chiffres de vos cellules Excel selon vos besoins.
Suite : Cas pratiques et Méthodes Avancées pour Extraire les Chiffres dans Excel
6. Combiner l’extraction avec d’autres transformations
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.
Cas pratiques avancés
Cas 1 : Extraire et formater des numéros de téléphone
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
Cas 2 : Extraire plusieurs blocs numériques
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 :
- Chargez les données dans Power Query.
- Séparez les colonnes par délimiteur (ex.
:
,,
ouespace
). - Utilisez
Text.Select
pour extraire uniquement les chiffres dans chaque colonne. - Combinez les résultats dans une seule colonne ou gardez-les séparés.
Résultat :
- Bloc 1 :
123
- Bloc 2 :
456
- Bloc 3 :
789
7. Gérer des cas spécifiques avec Power Query ou VBA
Extraire uniquement les chiffres après un mot-clé spécifique
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
8. Nettoyage et vérification des résultats
Nettoyage avec SUPPRESPACE
Après avoir extrait les chiffres, supprimez les espaces inutiles :
=SUPPRESPACE(A1)
Validation avec des règles
Pour vérifier que seules des valeurs numériques sont extraites, utilisez une mise en forme conditionnelle :
- Sélectionnez la plage des résultats.
- Allez dans Mise en forme conditionnelle > Nouvelle règle.
- Utilisez la formule suivante :
=ESTNUM(A1)
- Appliquez une mise en surbrillance pour identifier les cellules non valides.
9. Astuces pour optimiser l’extraction
- Travaillez par lots : Si vos données sont volumineuses, utilisez Power Query pour des performances optimales.
- Utilisez des colonnes auxiliaires : Cela facilite la révision et le nettoyage des données.
- Testez vos solutions : Essayez d’abord sur un échantillon pour éviter des erreurs sur l’ensemble des données.
Résumé des méthodes : Choisissez selon vos besoins
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 |