Nettoyage des données
DébutantUnité 4 sur 7 de la formation Formation : Analyse de données : SQL, visualisation et tableaux de bord
Ce que tu vas apprendre
- Explique ce qui rend les données fiables, reconnais les types courants de données sales et examine systématiquement un jeu de données pour dresser la liste de ses problèmes avant toute modification.
- Explique l’intégrité des données et les types de données salesDécris ce que signifie l’intégrité des données, ce qui peut y nuire et les principaux types de données sales qu’un analyste doit repérer et corriger.
- Effectue le profilage d’un jeu de données pour repérer ses problèmesExamine un nouveau jeu de données à l’aide de tris, de filtres, de décomptes et de synthèses simples dans un tableur et en SQL, puis transforme tes observations en une liste de problèmes à corriger.
- Contrôle les saisies à l’aide des règles de validationDéfinis les règles que les données valides doivent respecter, vérifie les données existantes dans un tableur et en SQL, puis utilise la validation des données pour empêcher les saisies invalides à leur source.
- Explique l’intégrité des données et les types de données sales
- Repère les enregistrements présents plusieurs fois et décide lesquels conserver, puis repère, interprète et traite les valeurs manquantes afin que les totaux, les décomptes et les moyennes restent fidèles aux données.
- Repère et supprime les enregistrements en doubleDétermine ce qui rend un enregistrement unique, repère les doublons exacts et les quasi-doublons avec les fonctions de tableur, les outils intégrés et SQL, puis supprime-les sans perdre de données réelles.
- Repère les valeurs manquantes et observe comment les outils les comptentReconnais les différentes formes de données manquantes, vérifie correctement leur présence dans les tableurs et en SQL, et comprends comment les fonctions et les agrégats traitent les cellules vides, les zéros et NULL.
- Décide comment traiter les valeurs manquantesChoisis de récupérer, de supprimer, de remplacer, de signaler ou de laisser les valeurs manquantes, applique ce choix avec des formules de tableur et du SQL, puis évalue son effet sur les résultats.
- Repère et supprime les enregistrements en double
- Donne la même apparence aux valeurs qui ont le même sens : nettoie et restructure le texte, utilise un format unique pour les dates, les nombres et les unités, et convertis les valeurs dans le type de données nécessaire à l’analyse.
- Nettoie et standardise les valeurs textuellesSupprime les espaces superflues et les caractères masqués, uniformise la casse et remplace les variantes d’écriture par une valeur standard, dans les tableurs et en SQL.
- Fractionne et combine du texte, et extrais-en des partiesPlace chaque information dans sa propre colonne en fractionnant le texte à un séparateur ou en extrayant des caractères selon leur position, et construis des valeurs combinées lorsque c’est nécessaire.
- Utilise des formats cohérents pour les dates, les nombres et les unitésReconnais les conventions de date et de nombre dans un jeu de données, distingue le format d’affichage de la valeur stockée et convertis les unités mélangées pour que chaque valeur d’une colonne ait le même sens.
- Convertis les valeurs dans le type de données appropriéReconnais les valeurs stockées dans le mauvais type de données, convertis du texte en nombres et en dates dans les tableurs et avec CAST en SQL, conserve les identifiants sous forme de texte et repère les valeurs dont la conversion échoue.
- Nettoie et standardise les valeurs textuelles
- Combine les techniques de nettoyage dans une procédure sûre et reproductible : colonnes auxiliaires et outils intégrés dans un tableur, et requête de nettoyage en SQL, en utilisant l’outil adapté aux données.
- Applique une procédure de nettoyage dans un tableurPrépare une copie de travail sûre, applique les étapes de nettoyage dans un ordre logique avec des colonnes auxiliaires, des recherches et des outils intégrés, puis transforme les résultats vérifiés en tableau propre.
- Écris une requête SQL qui renvoie des données propresConstruis une requête SELECT qui nettoie les colonnes avec des fonctions, CASE et COALESCE, filtre ou marque les lignes invalides, puis enregistre-la pour pouvoir répéter le nettoyage, tout en sachant quand il convient de modifier les données stockées.
- Applique une procédure de nettoyage dans un tableur
- Consigne chaque étape du nettoyage pour que d’autres puissent la suivre et la répéter, puis vérifie que les données nettoyées sont correctes et complètes et présente les modifications et les limites restantes.
- Consigne chaque étape du nettoyageRédige un journal des modifications et des commentaires qui indiquent ce qui a changé, pourquoi, comment et avec quel effet, afin que le nettoyage puisse être vérifié, répété et expliqué.
- Vérifie les données nettoyées et présente les résultatsVérifie que le nettoyage a corrigé les problèmes sans en créer de nouveaux, rapproche les décomptes et les totaux des données brutes, puis rédige un court bilan du nettoyage pour les personnes qui utilisent les données.
- Consigne chaque étape du nettoyage
Nettoyage des données : cours
1Évalue l’intégrité des données et repère les données sales
Un plan de nettoyage utile commence par une vision claire du tableau et de la question à laquelle il doit répondre. Examine l’organisation des enregistrements, trouve les champs qui les identifient et compte les problèmes avant de modifier les valeurs. Des règles fondées sur le sens des champs aident à distinguer une véritable erreur d’une saisie rare mais valide. Le profilage initial te donnera aussi un état de référence pour vérifier le résultat après les corrections.
Tu utilises Excel en anglais ? Tape alors des virgules au lieu des points-virgules, et ces noms : SUPPRESPACE devient TRIM, NB.SI devient COUNTIF, CNUM devient VALUE, SUBSTITUE devient SUBSTITUTE, GAUCHE devient LEFT, STXT devient MID, TROUVE devient FIND, DROITE devient RIGHT, CAR devient CHAR, ET devient AND, SI devient IF, ESTVIDE devient ISBLANK.
1.1 Explique l’intégrité des données et les types de données sales
Un tableau qui semble exact peut tout de même donner une mauvaise réponse. Le nettoyage commence par le sens des enregistrements : ce qui s’est passé, qui ou quoi chaque ligne décrit et les champs nécessaires à l’analyse.
Ce que signifie l’intégrité des données
L’intégrité des données désigne leur exactitude, leur complétude, leur cohérence et leur fiabilité tout au long de leur cycle de vie. Les valeurs doivent correspondre aux faits qu’elles sont censées enregistrer. Les informations nécessaires doivent être présentes et un même fait doit conserver le même sens lorsqu’il passe d’un système à l’autre.
L’intégrité peut être compromise lors de la saisie, du stockage, du transfert ou de l’analyse. Une personne peut se tromper en saisissant une quantité. Les copies de deux systèmes peuvent diverger, un problème lié à la réplication. Un transfert interrompu peut ne charger que la moitié d’un fichier. Trier une seule colonne peut associer chaque montant à la mauvaise commande. Les pannes de système et les modifications non autorisées peuvent aussi endommager les enregistrements.
Reconnaître le problème avant de le corriger
Les données sales sont incomplètes, incorrectes, incohérentes ou sans rapport avec la question. Des problèmes différents nécessitent des actions différentes.
| Problème | Ce que tu peux observer | Ce qu’il faut vérifier |
|---|---|---|
| Enregistrement en double | Un identifiant de commande apparaît deux fois | Si les deux lignes décrivent un seul événement |
| Valeur manquante | Une commande n’a pas de montant | Si le montant peut être récupéré |
| Texte incohérent | « Lisbon », « lisbon » et « LISBON » | Quelles valeurs ont le même sens |
| Valeur invalide | Un âge de 230 ans | Les bornes autorisées et la saisie d’origine |
| Valeur périmée | L’ancienne adresse d’un client | La date pertinente et la source actuelle |
| Type incorrect | Une quantité stockée sous forme de texte | Comment le logiciel traite la valeur |
Un format soigné ne garantit pas l’exactitude. Une date de livraison peut ressembler à une date tout en étant antérieure à la date de commande. Un client de test peut avoir un enregistrement complet sans être pertinent pour les ventes aux clients réels.
Suivre l’effet sur une réponse
Supposons que la commande 1003, d’un montant de 250,00, apparaisse deux fois dans un export. Compter les lignes ajoute une commande de trop et additionner les montants ajoute 250,00 de trop. Les formules peuvent fonctionner parfaitement alors que les données fournies donnent un résultat faux. Les variantes textuelles créent un autre problème : un graphique peut répartir les ventes de Lisbonne entre plusieurs libellés de ville.
Les données propres conviennent à l’analyse effectuée. Un deuxième prénom manquant n’a aucun effet sur les ventes par région. Un montant de commande manquant affecte en revanche le total des ventes. Évalue la complétude en fonction des champs nécessaires à la question, puis consigne les manques qui subsistent.
Protéger le point de départ
Conserve une copie brute intacte avant d’effectuer des modifications. Utilise un autre fichier, une feuille distincte ou la table de base de données d’origine, et nettoie une copie de travail. Un outil comme Supprimer les doublons efface des lignes de la plage sélectionnée ; la copie brute te donne une référence pour comparer et un moyen de reprendre une décision.
Suis cinq étapes : examiner, décider, appliquer, documenter et vérifier. Consigne un problème avant de choisir son traitement. Consigne chaque traitement lorsque tu l’appliques, puis vérifie le résultat par rapport aux données brutes. Les données internes nécessitent la même inspection qu’un fichier externe : des imports répétés et des changements de sens des champs se produisent aussi dans les organisations. Informe le responsable des données des problèmes récurrents de saisie ou d’export afin d’améliorer la prochaine livraison.
Points clés
- L’intégrité dépend de l’exactitude, de la complétude et de la cohérence tout au long du cycle de vie des données.
- Les données sales comprennent les doublons, les manques, les valeurs incohérentes, les saisies invalides, les informations périmées et les types incorrects.
- Évalue la propreté des données en fonction de l’analyse qu’elles doivent permettre.
- Garde les données brutes intactes, puis examine, décide, applique, documente et vérifie.
1.2 Effectue le profilage d’un jeu de données pour repérer ses problèmes
Le profilage des données est un examen systématique d’un jeu de données avant sa modification. Il te donne un état de référence et une liste de problèmes : la taille du tableau, le contenu de chaque colonne, les manques, les clés répétées et les valeurs à examiner.
Commencer par la structure du tableau
Détermine ce que représente une ligne, par exemple une commande ou un client. Vérifie qu’il y a une seule ligne d’en-tête et un seul type d’information par colonne. Trouve la clé, c’est-à-dire la colonne ou la combinaison de colonnes qui doit identifier un enregistrement. Un identifiant de commande répété doit être examiné ; des noms de villes répétés sont attendus.
Consigne le nombre initial de lignes. Examine ensuite le type attendu de chaque colonne, son caractère obligatoire et les valeurs autorisées. Un dictionnaire de données ou le responsable des données fournit ces informations. Les valeurs minimale et maximale peuvent révéler une date hors de la période étudiée ou une valeur de substitution comme 999 dans une colonne d’âges.
Examiner un tableur
Trie et filtre le tableau en gardant les lignes entières groupées. Trie par ordre croissant et décroissant pour trouver les cellules vides, les textes inattendus et les valeurs extrêmes. Les listes déroulantes des filtres révèlent les écritures des catégories. Les filtres d’Excel ignorent la casse : une seule catégorie affichée peut donc masquer des différences de majuscules ; utilise EXACT lorsque la casse elle-même doit être vérifiée. La mise en forme conditionnelle peut mettre en évidence les clés répétées et les valeurs hors d’un intervalle.
Pour les lignes 2 à 501, voici des contrôles utiles :
=NBVAL(B2:B501)compte les cellules non vides.=NB.VIDE(B2:B501)compte les cellules vides, y compris les formules qui renvoient un texte vide.=NB(B2:B501)compte les cellules numériques.=MIN(B2:B501)et=MAX(B2:B501)donnent les valeurs numériques minimale et maximale.=NB.SI(C2:C501;"Lisbon")compte les entrées correspondantes sans tenir compte de la casse.
Si le nombre de cellules numériques d’une colonne de montants est inférieur au nombre de cellules non vides, examine la différence. Certaines saisies peuvent être des nombres sous forme de texte ; d’autres peuvent être des mentions comme « N/A ». Une cellule ne contenant qu’une espace mérite aussi une vérification, même si elle paraît vide.
Examiner les données avec SQL
Ces requêtes lisent les données sans les modifier :
SELECT COUNT(*) AS rows_total,
COUNT(amount) AS amounts_present,
COUNT(*) - COUNT(amount) AS amounts_missing,
MIN(order_date) AS first_date,
MAX(order_date) AS last_date
FROM orders;
COUNT(*) compte les lignes. COUNT(amount) compte les montants non NULL. Leur différence compte les montants manquants représentés par NULL, mais ne détecte pas les valeurs de substitution textuelles.
Pour examiner les valeurs des catégories et leur effectif :
SELECT city, COUNT(*) AS n
FROM orders
GROUP BY city
ORDER BY city;
GROUP BY rassemble les valeurs égales ; COUNT(*) compte les lignes de chaque groupe. NULL forme son propre groupe. L’égalité des textes suit les paramètres de comparaison de la base, appelés classement. PostgreSQL et SQLite séparent habituellement les variantes de casse ; les paramètres courants de MySQL les regroupent.
Transformer les contrôles en liste de problèmes
Pour les six montants 40, NULL, 25, 60, NULL et 35, le nombre de lignes est de 6 et le nombre de montants présents de 4 : deux montants demandent une attention particulière. Pour les villes « Lisbon », « lisbon », « Porto », NULL, « LISBON » et « Porto », une comparaison textuelle exacte trouve quatre écritures non NULL, alors que seules deux villes sont représentées.
Consigne les deux constats, ainsi que la colonne concernée et le nombre de valeurs touchées. Examine les valeurs fréquentes et extrêmes à la recherche de valeurs de substitution masquées, d’enregistrements de test et de dates comme « 1900-01-01 ». Effectuer d’abord le profilage de tout le tableau révèle aussi les dépendances : supprimer les espaces superflues peut modifier le nombre de doublons ; il faut donc attendre que les champs de comparaison soient standardisés avant de supprimer les doublons.
Points clés
- Consigne la structure du tableau, le sens des lignes, les clés et les décomptes initiaux avant le nettoyage.
- Utilise les décomptes, les valeurs distinctes, leurs effectifs et les valeurs minimale et maximale pour repérer les problèmes dans des colonnes entières.
COUNT(*)compte les lignes ;COUNT(column)ignore NULL.- Le décompte des cellules vides ne repère pas les valeurs de substitution ni les textes ne contenant qu’une espace.
- Vérifie les paramètres de comparaison du texte avant d’interpréter les décomptes par catégorie.
1.3 Contrôle les saisies à l’aide des règles de validation
La validation des données vérifie que les saisies respectent les règles définissant les données acceptables. Une saisie peut être présente et bien affichée tout en enfreignant une règle. Une quantité de -3 reste invalide lorsque les quantités commandées doivent être positives.
Choisir les règles selon le sens des données
Lis le dictionnaire de données ou interroge le responsable des données. Une réservation d’hôtel à la journée peut autoriser zéro nuit ; un autre système de réservation peut en exiger au moins une. Consigne la borne réelle et indique si le champ est obligatoire.
| Règle | Question à laquelle elle répond | Exemple |
|---|---|---|
| Type | La valeur est-elle du bon type ? | La quantité est numérique |
| Bornes | Se situe-t-elle dans les bornes autorisées ? | Le pourcentage est compris entre 0 et 100 |
| Format | Suit-elle la structure requise ? | Le code comporte trois lettres et quatre chiffres |
| Liste | La catégorie est-elle autorisée ? | Le statut est « open », « shipped » ou « returned » |
| Présence | Une valeur obligatoire est-elle fournie ? | L’identifiant de commande n’est pas manquant |
| Unicité | Une clé apparaît-elle une seule fois ? | Aucun identifiant de commande répété |
| Cohérence | Les champs liés concordent-ils ? | La date de livraison est égale ou postérieure à la date de commande |
Un contrôle du format vérifie une structure, pas la véracité du fait sous-jacent. Un contrôle élémentaire d’adresse e-mail qui cherche un « @ » et du texte de chaque côté ne peut pas confirmer qu’une boîte aux lettres existe.
Repérer les échecs dans un tableur
Place un test dans une colonne auxiliaire et recopie-le vers le bas. Pour un pourcentage numérique obligatoire en B2, =ET(ESTNUM(B2);B2>=0;B2<=100) vérifie à la fois le type et les bornes. Le contrôle du type est important, car une cellule vide peut se comporter comme zéro dans une comparaison.
Avec de véritables dates en C et D, =SI(D2<C2;"check";"ok") repère une livraison antérieure à sa commande. Vérifie séparément que les dates obligatoires ne sont pas vides. Pour les identifiants de la colonne A, =NB.SI($A$2:$A$501;A2)>1 repère les valeurs répétées. Filtre les résultats auxiliaires pour voir tous les échecs.
Lister les échecs avec SQL
SELECT * FROM orders
WHERE quantity <= 0 OR quantity IS NULL;
Cette requête trouve les quantités nulles ou négatives et les quantités manquantes. Pour vérifier les statuts :
SELECT * FROM orders
WHERE status NOT IN ('open', 'shipped', 'returned')
OR status IS NULL;
Le contrôle explicite de NULL est important. NOT IN seul ne renvoie pas une ligne dont le statut est NULL, car le résultat de la comparaison est inconnu. Un contrôle entre champs comme delivery_date < order_date nécessite aussi des contrôles de présence séparés pour les dates obligatoires.
Prévenir les nouvelles erreurs et résoudre les anciennes
La validation des données d’Excel et de Google Sheets peut fournir une liste déroulante, limiter un intervalle de nombres ou avertir lors d’une saisie. Les types de données et les contraintes de base de données comme NOT NULL et UNIQUE imposent des règles apparentées. L’ajout d’une règle ne répare pas les anciens enregistrements ; examine-les séparément. La commande Entourer les données non valides d’Excel peut marquer les échecs existants.
Considère les âges 34, 0, 41, 230 et « forty » d’une enquête auprès d’adultes, avec une règle exigeant un nombre entier compris entre 18 et 120. « forty » échoue au contrôle du type ; 0 et 230 échouent au contrôle des bornes. Le mot a clairement pour valeur numérique 40. La valeur voulue pour 230 est incertaine : ne choisis donc pas au hasard entre 23 et 30. Récupère une valeur fiable, marque-la comme manquante ou exclus l’enregistrement, puis consigne la décision.
Une valeur inhabituelle est différente d’une valeur invalide. Une commande de 500 unités peut être réelle. Vérifie-la par rapport aux règles de commande et à l’enregistrement d’origine avant de conclure à une erreur.
Points clés
- Les règles de validation découlent du sens des champs et des exigences du responsable des données.
- Utilise les contrôles du type, des bornes, du format, de liste, de présence, d’unicité et de cohérence.
- Vérifie explicitement NULL lorsqu’une règle SQL doit aussi repérer les valeurs manquantes.
- Les contrôles à la saisie évitent certaines nouvelles erreurs ; les enregistrements existants doivent toujours être vérifiés.
- Corrige les échecs à partir d’éléments fiables, marque les valeurs comme manquantes ou exclus-les, puis consigne l’action.
- Une valeur rare mais autorisée n’est pas invalide simplement parce qu’elle est élevée.
2Supprime les doublons et traite les valeurs manquantes
Les enregistrements répétés et les valeurs manquantes peuvent modifier les décomptes, les totaux et les moyennes de différentes façons. Détermine ce qui rend un enregistrement unique avant de supprimer des copies, et apprends comment les cellules vides, les valeurs de substitution textuelles et NULL influent sur les calculs. Les informations manquantes peuvent être récupérées, laissées visibles, exclues ou estimées. Chaque choix doit être justifié par les besoins de l’analyse et accompagné d’une trace des lignes ou des valeurs concernées.
2.1 Repère et supprime les enregistrements en double
Deux lignes similaires ne sont pas nécessairement un même enregistrement saisi deux fois. Un doublon décrit la même entité ou le même événement réel qu’une autre ligne. Commence par déterminer ce qui identifie cette entité ou cet événement.
Définir la clé et les règles de comparaison
Un identifiant de commande peut identifier une commande. Un nom seul est généralement une mauvaise clé client, car plusieurs personnes peuvent le partager. Même deux achats identiques le même jour peuvent être des événements réels distincts. Vérifie le sens des lignes et la clé définie par le responsable des données avant de supprimer des lignes qui se ressemblent.
Les doublons exacts correspondent dans toutes les colonnes. Les quasi-doublons désignent la même chose mais présentent de petites différences, comme une espace supplémentaire ou un numéro de téléphone modifié. Nettoie les champs de comparaison avant la recherche. Si l’adresse e-mail est la clé retenue, uniformise les espaces et la casse dans une colonne auxiliaire.
Pour les cinq adresses « ana@example.com », « ben@example.com », « Ana@Example.com », « chen@example.com » et « ben@example.com », une comparaison exacte des valeurs brutes trouve l’entrée répétée de Ben. La suppression des espaces superflues et la mise en minuscules révèlent aussi l’entrée répétée d’Ana. Trois clés client restent après la suppression de deux copies supplémentaires.
Marquer les lignes avant de les supprimer
Pour les clés nettoyées dans B2:B501 :
=NB.SI($B$2:$B$501;B2)>1marque chaque ligne dont la clé est répétée.=NB.SI($B$2:B2;B2)>1ne marque que la deuxième occurrence et les suivantes.
La deuxième plage s’agrandit à mesure que tu recopies la formule vers le bas : la première occurrence a donc un décompte de un. NB.SI ignore la casse ; supprime d’abord les espaces superflues. Examine les groupes marqués pour repérer les informations contradictoires avant d’appliquer une règle de conservation.
Choisir ce qui est conservé
Les outils Supprimer les doublons d’Excel et de Google Sheets comparent les colonnes sélectionnées. Sélectionner uniquement l’adresse e-mail peut supprimer une ligne dont le numéro de téléphone est différent. Sélectionner toutes les colonnes conserve cette divergence, car les lignes complètes diffèrent. Les deux outils utilisent leurs propres règles de correspondance, notamment des comparaisons insensibles à la casse : ils ne conviennent donc pas pour imposer une distinction de casse caractère par caractère sans contrôle supplémentaire.
Excel conserve la première occurrence. Si l’enregistrement le plus récent doit être conservé, trie d’abord les lignes complètes par date de mise à jour, de la plus récente à la plus ancienne. Traite explicitement les enregistrements à égalité ou contradictoires. Une règle documentée peut consister à conserver l’enregistrement confirmé le plus récemment ou à fusionner les champs vérifiés. Consigne les colonnes choisies et le nombre de lignes supprimées.
=UNIQUE(A2:C501) renvoie les lignes distinctes dans une nouvelle plage dans les versions actuelles d’Excel et dans Google Sheets. La fonction préserve la source et permet de prévisualiser un résultat.
Trouver les clés répétées avec SQL
SELECT email, COUNT(*) AS n
FROM customers
GROUP BY email
HAVING COUNT(*) > 1;
GROUP BY crée un groupe pour chaque adresse e-mail ; HAVING conserve les groupes dont l’effectif dépasse un. WHERE filtre les lignes individuelles avant le regroupement. Effectue le contrôle sur des clés standardisées, en utilisant une table nettoyée ou en regroupant selon l’expression de nettoyage.
SELECT DISTINCT email, name FROM customers; renvoie une fois chaque combinaison d’adresse e-mail et de nom. Cette requête ne garantit pas l’unicité des adresses e-mail : deux lignes avec une même adresse et des noms différents restent toutes deux présentes. Vérifie la clé retenue après le dédoublonnage.
Les imports répétés et les exports qui se chevauchent créent souvent des doublons. Consigne la cause avec le responsable des données afin qu’une correction du tableau actuel améliore aussi le prochain export.
Points clés
- Définis la véritable clé de l’enregistrement avant de supprimer des lignes qui semblent répétées.
- Standardise les champs de comparaison pour pouvoir repérer les quasi-doublons.
- Une plage NB.SI qui s’agrandit marque les copies ultérieures ; une plage fixe marque chaque occurrence d’une valeur répétée.
- Les colonnes sélectionnées dans Supprimer les doublons déterminent les différences ignorées.
- DISTINCT compare les lignes de résultat sélectionnées, pas une clé métier.
- Traite les doublons contradictoires selon une règle explicite de conservation ou de fusion.
2.2 Repère les valeurs manquantes et observe comment les outils les comptent
Une donnée manquante peut être visible sous forme de cellule vide ou masquée derrière une valeur d’apparence plausible. Détermine comment la source enregistre les informations manquantes avant de les compter. Un zéro enregistré peut être réel, tandis que « unknown » peut être une valeur de substitution.
Distinguer cellules vides, texte et NULL
Dans un tableur, une cellule vide, une cellule contenant une espace et une formule renvoyant "" peuvent avoir la même apparence. ESTVIDE n’est vrai que pour une cellule réellement vide. Une espace est du texte. NB.VIDE compte aussi les formules qui renvoient un texte vide, mais ne compte pas une cellule contenant une espace. Pour les espaces ordinaires, =SUPPRESPACE(B2)="" détecte à la fois les entrées vides et celles ne contenant que des espaces.
Dans une plage référencée, les fonctions de tableur SOMME, MOYENNE et NB ignorent les cellules vides et le texte. Elles incluent le zéro numérique. Pour les montants 48, 52, une cellule vide, 45, une cellule vide, 55, 50 et 46, la somme des montants connus est de 296. MOYENNE divise par six, ce qui donne environ 49,33. Remplacer les cellules vides par zéro fait passer le dénominateur à huit et la moyenne à 37.
En SQL, NULL marque une valeur inconnue ou absente. Zéro est un nombre connu. La chaîne vide '' est un texte sans caractère dans PostgreSQL, MySQL, SQL Server et SQLite. Les champs vides importés peuvent apparaître sous l’une ou l’autre forme : vérifie donc leur représentation stockée :
SELECT * FROM orders
WHERE city IS NULL OR TRIM(city) = '';
Utilise IS NULL et IS NOT NULL. amount = NULL ne trouve pas les montants manquants : une comparaison avec NULL produit un résultat inconnu, que WHERE ne retient pas.
Connaître le dénominateur
COUNT(*) compte toutes les lignes. COUNT(amount), SUM, AVG, MIN et MAX ignorent les montants NULL. Pour 40, NULL, 25, 60, NULL et 35, il y a six lignes mais quatre montants connus. SUM vaut 160 et AVG vaut 40, car la fonction divise 160 par quatre.
Ces fonctions ne peuvent pas identifier une valeur de substitution numérique comme -1 ou 999. Confirme le sens des valeurs de substitution auprès du responsable des données, puis compte-les séparément ou transforme-les en valeurs manquantes. Examine aussi les effectifs des codes inhabituels, en plus du nombre de cellules vides.
Rechercher des régularités dans les données manquantes
Compte les entrées manquantes par colonne et calcule leur proportion parmi les lignes. Deux montants manquants sur huit représentent 25 %. Examine ensuite si les manques se concentrent par magasin, source ou mois. Un champ manquant limité à une source d’export peut indiquer un problème d’import qui peut être corrigé.
La raison de l’absence compte :
- Données manquantes complètement au hasard : un événement sans rapport avec les données, comme un échec d’enregistrement aléatoire, cause le manque.
- Données manquantes au hasard : la probabilité d’un manque dépend d’informations enregistrées, par exemple lorsque les clients plus âgés ignorent plus souvent un champ facultatif en ligne.
- Données manquantes non au hasard : la probabilité dépend de la valeur manquante elle-même, par exemple lorsque les personnes aux revenus très élevés ne renseignent pas leurs revenus.
Dans le cas des revenus, la moyenne des répondants peut être inférieure à celle de l’ensemble des personnes. Remplacer les valeurs manquantes par un même nombre ne supprime pas ce problème de sélection. Indique ce qui manque et qui est décrit par les valeurs restantes avant d’interpréter une moyenne.
Points clés
- NULL, une chaîne vide, une cellule vide et zéro représentent des états différents.
- Utilise IS NULL en SQL ; une égalité avec NULL ne trouve pas les valeurs manquantes.
COUNT(*)inclut toutes les lignes, tandis queCOUNT(column)et les agrégats numériques courants ignorent NULL.- Un zéro numérique contribue à une moyenne dans un tableur ; une cellule vide n’y contribue pas.
- Compte les valeurs manquantes et examine leur répartition avant de choisir un traitement.
2.3 Décide comment traiter les valeurs manquantes
Les valeurs manquantes nécessitent une décision liée à la question étudiée. Un client dont l’âge manque peut tout de même contribuer au total des ventes. Une commande sans montant ne peut pas apporter de valeur connue au chiffre d’affaires.
Choisir une action
| Action | Quand elle est utile | Ce qu’il faut consigner |
|---|---|---|
| Récupérer | Une source fiable fournit la valeur réelle | Source et correction |
| Laisser manquant | Le manque peut rester visible | Nombre de valeurs manquantes et effet sur l’analyse |
| Exclure | Les données nécessaires ne sont pas disponibles | Lignes exclues et raison |
| Remplacer | Un remplacement justifié est utile | Règle de remplacement et valeurs concernées |
| Signaler | Les lecteurs doivent distinguer les entrées manquantes ou remplacées | Signification du marqueur |
Essaie d’abord de récupérer la valeur. Consulte une facture, le formulaire d’origine ou le système de référence. Un total de ligne calculé à partir d’une quantité et d’un prix unitaire vérifiés est une information récupérée. Une valeur estimée à partir d’autres clients est une estimation ; son remplacement est appelé imputation.
Préserver le sens d’un nombre
Remplacer une catégorie par « Unknown » conserve la ligne dans les décomptes tout en laissant le manque visible. Remplacer un champ numérique par zéro n’est justifié que lorsque l’absence signifie réellement zéro. Un nombre de retours manquant peut signifier zéro si le processus source confirme cette convention ; un montant de vente inconnu n’a pas ce sens.
Pour les montants connus 48, 52, 45, 55, 50 et 46, la somme est de 296 et la moyenne d’environ 49,33. Si deux cellules vides sont remplacées par zéro, la somme reste égale à 296 mais la moyenne descend à 37. Les lignes supplémentaires comptent désormais comme des observations égales à zéro.
Le remplacement par la moyenne ou la médiane modifie aussi les données. La médiane des six montants connus est de 49. Remplacer les deux valeurs manquantes par 49 ajoute 98, ce qui porte la moyenne des huit entrées à 49,25. Ces deux valeurs ajoutées n’ont pas été observées. La répétition de valeurs centrales donne l’impression que les données sont moins dispersées : conserve donc un marqueur pour les identifier. Pour des valeurs dont la distribution est fortement asymétrique, comme les revenus, la médiane décrit souvent mieux une valeur typique que la moyenne.
Appliquer la règle de façon visible
En SQL, COALESCE(city, 'Unknown') renvoie le premier argument non NULL. Cette fonction remplace les villes NULL mais laisse une chaîne vide inchangée. NULLIF(city, 'N/A') transforme précisément cette valeur de substitution en NULL. Combiner la normalisation et le remplacement rend le traitement explicite :
COALESCE(NULLIF(TRIM(city), ''), 'Unknown') AS city
Dans un tableur, une colonne auxiliaire de catégorie peut utiliser =SI(SUPPRESPACE(B2)="";"Unknown";B2). Une colonne de marqueurs distincte peut utiliser =SUPPRESPACE(B2)="" pour que le caractère manquant de la valeur d’origine reste visible après le remplacement.
Adapter les exclusions à l’analyse
Pour calculer le chiffre d’affaires total de 1 000 commandes dont trois montants manquent, recherche d’abord les factures. Si la récupération échoue, indique que le total exclut 3 commandes sur 1 000, soit 0,3 %. Ne supprime pas une ligne parce qu’un champ inutilisé est vide.
Si 400 âges de clients sur 1 000 manquent, leur remplacement par la moyenne transformerait 40 % de la colonne en estimations. Une analyse des 600 âges connus doit indiquer clairement sa couverture. Vérifie pourquoi ces âges sont absents : supprimer des lignes peut aussi fausser les résultats lorsque les clients concernés diffèrent des autres. Garde un traitement cohérent et documente toute modification ultérieure.
Points clés
- Récupère les valeurs réelles avant d’envisager des estimations.
- Choisis le traitement selon les valeurs manquantes, le sens du champ et l’analyse.
- Le remplacement par zéro modifie les décomptes et les moyennes même lorsque la somme reste identique.
- Les remplacements par la moyenne ou la médiane sont des estimations qui doivent être signalées.
- Conserve et présente les lignes complètes pour la question étudiée.
3Standardise le texte, les formats et les types de données
Les espaces, la casse, les champs combinés et les formats mélangés peuvent empêcher un logiciel de reconnaître des valeurs égales. Pars du sens et de la convention source de chaque colonne, puis choisis une forme cohérente. Les fonctions textuelles préparent les libellés à la comparaison ; l’analyse des valeurs permet de les convertir dans des types utilisables ; la conversion d’unités donne aux quantités une même échelle. Vérifie le résultat stocké ainsi que son affichage, en particulier pour les dates et les identifiants composés de chiffres.
3.1 Nettoie et standardise les valeurs textuelles
Le nettoyage du texte rend comparables les valeurs qui ont le même sens. Commence par lister les valeurs distinctes et leurs effectifs. Cela montre si une colonne nécessite une modification des espaces, une casse cohérente ou une correspondance entre plusieurs écritures et un seul libellé.
Supprimer les espaces et les caractères masqués
Dans Excel et Google Sheets, =SUPPRESPACE(A2) supprime les espaces aux deux extrémités et réduit les espaces internes répétées à une seule. La fonction transforme « Ana Silva » en « Ana Silva ». =EPURAGE(A2) supprime les caractères non imprimables comme les sauts de ligne.
Une espace insécable copiée depuis une page web peut subsister après TRIM. Remplace d’abord le caractère 160 par une espace ordinaire :
=SUPPRESPACE(SUBSTITUE(A2;CAR(160);" "))
Lis les fonctions imbriquées de l’intérieur vers l’extérieur : SUBSTITUE s’exécute d’abord, puis TRIM agit sur son résultat. Examine des exemples nettoyés, car la suppression d’un saut de ligne peut joindre des mots qui devraient rester séparés.
En SQL, TRIM(city) supprime les espaces aux extrémités mais laisse les espaces internes répétées. TRIM(' Ana Silva ') conserve donc trois espaces entre les noms. LTRIM agit sur l’extrémité gauche et RTRIM sur la droite. Choisis une expression de nettoyage adaptée aux caractères trouvés.
Standardiser la casse en connaissance de cause
UPPER et LOWER fonctionnent dans les deux outils. Les minuscules peuvent être utiles pour les adresses e-mail ; les majuscules peuvent convenir aux codes pays. La fonction PROPER d’un tableur met les mots en majuscules initiales, mais ne peut pas déterminer l’orthographe correcte d’un nom : « mcdonald » devient « Mcdonald » et « PT123 » devient « Pt123 ». Vérifie les noms et conserve la casse voulue pour les codes.
Les comparaisons de texte suivent les paramètres de l’outil. NB.SI, RECHERCHEV et les filtres d’Excel ignorent la casse. PostgreSQL considère habituellement « Lisbon » et « LISBON » comme des valeurs textuelles différentes. Dans un tableur, =EXACT(A2;B2) vérifie l’identité des textes en tenant compte de la casse. Standardise explicitement lorsqu’une même catégorie doit être traitée de façon cohérente entre les outils, tout en préservant les différences de casse qui ont un sens dans les identifiants sensibles à la casse.
Associer des valeurs entières à une catégorie
La suppression des espaces superflues et les changements de casse ne corrigent pas les différentes écritures. Une table de correspondance peut associer chaque variante à un libellé standard. Recherche la valeur nettoyée complète par correspondance exacte et examine les valeurs sans correspondance.
En SQL, CASE peut exprimer la même correspondance :
CASE
WHEN UPPER(TRIM(country)) IN
('NL', 'NETHERLANDS', 'THE NETHERLANDS', 'HOLLAND')
THEN 'Netherlands'
ELSE TRIM(country)
END AS country
ELSE conserve les valeurs sans correspondance pour examen. Compte les catégories restantes après la mise en correspondance ; ne suppose pas que les premières lignes représentent toutes les écritures.
Éviter les remplacements dommageables
SUBSTITUE, Rechercher et remplacer et REPLACE en SQL peuvent remplacer du texte à l’intérieur d’une valeur plus longue. Remplacer « NY » partout transforme « Store NYC, NY » en « Store New YorkC, New York ». Pour les libellés de catégories, recherche une correspondance avec la cellule entière ou utilise une table de correspondance. Pour les adresses et les noms, examine la portée voulue de chaque remplacement.
Pour les villes « Lisbon », « lisbon », « Porto », une valeur manquante, « LISBON » et « Porto », UPPER(TRIM(city)) produit LISBON trois fois et PORTO deux fois, avec une valeur manquante. Analyse la colonne nettoyée, puis utilise-la pour les recherches de correspondance et les contrôles de doublons. Conserver la colonne auxiliaire tout en regroupant selon la ville brute laisserait subsister le problème initial.
Points clés
- SUPPRESPACE dans un tableur réduit aussi les espaces internes ; en SQL, SUPPRESPACE supprime normalement seulement les espaces aux extrémités.
- Remplace les espaces insécables avant de supprimer les espaces superflues lorsqu’elles apparaissent dans du texte importé.
- Choisis les conventions de casse par champ et vérifie les noms modifiés avec PROPER.
- Associe les variantes d’écriture en considérant les valeurs entières et examine les entrées sans correspondance.
- Utilise les champs nettoyés pour les comparaisons et l’analyse ultérieures.
3.2 Fractionne et combine du texte, et extrais-en des parties
Une valeur textuelle combinée peut masquer des informations nécessaires au tri ou à la recherche de correspondances. Place chaque élément nécessaire dans sa propre colonne, tout en conservant l’original jusqu’à ce que le fractionnement soit vérifié.
Fractionner à un séparateur fiable
Un délimiteur marque la frontière entre les parties. Une virgule dans « Silva, Ana » sépare le nom de famille du prénom. L’outil Convertir d’Excel et l’outil Scinder le texte en colonnes de Google Sheets permettent de choisir ce séparateur. Insère des colonnes vides à droite avant de fractionner pour que le résultat n’écrase pas d’autres champs.
Google Sheets peut utiliser =SPLIT(A2;",") ; les versions actuelles d’Excel peuvent utiliser =FRACTIONNER.TEXTE(A2;","). Supprime les espaces superflues des parties obtenues si une espace suit la virgule. Vérifie les lignes où le délimiteur manque ou apparaît plusieurs fois avant d’appliquer une même règle à toute la colonne.
Ne fractionne pas chaque nom à chaque espace. « Ana Maria Silva » comporte plus de parties qu’un nom en deux mots, et une espace seule ne permet pas de déterminer quels mots appartiennent au prénom ou au nom de famille. Utilise une structure source définie ou conserve un champ de nom complet lorsque la structure est incertaine.
Extraire par position lorsque la structure est fixe
Pour le code produit « PT-LIS-0042 », le pays occupe les positions 1 à 2, le lieu les positions 4 à 6 et le code final les positions 8 à 11.
| Formule | Résultat | Raison |
|---|---|---|
=GAUCHE(A2;2) | « PT » | Deux premiers caractères |
=STXT(A2;4;3) | « LIS » | Trois caractères à partir de la position 4 |
=DROITE(A2;4) | « 0042 » | Quatre derniers caractères |
=NBCAR(A2) | 11 | Nombre total de caractères, tirets compris |
Le décompte des positions commence à un. Conserve le code extrait sous forme de texte pour garder ses zéros initiaux. Les positions fixes ne fonctionnent que lorsque la structure du champ est cohérente.
Pour un texte de longueur variable, repère le délimiteur. Dans « Silva, Ana », TROUVE(",";A2) renvoie 6. =GAUCHE(A2;TROUVE(",";A2)-1) prend les cinq caractères qui précèdent la virgule. La soustraction exclut la virgule elle-même. FIND est sensible à la casse ; SEARCH l’ignore lors de la recherche de lettres.
Utiliser la fonction SQL équivalente
SUBSTRING(code, 4, 3) extrait le code de lieu situé au milieu dans PostgreSQL ; certaines bases utilisent SUBSTR. Les fonctions de longueur de caractères varient aussi : PostgreSQL et SQLite utilisent LENGTH, MySQL utilise CHAR_LENGTH et SQL Server utilise LEN, qui ignore les espaces finales. Dans MySQL, LENGTH compte les octets et peut donc donner un résultat différent du nombre de caractères pour un texte comme « é ».
Dans PostgreSQL, le contrôle WHERE LENGTH(code) <> 11 trouve les codes dont la longueur est incorrecte. Un contrôle de longueur seul ne vérifie pas que les lettres, les chiffres et les tirets sont aux bonnes positions.
Combiner les parties avec un séparateur clair
=A2&" "&B2 ou =CONCATENER(A2;" ";B2) réunit deux champs de tableur avec une espace. =JOINDRE.TEXTE(" ";VRAI;A2:C2) réunit une plage en ignorant les cellules vides. CONCAT dans Excel accepte plusieurs arguments ; CONCAT dans Google Sheets en accepte exactement deux.
Dans PostgreSQL, first_name || ' ' || last_name concatène du texte. Avec cet opérateur, une partie NULL rend le résultat NULL. CONCAT traite NULL différemment selon les dialectes : MySQL le propage, tandis que PostgreSQL et SQL Server l’ignorent. Traite les parties facultatives de façon explicite avec COALESCE et vérifie les séparateurs obtenus.
Points clés
- Fractionne à un délimiteur seulement lorsqu’il représente la séparation voulue.
- Utilise LEFT, MID et RIGHT pour les structures fixes, et FIND pour les parties de longueur variable.
- Prévois de la place pour le résultat du fractionnement et conserve les parties d’identifiants sous forme de texte.
- Les fonctions de longueur de caractères diffèrent selon le dialecte SQL.
- La concaténation exige des séparateurs choisis avec soin et un traitement des valeurs manquantes.
3.3 Utilise des formats cohérents pour les dates, les nombres et les unités
Un affichage cohérent n’est utile que si les valeurs ont le même sens. Les dates exigent un ordre connu, les nombres des séparateurs connus et les mesures une seule unité avant le début des calculs.
Déterminer la convention de la source
Le texte « 03/04/2025 » peut signifier le 4 mars ou le 3 avril. Une date comme « 25/03/2025 » établit que le jour vient en premier pour cette entrée, mais un fichier combiné peut contenir plusieurs formats. Confirme la convention auprès du responsable des données ou dans les paramètres d’export et recherche les sources mélangées avant de convertir les entrées ambiguës.
Utilise l’ordre de date ISO 8601, AAAA-MM-JJ, pour des échanges sans ambiguïté : « 2025-03-04 » désigne le 4 mars. Des dates textuelles uniformes au format ISO se trient aussi par ordre chronologique. Utilise le format horaire sur 24 heures, par exemple « 14:30 », et indique un fuseau horaire lorsque les événements couvrent plusieurs fuseaux.
Distinguer les valeurs stockées de l’affichage
Les tableurs stockent les véritables dates sous forme de numéros de série. Dans le système de dates par défaut d’Excel et dans Google Sheets, le 1er janvier 2025 correspond à 45 658 et le 4 mars 2025 à 45 720. Afficher cette date numérique au format AAAA-MM-JJ change son apparence, mais pas le jour enregistré.
Un texte qui ressemble à une date est différent. Appliquer un format de date à du texte ne crée pas une véritable valeur de date. Vérifie le type et convertis le texte selon la structure confirmée de la source avant de le mettre en forme. L’alignement peut être un indice, mais les contrôles de type et le comportement dans les calculs fournissent des preuves plus solides, car l’alignement peut être modifié manuellement.
La mise en forme des nombres fonctionne de la même façon. Une valeur stockée de 0,125 peut s’afficher sous la forme 0,13 avec deux décimales, tandis que les calculs utilisent toujours 0,125. =ARRONDI(A2;2) modifie le résultat numérique pour le limiter à deux décimales. Garde toutes les décimales pendant le nettoyage, sauf si la définition du champ exige une valeur arrondie : trois tiers arrondis séparément à 0,33 donnent une somme de 0,99.
Lire correctement les séparateurs numériques
« 1,234.5 » et « 1.234,5 » expriment le même nombre selon des conventions différentes. Un import avec des paramètres régionaux incorrects peut changer l’ordre de grandeur ou laisser une valeur sous forme de texte. Compare plusieurs valeurs importées avec leur source, notamment celles qui comportent des séparateurs décimaux et de milliers.
Dans Excel, =NUMBERVALUE("1.234,5",",",".") indique explicitement la virgule décimale et le point de regroupement et renvoie 1 234,5. Dans les autres outils, configure correctement les paramètres régionaux de l’import. Ne supprime pas toutes les virgules sans vérifier leur rôle : une virgule peut séparer les milliers ou marquer la partie décimale.
Convertir les unités avant de combiner les valeurs
Une colonne de poids contenant "2.5 kg", "750 g" et "1.2 kg" mélange les mentions et les unités. Extrais le nombre et l’unité, convertis les grammes en kilogrammes et stocke 2,5, 0,75 et 1,2 dans une colonne numérique weight_kg.
Additionner les nombres bruts donne 753,7, qui n’a pas d’unité cohérente. Indique une seule unité dans l’en-tête de colonne et place les nombres dans les cellules. De même, une colonne monétaire doit utiliser une seule devise pour que les totaux ou les moyennes aient un sens commun ; consigne toute règle de conversion utilisée.
Après la conversion, examine les dates et les mesures minimales et maximales. Vérifie les dates ambiguës individuellement par rapport à la source, même lorsqu’elles se situent dans la période autorisée : inverser le mois et le jour peut produire une date valide mais incorrecte.
Points clés
- Confirme l’ordre des dates et les séparateurs numériques avant d’analyser le texte.
- Les formats d’affichage changent l’apparence ; la conversion de type et l’arrondi changent les valeurs.
- Utilise AAAA-MM-JJ pour des dates sans ambiguïté et indique les fuseaux horaires si nécessaire.
- Convertis les mesures dans une seule unité avant de calculer leur somme ou leur moyenne.
3.4 Convertis les valeurs dans le type de données approprié
Un type de données indique au logiciel comment traiter une valeur. Les quantités numériques permettent les opérations arithmétiques, les dates permettent le tri et le calcul d’écarts entre dates, le texte contient des libellés et des identifiants, et les champs booléens contiennent TRUE ou FALSE. Les imports transforment souvent en texte des nombres ou des dates attendus comme tels.
Diagnostiquer le type avant de le modifier
Un nombre sous forme de texte peut être aligné à gauche par défaut, afficher un avertissement dans Excel ou être trié avec « 10 » avant « 9 ». Vérifie toute la colonne avec NB et NBVAL. Dans une plage référencée contenant le nombre 120, le texte « 80 » et le nombre 45, SOMME donne 165 et NB donne 2. Le total attendu est de 245 : l’erreur de type affecte donc le calcul.
Changer le format d’affichage en Nombre ne convertit pas le texte existant. Crée une colonne auxiliaire, effectue-y la conversion et compare le résultat à la saisie brute.
Convertir du texte dans un tableur
=CNUM(A2) interprète un texte numérique selon les paramètres régionaux du tableur. =DATEVAL(A2) interprète une date textuelle selon les conventions de date reconnues. Confirme d’abord les séparateurs et l’ordre des dates.
Pour une valeur connue écrite avec le jour en premier, « 04.03.2025 », construis une date à partir de ses éléments. Des appels explicites à CNUM rendent les entrées numériques dans Excel comme dans Google Sheets :
=DATE(CNUM(DROITE(A2;4));CNUM(STXT(A2;4;2));CNUM(GAUCHE(A2;2)))
RIGHT renvoie le texte de l’année « 2025 », MID renvoie le texte du mois « 03 » et LEFT renvoie le texte du jour « 04 ». VALUE convertit chaque partie ; DATE construit le 4 mars 2025. Valide d’abord les parties : DATE peut reporter un jour ou un mois impossible sur une date ultérieure au lieu de signaler une erreur.
Pour une valeur comme « 1250 kg », supprime la mention d’unité connue et les espaces avant la conversion : =CNUM(SUPPRESPACE(SUBSTITUE(A2;"kg";""))). Ne supprime pas arbitrairement les lettres de tous les champs, car elles peuvent avoir un sens ou indiquer une saisie invalide. =SIERREUR(CNUM(A2);"check") laisse visibles les conversions échouées pour examen.
Conserver les identifiants sous forme de texte
Le code « 00427 » identifie quelque chose ; ce n’est pas une quantité à additionner. Sa conversion en nombre donne 427 et fait perdre les zéros initiaux. Les numéros de téléphone, de nombreux codes postaux et les identifiants de compte ont aussi leur place dans des colonnes textuelles. Définis le type avant l’import. Excel ne conserve que 15 chiffres significatifs dans le stockage numérique : un identifiant de 16 chiffres peut donc perdre des informations avant que tu le remarques. Le mettre ensuite au format texte ne peut pas récupérer les chiffres perdus.
Convertir avec SQL et examiner les échecs
Dans des bases de données comme PostgreSQL, CAST(amount_text AS DECIMAL(10,2)) interprète un texte numérique et renvoie un nombre décimal à deux décimales. CAST(quantity_text AS INTEGER) demande un nombre entier. Dans de nombreux dialectes, un texte ISO peut être converti en DATE ; les autres structures de date nécessitent une fonction d’analyse adaptée, comme TO_DATE dans PostgreSQL, STR_TO_DATE dans MySQL ou PARSE_DATE dans BigQuery.
Un texte invalide arrête souvent une requête CAST. TRY_CAST dans SQL Server et SAFE_CAST dans BigQuery renvoient à la place NULL lorsque les conversions ordinaires échouent. Compte ces échecs séparément des valeurs déjà manquantes. Par exemple, dans SQL Server :
SELECT amount_text FROM sales
WHERE TRY_CAST(amount_text AS DECIMAL(10,2)) IS NULL
AND amount_text IS NOT NULL;
SQLite peut convertir sans avertissement « 12abc » en 12 et « abc » en 0. Une requête exécutée avec succès ne prouve donc pas que la conversion est correcte. Vérifie les chaînes d’origine, les valeurs converties, les décomptes et les valeurs minimale et maximale avant d’accepter la colonne propre.
Points clés
- Diagnostique les types incorrects à l’aide des décomptes et du comportement dans les calculs, pas seulement de l’apparence.
- Convertis explicitement le texte et examine les conversions échouées.
- Construis les dates de structure connue à partir de leurs éléments numériques et valide d’abord ces éléments.
- Conserve les identifiants composés de chiffres sous forme de texte avant l’import.
- Vérifie ton dialecte SQL : les conversions invalides peuvent produire une erreur, renvoyer NULL ou convertir le texte sans avertissement.
- Mettre en forme un identifiant altéré ne peut pas restaurer les chiffres perdus.
4Nettoie les données pas à pas dans un tableur et en SQL
Les fonctions de nettoyage individuelles deviennent plus utiles lorsqu’elles forment un processus ordonné. Dans un tableur, les colonnes auxiliaires permettent de comparer les entrées et les résultats avant de créer un tableau propre à valeurs fixes. En SQL, des expressions et des filtres peuvent renvoyer des données propres tout en préservant la source brute. Dans les deux outils, vérifie l’effet de chaque étape et enregistre les règles pour pouvoir répéter le même travail à l’arrivée du prochain export.
4.1 Applique une procédure de nettoyage dans un tableur
Une procédure dans un tableur rend chaque modification visible et conserve suffisamment d’éléments pour la répéter. Utilise une feuille brute, une feuille de travail avec des colonnes auxiliaires et un tableau propre vérifié.
Préparer et ordonner le travail
Garde les données brutes intactes. Fige la ligne d’en-tête et utilise un tableau ou des filtres pour sélectionner toute la plage de données. Lors du tri, déplace les lignes entières ensemble pour que les noms, les identifiants et les montants restent liés.
Voici un ordre pratique :
- Effectue le profilage du tableau et rédige une liste des problèmes.
- Corrige les en-têtes et fractionne les champs qui contiennent plusieurs éléments nécessaires.
- Supprime les espaces superflues, standardise la casse et établis les correspondances entre variantes de catégories.
- Convertis les types et uniformise les formats de dates, de nombres et d’unités.
- Traite les valeurs manquantes en conservant des marqueurs si nécessaire.
- Supprime les doublons selon la clé et la règle de conservation retenues.
- Valide le résultat, effectue les rapprochements et les contrôles ponctuels.
Cet ordre tient compte des dépendances. Un contrôle des doublons sur les clés brutes peut manquer des espaces supplémentaires. Un contrôle des bornes sur des nombres sous forme de texte risque de ne pas vérifier les valeurs voulues. Consigne l’effet après chaque étape pour pouvoir remonter à la cause d’un écart ultérieur.
Construire et examiner les colonnes auxiliaires
Si B2 contient « ana SILVA », =NOMPROPRE(SUPPRESPACE(B2)) renvoie « Ana Silva ». Recopie la formule sur tout le tableau et compare les noms bruts et nettoyés. Vérifie les écritures que PROPER ne peut pas déduire correctement.
Une formule auxiliaire comme =MAJUSCULE(SUPPRESPACE(SUBSTITUE(B2;CAR(160);" "))) fonctionne de l’intérieur vers l’extérieur : elle remplace les espaces insécables, supprime les espaces ordinaires superflues, puis modifie la casse. Utilise des en-têtes auxiliaires descriptifs comme city_clean pour que les formules suivantes pointent vers la colonne voulue.
Filtre les résultats et vérifie les valeurs au début, au milieu et à la fin de la plage. Une formule recopiée sur une partie seulement du tableau laisse une colonne mixte. Recherche les erreurs ainsi que les cellules vides.
Associer les catégories par recherche exacte
Conserve une table de correspondance à deux colonnes : variante et libellé standard. Avec une variante préparée en B2, =RECHERCHEV(B2;Map!$A$2:$B$50;2;FAUX) trouve le libellé correspondant. Les références absolues maintiennent la plage de correspondance fixe lors de la recopie vers le bas. FALSE demande une correspondance exacte ; une correspondance approximative peut renvoyer une catégorie plausible mais incorrecte pour une valeur absente de la liste.
RECHERCHEX peut utiliser des plages distinctes pour la recherche et le résultat. La correspondance exacte est son réglage par défaut. Une variante sans correspondance doit rester visible sous forme d’erreur pour être examinée. Ajoute ou corrige sa correspondance au lieu de transformer chaque échec de recherche en une catégorie connue.
Finaliser et documenter
Après vérification des colonnes auxiliaires, copie leurs résultats et utilise Collage spécial > Valeurs dans Excel ou Collage spécial > Valeurs uniquement dans Google Sheets pour créer le tableau propre. Vérifie qu’il est indépendant avant de supprimer les colonnes sources : les formules qui font encore référence à des cellules supprimées peuvent renvoyer #REF!.
Les outils intégrés comme Supprimer les doublons, Rechercher et remplacer et Convertir le texte en colonnes peuvent modifier de nombreuses cellules à la fois. Consigne leurs options, la plage sélectionnée et le nombre de valeurs concernées tant que ces informations sont visibles. Les colonnes auxiliaires à formule montrent directement leur logique ; conserve cette feuille de travail avec le journal.
Les formules en anglais présentées ici utilisent des virgules. La langue et les paramètres régionaux du tableur peuvent modifier les noms de fonctions et les séparateurs ; par exemple, Excel en néerlandais utilise SPATIES.WISSEN pour TRIM, et les paramètres régionaux à virgule décimale utilisent souvent des points-virgules entre les arguments.
Excel autorise 1 048 576 lignes et 16 384 colonnes par feuille ; Google Sheets limite le nombre de cellules par fichier. Les performances peuvent devenir problématiques bien avant une limite stricte. Pour des données fréquemment actualisées ou déjà présentes dans une base, une procédure SQL enregistrée convient souvent mieux que des modifications manuelles répétées dans un tableur.
Points clés
- Garde distinctes les données brutes, les données de travail et les données propres vérifiées.
- Nettoie la structure, le texte et les types avant les contrôles de doublons et la validation finale.
- Utilise des colonnes auxiliaires et des tables de correspondance exacte, puis examine les erreurs.
- Colle les résultats vérifiés sous forme de valeurs avant de supprimer les données dont dépendent leurs formules.
- Consigne les options des outils intégrés et les nombres de valeurs concernées au fur et à mesure.
4.2 Écris une requête SQL qui renvoie des données propres
Une requête de nettoyage SQL peut renvoyer des données utilisables sans modifier la table brute. Chaque expression rend une règle explicite et un alias nomme le résultat nettoyé.
Construire le résultat colonne par colonne
La requête suivante convient à PostgreSQL lorsque les textes du montant et de la date ont déjà passé les contrôles de conversion et que la quantité est numérique :
SELECT DISTINCT
order_id,
LOWER(TRIM(email)) AS email,
COALESCE(NULLIF(UPPER(TRIM(city)), ''), 'UNKNOWN') AS city,
CAST(amount AS DECIMAL(10,2)) AS amount,
CAST(order_date AS DATE) AS order_date
FROM raw_orders
WHERE order_id IS NOT NULL
AND quantity > 0;
Les espaces superflues de l’adresse e-mail sont supprimées et l’adresse est mise en minuscules. Pour la ville, TRIM supprime les espaces aux extrémités, UPPER standardise la casse, NULLIF transforme le texte vide en NULL et COALESCE fournit « UNKNOWN ». Les conversions renvoient des montants numériques et des dates. WHERE exclut les identifiants manquants et les quantités nulles, négatives ou NULL. DISTINCT supprime les lignes de résultat sélectionnées qui sont répétées.
Effectue le profilage du résultat après chaque expression ajoutée. Une requête complexe peut s’exécuter avec succès alors qu’une correspondance ou une conversion est incorrecte.
Comprendre l’ordre du filtrage
L’ordre logique à retenir est FROM, WHERE, SELECT, DISTINCT, ORDER BY. WHERE voit les colonnes sources avant que les expressions SELECT produisent leurs alias. Un alias ne rend pas une colonne brute propre dans la clause WHERE de la même requête.
Pour filtrer une ville brute de manière cohérente, utilise WHERE UPPER(TRIM(city)) = 'LISBON', ou enregistre le résultat nettoyé et filtre-le dans une requête ultérieure. Filtrer la ville brute avec city = 'LISBON' peut manquer des variantes, même si SELECT nettoie la ville affichée.
CASE vérifie les conditions dans l’ordre et renvoie le premier résultat correspondant :
CASE
WHEN LOWER(TRIM(status)) IN ('shipped', 'sent') THEN 'shipped'
WHEN status IS NULL THEN 'unknown'
ELSE LOWER(TRIM(status))
END AS status
Sans ELSE, une valeur sans correspondance devient NULL. Laisse les statuts sans correspondance visibles jusqu’à ce que leur sens soit déterminé.
Choisir entre filtrer et marquer
WHERE retire une ligne du résultat. Un marqueur conserve la ligne et indique un problème, par exemple CASE WHEN delivery_date < order_date THEN 1 ELSE 0 END AS date_issue. Vérifie séparément que les dates obligatoires ne sont pas NULL.
Compte explicitement les lignes exclues :
SELECT COUNT(*) FROM raw_orders
WHERE order_id IS NULL
OR quantity <= 0
OR quantity IS NULL;
Cela prend en compte toutes les raisons pour lesquelles le filtre précédent rejette une ligne, y compris les quantités manquantes. Après DISTINCT, vérifie la clé métier avec GROUP BY et HAVING. Les lignes qui partagent un identifiant mais ont des montants différents subsistent après DISTINCT et doivent encore être traitées.
Enregistrer la méthode et choisir le bon dialecte
CREATE VIEW clean_orders AS SELECT ... enregistre une requête qui lit les données sources actuelles à chaque utilisation de la vue. CREATE TABLE clean_orders AS SELECT ... crée un résultat stocké dans de nombreux dialectes ; SQL Server utilise couramment SELECT INTO. Conserve la requête et les commentaires pour pouvoir reconstruire ce résultat lorsque les données d’entrée changent.
Les noms et le comportement des fonctions varient selon les systèmes SQL. Vérifie le dialecte pour l’analyse des dates, la longueur des caractères et la conversion sécurisée. UPDATE et DELETE modifient les enregistrements stockés : examine la même condition WHERE avec SELECT et dispose d’une sauvegarde avant d’appliquer l’une ou l’autre instruction. Sans WHERE, elles affectent toutes les lignes. Nettoyer au moyen de SELECT est un choix par défaut utile pour les analystes disposant d’un accès en lecture seule.
Points clés
- Les expressions SELECT nettoient le résultat tout en laissant les enregistrements bruts inchangés.
- WHERE lit les champs bruts avant la production des alias SELECT.
- CASE choisit la première condition vraie ; ELSE traite les valeurs sans correspondance.
- Compte les lignes filtrées et vérifie l’unicité de la clé métier après DISTINCT.
- Enregistre une vue ou une requête pour répéter le nettoyage et vérifie le comportement propre au dialecte.
- Examine les lignes concernées et crée une sauvegarde avant qu’un UPDATE ou un DELETE modifie les données stockées.
5Documente et vérifie le nettoyage
Un nettoyage terminé doit s’accompagner d’éléments qu’une autre personne peut examiner. Consigne les modifications et leurs raisons au fur et à mesure, puis compare le résultat propre aux données brutes à l’aide de décomptes, de totaux et de règles de validation. Ces contrôles peuvent révéler des pertes accidentelles ou des transformations qui semblaient sans conséquence. Un court rapport relie le travail technique à la couverture et aux limites de l’analyse que permettront les données propres.
5.1 Consigne chaque étape du nettoyage
Un tableau propre doit être accompagné d’une explication de sa préparation. La documentation permet à une autre personne de retracer l’origine d’une valeur présentée, de juger une décision et de répéter le travail sur la prochaine livraison.
Rédiger une entrée utile dans le journal des modifications
Un journal des modifications est un relevé daté des changements. Chaque entrée doit indiquer :
- La date et l’auteur.
- Le jeu de données et la colonne ou la plage concernée.
- Le problème et son ampleur initiale.
- L’action, y compris la formule, la requête ou les options de l’outil.
- Le nombre de lignes ou de valeurs concernées.
- La raison et toute source utilisée pour confirmer une correction.
Par exemple : « 2025-03-10, A. Silva, orders.city : espaces superflues supprimées et mise en majuscules de 412 valeurs avec UPPER(TRIM(city)) ; 9 écritures ramenées à 4 villes ; nécessaire pour les ventes par ville. »
Cette entrée explique la méthode et son objectif. « Villes nettoyées » ne précise ni la règle de comparaison, ni le périmètre, ni le nombre de valeurs concernées. Rédige les entrées pendant le travail, tant que le message de l’outil indiquant le nombre de lignes concernées et la raison d’une décision sont encore disponibles.
Consigner les décisions ainsi que les opérations
Une formule n’explique pas pourquoi elle était appropriée. Pour les doublons, indique les colonnes clés et l’enregistrement conservé. Pour les montants manquants, précise s’ils ont été récupérés, exclus, remplacés ou laissés manquants. Si tu as remplacé des valeurs, consigne la règle d’estimation et la colonne de marqueurs. Pour une correction, indique la facture ou l’enregistrement source qui a fourni la valeur réelle.
Consigne aussi les lignes signalées mais conservées. Une personne qui vérifie le travail doit pouvoir distinguer un problème connu laissé visible d’un problème manqué par le nettoyage. Si un traitement change ultérieurement, ajoute une entrée datée expliquant la nouvelle décision.
Conserver la méthode et son historique
Les notes de cellule d’un tableur peuvent expliquer une correction, tandis qu’une feuille consacrée au journal des modifications contient la séquence complète. L’historique des versions de Google Sheets peut restaurer des états antérieurs du fichier. L’historique des versions d’Excel est disponible pour les fichiers stockés dans OneDrive ou SharePoint. L’historique aide à récupérer un fichier, mais un journal distinct explique l’intention des modifications.
Les commentaires SQL peuvent expliquer une règle à côté de son expression. Utilise -- pour une ligne ou /* ... */ pour un commentaire plus long. Conserve les versions des requêtes dans un système de gestion de versions ou un espace de stockage doté d’un historique des versions. Un simple dossier partagé rend la requête actuelle accessible mais ne conserve pas les versions antérieures.
Permettre la réexécution
Un processus est reproductible lorsque les mêmes données brutes et les mêmes règles produisent le même résultat propre. Les requêtes enregistrées et les formules auxiliaires conservées montrent leurs règles. Pour qu’une modification manuelle de cellule puisse être répétée avec exactitude, il faut consigner l’identifiant de l’enregistrement, l’ancienne valeur, la nouvelle valeur et la raison.
Conserve ensemble la copie brute, les étapes de transformation, les tables de correspondance et le journal. Si une règle dépend d’un ordre de conservation, par exemple conserver l’enregistrement client le plus récent, enregistre aussi la règle de tri ou de sélection. Reproduire un résultat exige de conserver les décisions ainsi que les expressions utilisées dans le logiciel.
Partage le journal et un court bilan du nettoyage avec les personnes qui utilisent les données. Une personne qui interprète les résultats doit savoir que des commandes de test ont été supprimées ou que l’âge manque pour une partie des clients. Signale les erreurs récurrentes à la source au responsable des données afin qu’il puisse corriger le formulaire, l’import ou l’export qui les crée.
Points clés
- Consigne qui a modifié quoi, quand, pourquoi, comment et combien de valeurs ont été concernées.
- Documente les choix de clés, les traitements des valeurs manquantes et les sources des corrections.
- Conserve les formules, les requêtes, les tables de correspondance et l’historique des versions avec les données brutes.
- Un processus reproductible donne le même résultat propre à partir des mêmes données brutes.
5.2 Vérifie les données nettoyées et présente les résultats
La vérification consiste à déterminer si le nettoyage a corrigé les problèmes sans en créer de nouveaux. Elle contrôle aussi que les données restantes répondent toujours à la question d’origine. Utilise des tests et des comparaisons sur des colonnes entières, puis examine des enregistrements individuels.
Rapprocher les nombres de lignes étape par étape
Pars du nombre de lignes brutes. Soustrais les lignes supprimées à chaque étape, en ne comptant chaque suppression qu’une fois. Pour 1 250 lignes brutes, 37 copies en double supprimées et 12 lignes invalides exclues ultérieurement :
Le nombre attendu de lignes propres est de 1 201. Un nombre différent doit être expliqué avant la diffusion. Vérifie l’étape à laquelle le nombre a divergé pour la première fois. Un filtre a pu masquer des lignes lors d’une opération dans le tableur, ou une plage sélectionnée a pu omettre une partie du tableau.
Si une ligne présente plusieurs problèmes, ne la soustrais pas plusieurs fois. Utilise le nombre réel de lignes avant et après chaque opération. Garde des décomptes distincts pour les lignes supprimées et les cellules corrigées : modifier dix cellules de ville ne supprime pas dix lignes.
Répéter le profilage et les contrôles des règles
Effectue les contrôles d’origine sur le résultat propre. Compare chaque résultat à la décision consignée dans le journal :
- Les nombres de valeurs manquantes correspondent aux valeurs laissées manquantes, récupérées ou remplacées.
- Les listes de catégories présentent les écritures standard voulues.
- Les valeurs minimales et maximales des nombres et des dates sont valides.
- La clé ne présente aucun doublon non résolu.
- Les contrôles du type, de présence, des bornes et de cohérence ne présentent aucun échec inexpliqué.
Un nombre nul de cellules vides après remplacement ne signifie pas qu’aucune valeur ne manquait. Vérifie aussi les marqueurs. Une clé métier répétée peut subsister après DISTINCT lorsqu’un champ sélectionné diffère : contrôle donc directement cette clé.
Rapprocher les montants et examiner les enregistrements
Si aucune valeur n’a été corrigée ou remplacée, le total propre doit être égal au total brut moins les montants des lignes supprimées. Un total brut de 152 400 moins 3 100 de commandes en double supprimées doit laisser 149 300. Si des valeurs ont été corrigées ou remplacées, inclus séparément ces modifications dans le rapprochement.
Compare des enregistrements de plusieurs parties du tableau aux données brutes et, si possible, à la source d’origine. Cible les lignes touchées par des étapes risquées : remplacements, fractionnement, analyse des valeurs et conversion de type. Vérifie que les noms n’ont pas subi de remplacement trop large, que les résultats du fractionnement ne sont pas décalés dans les colonnes, que les identifiants n’ont pas perdu de zéros et que les dates n’ont pas leur jour et leur mois inversés. Une date plausible peut tout de même être incorrecte.
Vérifier la couverture nécessaire à la question
Assure-toi que les données propres couvrent toujours la période, les régions, les magasins, les produits et les champs nécessaires. Supprimer toutes les commandes d’un magasin parce que ses dates utilisent une autre structure modifie la population analysée. Corrige la règle d’analyse si possible et indique toute partie de la couverture qui reste manquante.
Rédige un court rapport indiquant la source et la période, les problèmes et leurs décomptes, les actions menées, les exclusions ou les remplacements, les résultats de la vérification et les limites restantes. Par exemple : « L’âge manque pour 12 % des clients ; les résultats par âge décrivent les 88 % restants. » Un résultat doit être interprété en tenant compte de cette couverture.
Répète le nettoyage et la vérification lorsque de nouvelles données brutes arrivent. Les règles enregistrées rendent le processus reproductible, mais les nouvelles catégories, les formats modifiés et les nouvelles régularités dans les valeurs manquantes doivent toujours être examinés.
Points clés
- Rapproche les suppressions réelles de lignes dans l’ordre, sans compter deux fois les mêmes lignes.
- Répète le profilage et la validation sur l’ensemble du résultat propre.
- Explique les changements de totaux par les suppressions, les corrections et les remplacements.
- Contrôle ponctuellement les transformations qui peuvent altérer les identifiants, les dates ou le texte.
- Confirme que les données propres conservent la couverture nécessaire pour répondre à la question métier.
- Présente les manques non résolus et répète les contrôles à chaque nouvelle livraison.
Nettoyage des données : exemples
1Examine un export de commandes avant de le modifier
12 étapes
- 1IntroductionCommence par une question
Tu dois calculer le montant total des commandes par ville pour une période donnée. Avant de corriger l’export, identifie les champs nécessaires à cette question : un identifiant de commande, une date, une ville et un montant. Un tableau soigné peut tout de même contenir des commandes répétées, des manques ou des nombres sous forme de texte, qui menacent l’intégrité des données.
Conserve l’export intact et examine une copie de travail, en rédigeant un profil de ses décomptes et de ses types comme état de référence. L’objectif est de comprendre les problèmes avant de choisir leur traitement, afin que les corrections préservent les enregistrements et les champs nécessaires à l’analyse.
- 2ExplicationRepère ce qui peut mal se passer
L’intégrité des données suppose des enregistrements exacts, complets, cohérents et fiables tout au long de leur cycle de vie. Un montant mal saisi nuit à l’exactitude ; un import interrompu nuit à la complétude ; des variantes de noms de villes nuisent à la cohérence.
Le problème peut aussi apparaître pendant l’analyse. Trier les montants seuls les sépare de leurs commandes. Déplace les lignes entières ensemble et conserve la copie brute comme preuve de l’état initial.
- 3ExempleSuis l’effet d’un doublon sur un total
La commande 1003 vaut 250,00 et apparaît deux fois. Un décompte des lignes traite les copies comme deux commandes. Une somme inclut les deux montants et surestime le total des ventes de 250,00.
Le calcul peut être correct alors que la réponse métier est fausse. Vérifie ce que représente la ligne et quelle clé l’identifie avant de décider de conserver ou de supprimer une entrée qui semble répétée.
- 4DéfiCe manque affecte-t-il la question ?
Les champs de ville et de montant sont complets pour un ensemble de commandes, mais plusieurs deuxièmes prénoms de clients manquent. Faut-il supprimer ces commandes pour calculer le total des ventes par ville ?
---reveal---
Non. Les valeurs nécessaires de ville et de montant sont disponibles. Un deuxième prénom manquant n’empêche pas cette analyse. Conserve les commandes utilisables et note les prénoms manquants qui ne sont pas utilisés ; supprimer ces commandes retirerait des ventes connues.
- 5ExplicationRédige le profil initial
Consigne le nombre de lignes, les noms des colonnes et le sens d’une ligne. Identifie la clé de commande et examine le type attendu de chaque champ. Compte ensuite les valeurs manquantes, liste les catégories et vérifie les valeurs minimales et maximales des nombres et des dates.
Conserve ce profil avec la liste des problèmes. Il fournit un état de référence pour les contrôles ultérieurs et révèle les dépendances : supprimer les espaces superflues dans les clés peut faire apparaître des doublons qu’une comparaison des valeurs brutes ne repère pas.
- 6ExempleCompte les montants connus et manquants
Les montants sont 40, NULL, 25, 60, NULL et 35. En SQL,
COUNT(*)donne 6 car la fonction compte toutes les lignes.COUNT(amount)donne 4 car elle ignore NULL.Soustrais le nombre de montants présents du nombre de lignes : deux montants sont manquants. Ce contrôle trouve les NULL SQL ; il ne détecte pas une valeur de substitution comme -1. Examine aussi les valeurs fréquentes et les valeurs minimale et maximale, en plus des nombres de valeurs manquantes.
- 7ExempleExamine la liste des catégories
Les valeurs de ville sont « Lisbon », « lisbon », « Porto », NULL, « LISBON » et « Porto ». Avec une comparaison textuelle exacte, il y a quatre chaînes non NULL distinctes mais seulement deux villes représentées.
Une requête GROUP BY liste les valeurs des catégories avec leurs effectifs, y compris un groupe NULL. Vérifie les paramètres de comparaison de la base : les variantes de casse peuvent être regroupées. Dans Excel, les listes de filtres ignorent la casse et ne révèlent donc pas toutes les différences de majuscules.
- 8DéfiInterprète un écart entre deux décomptes
Une colonne de montants contient 160 cellules non vides dans un tableur, mais NB renvoie 153. Que dois-tu examiner ?
---reveal---
Sept cellules non vides ne sont pas numériques. Recherche dans ces cellules des nombres sous forme de texte, des valeurs de substitution ou d’autres textes avant toute conversion ou tout remplacement. La différence indique les enregistrements à examiner ; elle ne prouve pas que les sept montants sont manquants.
- 9ExplicationTransforme le sens des données en règles
Les règles définissent les valeurs acceptables. Contrôle le type, les bornes, la structure, les catégories autorisées, la présence obligatoire, l’unicité de la clé et les relations entre champs.
Pour une commande, une règle de quantité positive et une règle imposant une livraison à la date de commande ou après vérifient des choses différentes. Confirme les deux auprès du responsable des données. Une quantité rare peut tout de même être valide : ne confonds donc pas une observation inhabituelle avec une observation impossible.
- 10ExempleRepère les statuts invalides et absents
Les statuts autorisés sont « open », « shipped » et « returned ». En SQL, trouve les échecs avec :
WHERE status NOT IN ('open', 'shipped', 'returned') OR status IS NULLLe contrôle de liste repère les codes non NULL non reconnus. Le contrôle NULL séparé repère les absences. Sans lui, un statut obligatoire manquant échapperait à cette liste d’échecs, car le résultat de sa comparaison est inconnu.
- 11DéfiChoisis l’action suivante
Un profilage trouve une quantité de -4 et une quantité de 400. Les quantités commandées doivent être des nombres entiers positifs et aucun maximum n’est précisé. Comment traiter ces deux entrées ?
---reveal---
-4 enfreint la règle et nécessite une récupération, un marquage comme valeur manquante ou une exclusion dont la raison est consignée. La valeur 400 respecte la règle énoncée ; examine-la si nécessaire, mais ne la modifie pas simplement parce qu’elle est rare. Conserve l’état de référence afin que les contrôles ultérieurs puissent retracer toute correction.
- 12RécapitulatifUtilise la liste des problèmes pour le nettoyage
Ton examen doit maintenant laisser une trace exploitable de la structure du tableau, de sa clé, de ses décomptes initiaux et de ses problèmes. Les règles indiquent quelles valeurs sont inacceptables ; le profilage indique où et à quelle fréquence les problèmes apparaissent.
Choisis les traitements à partir de ces éléments. Préserve les liens entre les valeurs des lignes, garde les données brutes intactes et conserve l’état de référence pour vérifier le nettoyage terminé.
2Traite les commandes répétées et les montants manquants
14 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionDistingue deux problèmes différents
- 2ExplicationMets-toi d’accord sur la clé
- 3ExempleNormalise les adresses e-mail des clients
- 4ExempleChoisis le marqueur nécessaire
- 5DéfiDISTINCT résoudra-t-il cette contradiction ?
- 6ExplicationIdentifie comment les valeurs manquantes sont stockées
- 7ExempleCalcule la moyenne observée
- 8DéfiCompare deux cellules apparemment vides
- 9ExplicationRecherche d’abord la valeur réelle
- 10ExempleObserve l’effet du remplacement par zéro
- 11ExempleGarde les estimations visibles
- 12Point cléLa répartition des manques peut changer l’interprétation
- 13DéfiChoisis les champs qui justifient une exclusion
- 14RécapitulatifProduis un résultat justifiable
3Transforme du texte hétérogène en champs utilisables
17 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionModifie la représentation avec soin
- 2ExplicationSupprime les espaces accidentelles
- 3ExempleAssocie les variantes à un libellé standard
- 4DéfiVérifie ce que PROPER peut savoir
- 5ExempleRepère les parties fixes d’un code
- 6ExplicationTrouve une séparation dont la position varie
- 7DéfiTraite les parties textuelles facultatives
- 8ExplicationDétermine la date avant de la mettre en forme
- 9ExempleConvertis une mesure exprimée dans plusieurs unités
- 10DéfiAffichage ou résultat stocké ?
- 11ExplicationDiagnostique les nombres sous forme de texte
- 12ExempleConstruis une date de structure connue
- 13ExempleDistingue les échecs des valeurs manquantes
- 14DéfiPréserve un identifiant d’apparence numérique
- 15ConseilUtilise les champs nettoyés pour la suite
- 16DéfiExamine un import sur plusieurs champs
- 17RécapitulatifVérifie le sens aussi bien que la forme
4Construis une procédure de nettoyage reproductible
13 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionEnregistre le travail sous forme de processus
- 2ExplicationFixe l’ordre des étapes dans le tableur
- 3ExempleConstruis la formule auxiliaire de l’intérieur vers l’extérieur
- 4ExempleExamine une correspondance de catégories
- 5DéfiFinalise une colonne propre vérifiée
- 6ExplicationRenvoie une colonne SQL nettoyée
- 7ExempleNormalise et remplace une ville manquante
- 8ExempleAjoute un filtre choisi avec soin
- 9DéfiChoisis entre un filtre et un marqueur
- 10Point cléUn alias ne peut pas corriger un filtre antérieur
- 11ConseilEnregistre la requête selon la conservation voulue
- 12DéfiVérifie une méthode complète
- 13RécapitulatifConserve les résultats et les règles
5Vérifie et explique les données finales
10 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionRends le résultat vérifiable
- 2ExplicationRédige l’entrée pendant le travail
- 3ExempleTransforme une entrée vague en élément vérifiable
- 4DéfiCette correction manuelle peut-elle être répétée ?
- 5ExempleRapproche le nombre de lignes
- 6ExempleRapproche le total des montants
- 7ExplicationRépète les contrôles des règles et examine les changements risqués
- 8DéfiLe tableau répond-il toujours à la question ?
- 9DéfiRelie le journal au rapport final
- 10RécapitulatifLivre un résultat accompagné de ses éléments justificatifs
Nettoyage des données : QCM
Série 1 : Reconnais les problèmes et choisis les premiers contrôles10 Questions Pratiques
Question 1 sur 10
Afficher la réponseMasquer la réponse
Question 2 sur 10
COUNT(weight_kg) en SQL renvoie 226. Combien de lignes ont un poids NULL ?Afficher la réponseMasquer la réponse
COUNT(weight_kg) compte les poids non NULL, tandis que le nombre total de lignes inclut chaque enregistrement. Soustraire 226 de 240 donne 14 poids NULL. Indiquer 226 comme nombre de valeurs manquantes revient à confondre le nombre de valeurs présentes avec celui des valeurs absentes.Question 3 sur 10
Afficher la réponseMasquer la réponse
Question 4 sur 10
Afficher la réponseMasquer la réponse
Question 5 sur 10
ESTVIDE(A2) et SUPPRESPACE(A2) ?Afficher la réponseMasquer la réponse
Question 6 sur 10
SUPPRESPACE(A2) dans un tableur ?Afficher la réponseMasquer la réponse
Question 7 sur 10
=MAJUSCULE(SUPPRESPACE(A2)). Dans quel ordre ses opérations sont-elles exécutées ?Afficher la réponseMasquer la réponse
Question 8 sur 10
Afficher la réponseMasquer la réponse
Question 9 sur 10
Afficher la réponseMasquer la réponse
Question 10 sur 10
Afficher la réponseMasquer la réponse
Série 2 : Applique les fonctions de nettoyage et interprète les résultats10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
COUNT(DISTINCT city) ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
=ET(B2>=0;B2<=100). Comment améliorer cette formule ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
UPPER(TRIM(city)) et CAST(amount AS DECIMAL(10,2)), avec WHERE quantity > 0. Combien de lignes de résultat restent et id est-il unique ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
AVG(amount) ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 3 : Choisis les traitements et vérifie les données transformées10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
LOWER(TRIM(status)) AS status FROM events WHERE status <> 'done'. Combien de lignes sources atteignent SELECT et combien de lignes de résultat restent ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 4 : Diagnostique les erreurs discrètes dans les procédures de nettoyage10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
UPPER(TRIM(item_id)). Les lignes (expédition, article, quantité) sont (71, « A », 5), (71, « a », 5), (71, « B », 8), (71, « A », 6), (72, « C », 4), (72, « C », 4). Après DISTINCT sur ces trois champs nettoyés, combien de lignes et de clés contradictoires restent ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
=NB.SI($B$2:B2;B2)>1 lorsque la formule est recopiée vers le bas ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
MID(code,4,3). Quelle modification convient à cette structure ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
=RECHERCHEV(B2;Map!A2:B20;2;FAUX). Elle fonctionne sur la première ligne mais perd les premières lignes de correspondance lorsqu’elle est recopiée vers le bas. Que faut-il modifier ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 5 : Examine un résultat de nettoyage complet10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
TRIM(city) = '' ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
TRY_CAST(NULLIF(TRIM(amount_text), '') AS DECIMAL(10,2)), mais n’exclut que les NULL bruts. Combien de résultats sont des échecs de conversion de texte normalisé présent, et qu’est-ce qui gonfle le décompte du contrôle ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Tu bloques sur ton propre exercice ? Aide aux Devoirs
Mots-Clés
A
Alias
UPPER(TRIM(city)) AS city_clean donne un alias clair au résultat normalisé.Arrondi
B
Bilan du nettoyage
Booléen
C
CAST
Chaîne de caractères
Chaîne vide
Classement
Clé composée
Clé d’enregistrement
CLEAN
COALESCE
COALESCE(city, 'Unknown') attribue un libellé à une ville NULL sans remplacer une ville ordinaire non vide.Collage des valeurs
Colonne auxiliaire
Comparaison sensible à la casse
Concaténation
Contrôle d’appartenance à une liste
Contrôle d’unicité
Contrôle de cohérence
Contrôle de présence
Contrôle des bornes
Contrôle du format
Contrôle du type
Contrôle ponctuel
Conversion d’unités
Conversion de type
Conversion sécurisée
Couverture
D
Dédoublonnage
Délimiteur
Dialecte SQL
Données brutes
Données manquantes au hasard
Données manquantes complètement au hasard
Données manquantes non au hasard
Données propres
Données sales
Doublon exact
E
Effectif
Enregistrement en double
Espace insécable
CHAR(160) par une espace normale avant que la colonne auxiliaire des villes applique TRIM.Expression CASE
Extraction à position fixe
É
État de référence
F
Filtre
FIND
Format d’affichage
Format de date ISO 8601
Fractionnement
G
Gestion de versions
H
Historique des versions
I
Imputation
Intégrité des données
J
Journal des modifications
M
Marqueur d’anomalie
Médiane
Moyenne
N
NULL
COUNT(amount) ignore les montants NULL tandis que COUNT(*) inclut les lignes qui les contiennent.NULLIF
NULLIF(city, 'N/A') transforme une valeur de substitution confirmée pour une ville en marqueur cohérent de valeur manquante.Numéro de série de date
P
Paramètres régionaux
Profilage des données
Q
Quasi-doublon
R
Rapprochement
Recherche par correspondance exacte
Récupération
Référence absolue
Remplacement de sous-chaîne
Réplication
Reproductibilité
S
Standardisation du texte
Suppression
T
Table de correspondance
Transfert de données
TRIM
Type de données
V
Valeur de substitution
Valeur distincte
Valeur manquante
Validation des données
Vérification
Vue
À propos de cette unité
Crée ton propre Matériel d'Étude
Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.