Dans le monde réel, les données brutes sont rarement livrées prêtes à l'emploi. Vous rencontrerez quotidiennement des dates au format texte américain, des colonnes fusionnées sous Excel, des valeurs manquantes codées en N/A, des doublons de facturation et des tableaux de bord financiers orientés "large" qui bloquent toute tentative de modélisation en étoile.
C'est ici qu'intervient Power Query, le puissant atelier ETL (Extract, Transform, Load) intégré à Power BI. Dans cette leçon, nous découvrons les transformations indispensables et les secrets d'optimisation des professionnels.
🧭 Anatomie de l'Interface Power Query#
Lorsque vous cliquez sur Transformer les données, une fenêtre dédiée s'ouvre. Ce cockpit d'ingénierie se décompose en quatre zones maîtresses :
┌────────────────────────────────────────────────────────────────────────┐
│ 1. LE RUBAN : Onglets Accueil, Transformer, Ajouter une colonne... │
├───────────────┬────────────────────────────────────────┬───────────────┤
│ 2. REQUÊTES │ 3. LA GRILLE DE DONNÉES CENTRALE │ 4. PARAMÈTRES │
│ │ │ │
│ ► Ventes │ [ID] [Date] [Client] [Total] │ Nom : Ventes │
│ ► Clients │ 1001 01/01/24 Dupont 150.00 │ │
│ ► Produits │ 1002 02/01/24 Martin 240.50 │ ÉTAPES : │
│ │ │ 1. Source │
│ │ Profilage de qualité sous les en-têtes │ 2. Typage │
│ │ ─── 98% Valide ── 2% Erreur │ 3. Filtré │
└───────────────┴────────────────────────────────────────┴───────────────┘
- Le Ruban : Regroupe l'intégralité des fonctionnalités graphiques classées par intentions.
- Le Volet Requêtes (à gauche) : Liste toutes vos tables et requêtes de transformation.
- La Grille Centrale : Affiche un échantillon dynamique de vos données (par défaut les 1 000 premières lignes) avec la barre de qualité (Column Quality).
- Le Volet Paramètres de la requête (à droite) : Cœur névralgique de Power Query, il consigne l'historique chronologique de vos Étapes appliquées (Applied Steps).
[!NOTE] Dans Power Query, il n'y a pas de "Ctrl + Z" classique ! Chaque action ajoute une nouvelle étape dans le volet de droite. Vous pouvez réordonner les étapes par glisser-déposer, modifier leurs réglages via l'icône d'engrenage ⚙️ ou supprimer une étape erronée avec la croix rouge ❌.
1. Typer Strictement les Colonnes (La Priorité n°1)#
Dès l'importation, Power BI tente de deviner le type de chaque colonne grâce à l'étape automatique Type modifié. Cependant, cette détection automatique commet parfois des erreurs fatales.
Pour changer le type d'une colonne, cliquez sur le petit pictogramme situé à gauche du nom de l'en-tête :
| Pictogramme | Type de données | Cas d'usage recommandé |
|---|---|---|
123 |
Nombre entier | Clés primaires/étrangères (CustomerID), quantités vendues |
1.2 |
Nombre décimal | Taux d'intérêt, pourcentages, coordonnées géographiques |
$ |
Nombre décimal fixe | Montants financiers, chiffre d'affaires, devises (prévient les erreurs d'arrondi) |
ABC |
Texte | Noms, catégories, codes postaux (toujours en texte pour préserver les zéros initiaux !) |
| 📅 | Date | Dates d'expédition, de commande (sans heure pour préserver la mémoire) |
| 📅🕒 | Date/Heure | Horodatages précis d'événements, logs de serveurs |
| 🔘 | Vrai/Faux (Booléen) | Indicateurs binaires (EstActif, EstRetourne) |
[!WARNING] Ne laissez JAMAIS un code postal, un numéro de sécurité sociale ou un identifiant client avec des zéros initiaux (ex:
07501) en type Nombre entier ! Le zéro initial disparaîtrait (7501). Conservez toujours ces identifiants en type Texte.
2. Alléger la Volumétrie : Supprimer et Filtrer#
Le moteur colonnaire VertiPaq stocke chaque colonne de manière indépendante en mémoire vive. Moins vous chargez de colonnes et de lignes superflues, plus votre rapport sera rapide.
A. Règle d'or : "Supprimer les autres colonnes"#
Plutôt que de sélectionner les 25 colonnes inutiles pour cliquer sur Supprimer les colonnes, adoptez le réflexe inverse :
1. Sélectionnez les 5 seules colonnes utiles à votre analyse avec la touche Ctrl.
2. Faites un clic droit et choisissez Supprimer les autres colonnes.
[!TIP] Pourquoi cette méthode est-elle supérieure ? Si votre base de données source évolue demain en ajoutant 10 nouvelles colonnes, l'instruction "Supprimer les autres colonnes" les ignorera automatiquement, évitant de surcharger votre modèle sans crier gare.
B. Supprimer les doublons et lignes vides#
- Cliquez sur le coin supérieur gauche de la grille de données (l'icône de table) pour accéder aux commandes globales :
- Supprimer les lignes vides
- Supprimer les erreurs
- Supprimer les doublons (sur une clé primaire sélectionnée).
3. Remplacer des Valeurs et Gérer les Vides#
Dans Power Query, une cellule sans valeur est identifiée par le mot-clé en italique null.
- Remplacer les valeurs : Clic droit sur la colonne > Remplacer les valeurs... (Exemple : remplacer
nullparNon renseignépour une dimension texte, ou par0pour une mesure de rabais). - Remplir vers le bas (Fill Down) : Vous recevez un tableau Excel où le nom de la catégorie n'est saisi que sur la première ligne d'un groupe, laissant des blancs en-dessous ? Clic droit sur la colonne > Remplir > Vers le bas. Power Query duplique instantanément la dernière valeur non vide vers toutes les cellules
nullsuivantes.
4. Fractionner une Colonne#
Lorsque deux informations métier sont fusionnées dans une seule chaîne de caractères (ex: CLI-2024-FR-9876), vous devez les isoler.
- Sélectionnez la colonne.
- Onglet Accueil ou Transformer > Fractionner la colonne :
- Par délimiteur : Choisissez le tiret
-, la virgule ou un caractère personnalisé. Vous pouvez fractionner au niveau du délimiteur le plus à gauche, le plus à droite, ou à chaque occurrence. - Par nombre de caractères : Idéal pour extraire des codes pays ISO de 2 lettres.
- Par transition de casse (de minuscule à majuscule).
5. Le Super-Pouvoir : Dépivoter les Colonnes (Unpivot)#
Voici la transformation la plus spectaculaire et la plus indispensable de Power Query.
Considérez ce tableau de reporting financier reçu d'une direction commerciale :
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Produit │ Janvier │ Février │ Mars │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ Ordinateur │ 12 000 │ 14 500 │ 18 200 │
│ Écran │ 3 400 │ 4 100 │ 3 900 │
└──────────────┴──────────────┴──────────────┴──────────────┘
Si vous importez ce tableau tel quel dans Power BI, vous serez incapable d'écrire une mesure DAX unique pour sommer les ventes ou de filtrer par date sur un axe temporel ! Les mois doivent être des lignes, pas des colonnes.
La solution en 2 clics :#
- Sélectionnez la colonne fixe (
Produit). - Clic droit > Dépivoter les autres colonnes (Unpivot Other Columns).
Power Query restructure instantanément vos données en un format tabulaire normalisé (Tidy Data) :
┌──────────────┬──────────────┬──────────────┐
│ Produit │ Attribut │ Valeur │
├──────────────┼──────────────┼──────────────┤
│ Ordinateur │ Janvier │ 12 000 │
│ Ordinateur │ Février │ 14 500 │
│ Ordinateur │ Mars │ 18 200 │
│ Écran │ Janvier │ 3 400 │
│ Écran │ Février │ 4 100 │
│ Écran │ Mars │ 3 900 │
└──────────────┴──────────────┴──────────────┘
Renommez Attribut en Mois et Valeur en Montant : votre table est prête pour le moteur DAX !
6. Créer des Colonnes Calculées et Conditionnelles#
Lorsque vous devez créer un nouvel attribut lors de l'ingestion, privilégiez les fonctionnalités de l'onglet Ajouter une colonne :
A. La colonne conditionnelle (Interface sans code)#
L'outil Colonne conditionnelle vous permet d'écrire une logique de type Si... Alors... Sinon de manière totalement visuelle :
Si [MontantVente] est supérieur ou égal à 1000 alors "Grand Compte"
Sinon si [MontantVente] est supérieur ou égal à 500 alors "Moyen Compte"
Sinon "TPE"
B. Le code M sous-jacent#
Sous le capot, Power Query génère une expression en langage M :
if [OrderDate] < #date(2025, 1, 1) then [Revenue] * 0.90 else [Revenue] * 0.95
[!NOTE] Le langage M est strictement sensible à la casse (case-sensitive). Tous les mots-clés s'écrivent en minuscules :
if,then,else,let,in. ÉcrireIFouIfprovoquera une erreur de syntaxe.
7. Combiner des Requêtes : Fusionner vs Ajouter#
En modélisation décisionnelle, vous devez continuellement regrouper vos données éparses. Ne confondez jamais ces deux opérations :
┌────────────────────────────────────────────────────────┐
│ FUSIONNER (Merge) │
│ Jointure HORIZONTALE basée sur une colonne commune │
│ Table A [ID, Nom] + Table B [ID, Ville] │
│ ──► Table Résultat [ID, Nom, Ville] (Équivalent JOIN)│
└────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────┐
│ AJOUTER (Append) │
│ Empilement VERTICAL de tables ayant la même structure│
│ Ventes 2024 (10 000 lignes) │
│ + Ventes 2025 (15 000 lignes) │
│ ──► Table Résultat (25 000 lignes) (Équivalent UNION)│
└────────────────────────────────────────────────────────┘
Lors d'une Fusion de requêtes, Power Query vous propose les différents types de jointures relationnelles : - Externe gauche (Left Outer) : Toutes les lignes de la première table et uniquement celles qui correspondent dans la seconde (le choix par défaut pour enrichir une table de faits). - Interne (Inner) : Uniquement les lignes communes aux deux tables. - Anti-gauche (Left Anti) : Les lignes présentes dans la première table mais absentes de la seconde (extrêmement pratique pour auditer des clients sans aucune commande !).
🚀 Le Secret des Pros : Le Pliage de Requête (Query Folding)#
Le Query Folding (ou pliage de requête) est le mécanisme le plus important pour la scalabilité de vos rafraîchissements Power BI.
Lorsqu'une étape est compatible avec la source (par exemple une base de données SQL), Power Query ne télécharge pas des gigaoctets de données pour faire le tri ou le filtre lui-même sur votre machine. Il traduit vos étapes M en une requête SQL native et délègue l'exécution directement au processeur du serveur de base de données !
Comment vérifier si vos étapes sont pliées ?#
- Dans le volet Étapes appliquées, faites un clic droit sur une étape.
- Si l'option Afficher la requête native est cliquable, l'étape est pliée ! Cliquez dessus pour admirer la requête SQL générée par Power Query.
- Si l'option est grisée, le pliage est interrompu à cette étape.
[!TIP] Règle d'or de performance : Placez toujours les étapes pliables (filtrer les lignes, supprimer les colonnes, fusions SQL) au tout début de votre historique d'étapes. Dès qu'une étape non pliable est insérée (comme l'ajout d'une colonne d'index ou l'application d'une fonction M sur-mesure non traduisible en SQL), toutes les étapes suivantes devront être traitées en local par Power BI.
Vous maîtrisez désormais la boîte à outils complète de l'ingénieur de données Power Query ! Mettons sans plus attendre ces compétences en pratique dans un atelier complet où vous allez assainir un jeu de données réel.
Commentaires