Implémenter une solution de profilage de données personnalisée, Excel VBA
Voici un guide étape par étape pour implémenter une solution de profilage de données personnalisée avec VBA.
Étape 1 : Préparation des données
Avant de commencer à écrire du code VBA, assurez-vous que les données que vous souhaitez analyser sont bien préparées. Les données doivent être structurées de manière à être faciles à traiter.
1. Organisation des données :
- Les données doivent être organisées en colonnes avec des en-têtes. Chaque colonne représente une variable ou un champ, et chaque ligne représente une observation ou un enregistrement.
- Assurez-vous qu’il n’y a pas de cellules fusionnées, car cela pourrait interférer avec le traitement des données.
- Nettoyez les données : supprimez ou gérez les valeurs manquantes, les valeurs aberrantes et les doublons.
2. Chargement des données dans Excel :
- Vos données peuvent provenir de diverses sources comme des fichiers CSV, des bases de données ou d’autres classeurs Excel. Assurez-vous que les données sont correctement importées dans Excel pour être traitées.
- Cela peut être fait manuellement ou via des fonctions Excel comme Obtenir et Transformer (Power Query) pour charger des données depuis des sources externes.
Étape 2 : Ouvrir Excel et accéder à l’éditeur VBA
Pour écrire et exécuter le code VBA, vous devez d’abord accéder à l’éditeur VBA dans Excel :
1. Ouvrir Excel :
- Lancez Excel et ouvrez le classeur contenant les données que vous souhaitez profiler.
2. Accéder à l’éditeur VBA :
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. C’est là que vous écrirez votre code personnalisé pour effectuer les tâches de profilage des données.
- Dans l’éditeur VBA, vous pouvez créer un nouveau module pour y placer votre code. Pour ce faire, faites un clic droit sur « VBAProject (NomDeVotreClasseur) » dans le panneau de gauche, sélectionnez Insérer puis Module.
Étape 3 : Écrire le code VBA
Maintenant que vous êtes dans l’éditeur VBA, vous pouvez commencer à écrire le code pour votre solution de profilage des données. Voici un exemple de structure de code pour le profilage des données.
Que fera le code ?
- Il générera un résumé des données.
- Il comptera le nombre total de lignes et de colonnes.
- Il vérifiera les valeurs manquantes.
- Il fournira des statistiques de base pour les colonnes numériques telles que la moyenne, le minimum, le maximum et l’écart-type.
- Il affichera les résultats dans une nouvelle feuille de calcul.
Exemple de code VBA :
Sub ProfilageDesDonnées() Dim ws As Worksheet Dim resultWs As Worksheet Dim lastRow As Long, lastCol As Long Dim i As Long, j As Long Dim totalRows As Long, totalCols As Long Dim cell As Range Dim isEmpty As Boolean Dim sum As Double, count As Long Dim minVal As Double, maxVal As Double, avg As Double, stdDev As Double ' Définir la feuille de calcul contenant les données Set ws = ThisWorkbook.Sheets("Data") ' Remplacez par le nom de votre feuille lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' Créer une nouvelle feuille pour les résultats Set resultWs = ThisWorkbook.Sheets.Add resultWs.Name = "Résultats Profilage" ' Ajouter les en-têtes pour le rapport de profilage resultWs.Cells(1, 1).Value = "Colonne" resultWs.Cells(1, 2).Value = "Total des lignes" resultWs.Cells(1, 3).Value = "Valeurs manquantes" resultWs.Cells(1, 4).Value = "Valeur minimale" resultWs.Cells(1, 5).Value = "Valeur maximale" resultWs.Cells(1, 6).Value = "Moyenne" resultWs.Cells(1, 7).Value = "Écart-type" ' Parcourir chaque colonne For j = 1 To lastCol totalRows = lastRow - 1 ' Exclure la ligne des en-têtes count = 0 sum = 0 minVal = 1E+30 ' Grande valeur initiale maxVal = -1E+30 ' Petite valeur initiale isEmpty = False ' Parcourir chaque ligne de la colonne actuelle For i = 2 To lastRow ' Commencer à partir de la ligne 2 (en supposant que la ligne 1 contient les en-têtes) Set cell = ws.Cells(i, j) ' Vérifier les valeurs vides ou manquantes If IsEmpty(cell.Value) Or IsError(cell.Value) Then count = count + 1 isEmpty = True Else ' Collecter les données pour les colonnes numériques If IsNumeric(cell.Value) Then sum = sum + cell.Value If cell.Value < minVal Then minVal = cell.Value If cell.Value > maxVal Then maxVal = cell.Value End If End If Next i ' Calculer les statistiques si des données sont présentes dans la colonne If Not isEmpty Then avg = sum / (totalRows - count) stdDev = Application.WorksheetFunction.StDev(ws.Range(ws.Cells(2, j), ws.Cells(lastRow, j))) Else avg = "N/A" stdDev = "N/A" End If ' Écrire les résultats du profilage dans la feuille des résultats resultWs.Cells(j + 1, 1).Value = ws.Cells(1, j).Value resultWs.Cells(j + 1, 2).Value = totalRows resultWs.Cells(j + 1, 3).Value = count resultWs.Cells(j + 1, 4).Value = minVal resultWs.Cells(j + 1, 5).Value = maxVal resultWs.Cells(j + 1, 6).Value = avg resultWs.Cells(j + 1, 7).Value = stdDev Next j ' Ajuster automatiquement la largeur des colonnes pour une meilleure visibilité resultWs.Columns("A:G").AutoFit MsgBox "Le profilage des données est terminé ! Les résultats sont dans la feuille 'Résultats Profilage'." End Sub
Explication du Code :
- Définir ws et resultWs : Ces variables représentent la feuille contenant les données d’origine et une nouvelle feuille où les résultats du profilage seront stockés.
- lastRow et lastCol : Ces variables déterminent la taille des données (nombre de lignes et de colonnes) à traiter.
- Parcourir chaque colonne : Le code parcourt chaque colonne pour calculer des statistiques comme les valeurs manquantes, le minimum, le maximum, la moyenne et l’écart-type.
- Valeurs manquantes : Le code vérifie si une cellule est vide ou contient une erreur en utilisant IsEmpty(cell.Value) ou IsError(cell.Value).
- Analyse numérique : Pour les données numériques, le code calcule la somme, la moyenne, le minimum et le maximum. Il utilise la fonction Excel StDev pour calculer l’écart-type.
- Sortie : Après le traitement de toutes les colonnes, les résultats sont affichés dans une nouvelle feuille. Les colonnes sont redimensionnées automatiquement pour une meilleure lisibilité.
Étape 4 : Exécuter le Code
Pour exécuter le code, suivez ces étapes :
1. Enregistrez votre classeur avec les macros activées (au format .xlsm).
2. Appuyez sur Alt + F8 pour ouvrir la boîte de dialogue des macros.
3. Sélectionnez la macro ProfilageDesDonnées et cliquez sur « Exécuter ».
Résultat :
Le résultat du code sera affiché dans une nouvelle feuille intitulée « Résultats Profilage ». Cette feuille contiendra les informations suivantes :
- Colonne : Le nom de la colonne des données analysées.
- Total des lignes : Le nombre de lignes de données (hors ligne d’en-têtes).
- Valeurs manquantes : Le nombre de valeurs manquantes ou vides dans la colonne.
- Valeur minimale : La valeur numérique la plus petite de la colonne.
- Valeur maximale : La valeur numérique la plus grande de la colonne.
- Moyenne : La moyenne des valeurs numériques dans la colonne.
- Écart-type : L’écart-type des valeurs numériques dans la colonne.
Conclusion :
En suivant les étapes ci-dessus, vous pouvez facilement créer une solution personnalisée de profilage de données en utilisant VBA dans Excel. Ce processus vous permet d’analyser rapidement de grands ensembles de données et de générer des informations statistiques utiles, améliorant ainsi l’évaluation de la qualité des données et la préparation à des analyses plus approfondies.