Développer un Outil de Profilage de Données Personnalisé, Excel VBA
Qu’est-ce que le Profilage de Données ?
Le profilage de données consiste à examiner les données disponibles dans une source de données (par exemple, une feuille Excel) et à résumer ses caractéristiques. L’objectif est de comprendre la structure, la qualité et le contenu des données. Les tâches courantes dans le profilage de données incluent la vérification des valeurs manquantes, des doublons, des types de données, des statistiques de base (minimum, maximum, moyenne) et l’identification des valeurs inhabituelles ou des anomalies.
Objectif
Nous allons créer un outil de profilage de données personnalisé dans Excel en utilisant VBA. Cet outil va :
1. Analyser les données dans une feuille Excel.
2. Identifier les métriques courantes du profilage des données, telles que :
- Valeurs manquantes ou vides
- Doublons
- Incohérences de type de données
- Statistiques de base (ex. : Min, Max, Moyenne, Comptage)
3. Présenter les résultats dans une nouvelle feuille pour une revue facile.
Code VBA pour l’Outil de Profilage de Données
Étape 1 : Créer un Nouveau Module VBA
Pour commencer, appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. Ensuite, allez dans Insertion > Module pour créer un nouveau module.
Étape 2 : Écrire le Code du Profilage
Collez le code suivant dans le module.
Sub ProfilageDonnees() Dim ws As Worksheet Dim feuilleProfilage As Worksheet Dim plage As Range Dim nbLignes As Long Dim nbColonnes As Long Dim indexColonne As Integer Dim cellule As Range Dim dictionnaireDonnees As Object Dim valeur As Variant Dim compteVide As Long Dim compteDoublon As Long Dim minVal As Variant Dim maxVal As Variant Dim moyVal As Double Dim compteVal As Long Dim msgErreur As String ' Initialiser le dictionnaire pour suivre les données des colonnes Set dictionnaireDonnees = CreateObject("Scripting.Dictionary") ' Demander à l'utilisateur de sélectionner la feuille à profiler On Error Resume Next Set ws = Application.InputBox("Sélectionnez une feuille à profiler :", Type:=8) On Error GoTo 0 ' Vérifier si une feuille a été sélectionnée If ws Is Nothing Then MsgBox "Aucune feuille sélectionnée. Fin de l'outil de profilage.", vbExclamation Exit Sub End If ' Créer une nouvelle feuille pour afficher les résultats du profilage Set feuilleProfilage = ThisWorkbook.Sheets.Add feuilleProfilage.Name = "Profilage Données" ' Écrire l'en-tête dans la feuille de profilage feuilleProfilage.Cells(1, 1).Value = "Nom de la Colonne" feuilleProfilage.Cells(1, 2).Value = "Valeurs Manquantes" feuilleProfilage.Cells(1, 3).Value = "Valeurs Doublons" feuilleProfilage.Cells(1, 4).Value = "Valeur Min" feuilleProfilage.Cells(1, 5).Value = "Valeur Max" feuilleProfilage.Cells(1, 6).Value = "Valeur Moyenne" feuilleProfilage.Cells(1, 7).Value = "Nombre de Valeurs" ' Récupérer la plage de données (cellules non vides) Set plage = ws.UsedRange nbLignes = plage.Rows.Count nbColonnes = plage.Columns.Count ' Boucler à travers chaque colonne pour collecter les données de profilage For indexColonne = 1 To nbColonnes compteVide = 0 compteDoublon = 0 minVal = "" maxVal = "" moyVal = 0 compteVal = 0 ' Initialiser le dictionnaire pour suivre les doublons Set dictionnaireDonnees = CreateObject("Scripting.Dictionary") ' Boucler à travers chaque ligne de la colonne For Each cellule In plage.Columns(indexColonne).Cells ' Vérifier les valeurs manquantes (cellules vides) If IsEmpty(cellule.Value) Then compteVide = compteVide + 1 Else ' Suivre les valeurs pour les doublons If dictionnaireDonnees.Exists(cellule.Value) Then compteDoublon = compteDoublon + 1 Else dictionnaireDonnees.Add cellule.Value, Nothing End If ' Suivre les min, max et moyenne pour les données numériques If IsNumeric(cellule.Value) Then If minVal = "" Or cellule.Value < minVal Then minVal = cellule.Value If maxVal = "" Or cellule.Value > maxVal Then maxVal = cellule.Value moyVal = moyVal + cellule.Value compteVal = compteVal + 1 End If End If Next cellule ' Calculer la moyenne si des valeurs numériques existent If compteVal > 0 Then moyVal = moyVal / compteVal ' Afficher les résultats du profilage dans la feuille feuilleProfilage.Cells(indexColonne + 1, 1).Value = plage.Cells(1, indexColonne).Value feuilleProfilage.Cells(indexColonne + 1, 2).Value = compteVide feuilleProfilage.Cells(indexColonne + 1, 3).Value = compteDoublon feuilleProfilage.Cells(indexColonne + 1, 4).Value = minVal feuilleProfilage.Cells(indexColonne + 1, 5).Value = maxVal feuilleProfilage.Cells(indexColonne + 1, 6).Value = moyVal feuilleProfilage.Cells(indexColonne + 1, 7).Value = compteVal Next indexColonne ' Ajuster automatiquement la largeur des colonnes pour une meilleure lisibilité feuilleProfilage.Columns("A:G").AutoFit ' Informer l'utilisateur que le profilage est terminé MsgBox "Profilage des données terminé ! Consultez la feuille 'Profilage Données' pour les résultats.", vbInformation End Sub
Explication du Code
1. Création de la Feuille de Profilage
- Le code commence par demander à l’utilisateur de sélectionner la feuille à profiler via une boîte de saisie. Si aucune feuille n’est sélectionnée, le programme s’arrête.
- Une nouvelle feuille « Profilage Données » est ensuite créée pour afficher les résultats du profilage.
2. Profilage de Chaque Colonne
- Le code parcourt chaque colonne de la feuille sélectionnée et vérifie les éléments suivants :
- Valeurs manquantes (cellules vides) : cela est effectué en utilisant IsEmpty(cellule.Value).
- Doublons : Un dictionnaire (dictionnaireDonnees) est utilisé pour suivre les valeurs déjà rencontrées.
- Analyse numérique (seulement pour les données numériques) : Il calcule la valeur minimale, la valeur maximale, la moyenne ainsi que le nombre de valeurs numériques.
3. Écriture des Résultats du Profilage
- Les résultats pour chaque colonne sont écrits dans la nouvelle feuille « Profilage Données ». Les données incluent :
- Le nom de la colonne
- Le nombre de valeurs manquantes
- Le nombre de doublons
- La valeur minimale
- La valeur maximale
- La moyenne
- Le nombre de valeurs
4. Formatage et Finalisation
- Une fois le profilage terminé, les colonnes de la feuille « Profilage Données » sont ajustées automatiquement pour être plus lisibles.
- Enfin, une boîte de message informe l’utilisateur que le profilage est terminé.
Comment Utiliser l’Outil
1. Ouvrez Excel et appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
2. Insérez un nouveau module (Insertion > Module).
3. Collez le code fourni dans le module.
4. Appuyez sur F5 ou exécutez la macro ProfilageDonnees pour démarrer le profilage.
5. Suivez les invites et sélectionnez la feuille à analyser.
6. Consultez la feuille « Profilage Données » pour les résultats.
Améliorations et Personnalisation
- Statistiques supplémentaires : Vous pouvez ajouter des mesures statistiques plus avancées, comme l’écart type, la médiane ou le mode.
- Vérification du type de données : La version actuelle vérifie uniquement les données numériques. Vous pouvez l’étendre pour vérifier les dates ou les motifs de texte (par exemple, à l’aide d’expressions régulières pour les adresses e-mail ou les numéros de téléphone).
- Visualisation des Données : Vous pouvez créer des graphiques ou utiliser une mise en forme conditionnelle pour mettre en évidence les données problématiques (par exemple, un pourcentage élevé de valeurs manquantes ou de doublons).
Cet outil vous permettra de profiler vos données dans Excel et peut être facilement personnalisé pour répondre à des besoins spécifiques.