Power Query dans Power BI : nettoyer, transformer et combiner vos données pas à pas
- Thématique
- Data & business intelligence
- Mis à jour
- Lecture
- 13 min
- Formation
- Power BI : Transformer vos données à l'aide de Power Query
L'essentiel en 30 secondes
- Power Query dans Power BI est l'outil de préparation de données qui importe, nettoie et transforme les sources avant leur chargement dans le modèle.
- Chaque transformation est enregistrée comme une étape appliquée, écrite en langage M, et rejouée automatiquement à chaque actualisation.
- Le dépivotage transforme des colonnes de mois ou de catégories en lignes, le format attendu par Power BI pour analyser et filtrer.
- Le connecteur Dossier combine en une seule table tous les fichiers Excel ou CSV de même structure déposés dans un répertoire.
- Les outils Qualité, Distribution et Profil de colonne de l'onglet Affichage repèrent les erreurs, les valeurs vides et les doublons avant qu'ils ne faussent les rapports.
Sommaire de l'article
- Qu’est-ce que Power Query dans Power BI ?
- Pourquoi nettoyer ses données avec Power Query ?
- Comment transformer des données avec Power Query : les étapes
- Contrôler la qualité des données
- Bonnes pratiques et fonctions avancées
- Les erreurs fréquentes avec Power Query
- Power Query ou DAX : où faire chaque transformation ?
- Comment progresser sur Power Query ?
- En résumé
Power Query dans Power BI est l’outil qui prépare vos données avant l’analyse : il se connecte aux sources, corrige les types, supprime les lignes inutiles, sépare ou fusionne des colonnes, combine plusieurs fichiers et restructure les tableaux. Chaque opération est mémorisée et rejouée à chaque actualisation, ce qui transforme un nettoyage manuel répétitif en processus automatique.
Ce guide s’adresse aux analystes, contrôleurs de gestion et utilisateurs de Power BI Desktop qui passent trop de temps à retraiter leurs exports. Vous y verrez comment ouvrir l’éditeur, appliquer les transformations essentielles, pivoter et dépivoter des colonnes, fusionner des tables, combiner des fichiers Excel et contrôler la qualité de vos données.
Qu’est-ce que Power Query dans Power BI ?
Power Query est le moteur d’extraction et de transformation de données (ETL) intégré à Power BI Desktop. Il se connecte à des centaines de sources (Excel, CSV, SQL Server, SharePoint, pages web), applique une suite d’étapes de nettoyage enregistrées en langage M, puis charge le résultat dans le modèle de données, où il sera exploité par les mesures DAX et les visuels.
Dans Power BI Desktop, l’éditeur s’ouvre via Accueil > Transformer les données. Il comporte quatre zones :
- le volet Requêtes à gauche, qui liste toutes les tables importées ;
- l’aperçu des données au centre, sur lequel vous appliquez les transformations ;
- le volet Paramètres d’une requête à droite, avec la liste des étapes appliquées ;
- le ruban en haut, avec les onglets Accueil, Transformer, Ajouter une colonne et Affichage.
La logique est celle d’une recette : chaque clic ajoute une étape, que vous pouvez renommer, déplacer, modifier (icône engrenage) ou supprimer. Cliquer sur une étape affiche l’état des données à ce moment précis, ce qui facilite le contrôle.
Point de vocabulaire : l’onglet Transformer modifie une colonne existante, alors que l’onglet Ajouter une colonne crée une nouvelle colonne à partir des autres. Beaucoup de commandes existent dans les deux onglets.
Pourquoi nettoyer ses données avec Power Query ?
Un rapport n’est jamais plus fiable que les données qui l’alimentent. Power Query règle les problèmes les plus courants des fichiers métiers :
- Des exports mal structurés : lignes de titre, totaux intermédiaires, cellules fusionnées, colonnes vides.
- Des types incohérents : dates stockées en texte, nombres avec des espaces, séparateurs décimaux mélangés.
- Des tableaux « à l’horizontale » : une colonne par mois, impossible à filtrer ou à relier à un calendrier.
- Des données éclatées : un fichier par mois ou par agence, qu’il faut consolider.
- Des référentiels à croiser : ajouter la catégorie d’un produit ou la région d’un client depuis une autre table.
Le gain est double : le traitement est automatisé (vous déposez le nouveau fichier, vous actualisez) et traçable (chaque étape est visible et modifiable par un collègue).
Comment transformer des données avec Power Query : les étapes
Prenons un cas concret : un export commercial Excel avec une ligne de titre, des cellules vides dans la colonne Région, une colonne « Client - Ville » à séparer et une colonne par mois.
Étape 1 — Importer la source
Dans Power BI Desktop, cliquez sur Accueil > Obtenir les données > Classeur Excel, sélectionnez le fichier, cochez la feuille ou le tableau voulu dans le Navigateur, puis cliquez sur Transformer les données (et non Charger) pour ouvrir l’éditeur.
Si le fichier contient des tableaux Excel nommés (créés avec Ctrl+T), sélectionnez-les de préférence aux feuilles : leurs limites sont plus fiables.
Étape 2 — Nettoyer la structure
- Supprimer les lignes du haut : Accueil > Réduire les lignes > Supprimer les lignes > Supprimer les lignes du haut, puis indiquez le nombre de lignes de titre.
- Utiliser la première ligne pour les en-têtes : Accueil > Utiliser la première ligne pour les en-têtes.
- Supprimer les colonnes inutiles : sélectionnez les colonnes à garder avec Ctrl+clic, puis clic droit > Supprimer les autres colonnes. Cette méthode est plus robuste que supprimer les colonnes une à une, car une nouvelle colonne ajoutée dans la source ne cassera pas la requête.
- Supprimer les lignes vides : Accueil > Supprimer les lignes > Supprimer les lignes vides.
Étape 3 — Définir les bons types de données
Cliquez sur l’icône à gauche de chaque en-tête (ABC, 123, calendrier) pour choisir le type : Texte, Nombre décimal, Nombre entier, Date, Vrai/Faux. Si des dates au format étranger sont mal interprétées, utilisez clic droit > Modifier le type > Utilisation des paramètres régionaux et précisez la langue du format d’origine.
Faites-le tôt, mais une seule fois : les étapes « Type modifié » en double ralentissent la requête et compliquent la lecture.
Étape 4 — Remplir les cellules vides
Dans les exports, la région n’est souvent indiquée que sur la première ligne de chaque bloc. Sélectionnez la colonne puis Transformer > Remplir > Vers le bas : chaque cellule vide reçoit la valeur non vide du dessus.
Attention, la commande ne remplit que les valeurs réellement nulles. Si les cellules contiennent des chaînes vides, remplacez d’abord les valeurs vides par null avec Remplacer les valeurs.
Étape 5 — Séparer et combiner des colonnes
Pour découper « Dupont SA - Lyon » en deux colonnes, sélectionnez-la puis Transformer > Fractionner la colonne > Par délimiteur, choisissez le délimiteur personnalisé « - » et l’option Délimiteur le plus à gauche. Nettoyez ensuite les espaces superflus avec Format > Supprimer les espaces.
Si une cellule contient une liste séparée par des virgules (« Rouge, Bleu, Vert ») et que vous voulez une ligne par valeur, ouvrez les Options avancées du fractionnement et choisissez Fractionner en lignes.
À l’inverse, pour assembler des colonnes, sélectionnez-les puis Ajouter une colonne > Fusionner les colonnes et choisissez un séparateur.
Étape 6 — Dépivoter les colonnes de mois
C’est la transformation qui change tout. Un tableau avec une colonne Produit puis douze colonnes Janvier à Décembre ne se prête pas à l’analyse. Sélectionnez la colonne Produit, puis Transformer > Supprimer le tableau croisé dynamique des autres colonnes (l’opération « dépivoter les autres colonnes »). Vous obtenez trois colonnes : Produit, Attribut (le mois) et Valeur (le montant). Renommez-les en Produit, Mois et Montant.
Choisir « les autres colonnes » plutôt que les colonnes sélectionnées est important : si un treizième mois apparaît dans le fichier, il sera pris en compte automatiquement.
L’opération inverse, Colonne pivot, transforme les valeurs d’une colonne en en-têtes. Elle sert par exemple à passer d’une liste « Indicateur / Valeur » à une colonne par indicateur.
Étape 7 — Ajouter des colonnes calculées
L’onglet Ajouter une colonne propose plusieurs outils :
- Colonne conditionnelle : une interface « Si… alors… sinon » sans code, idéale pour créer des tranches.
- Colonne à partir d’exemples : vous tapez le résultat attendu sur quelques lignes et Power Query devine la transformation.
- Colonne d’index : une numérotation qui sert de clé ou d’ordre de tri.
- Date > Année ou Âge : pour extraire une année de naissance ou calculer une durée depuis une date.
- Colonne personnalisée : une formule M libre.
Par exemple, pour classer des clients par tranche d’âge avec une colonne personnalisée :
if [Âge] < 25 then "18-24 ans"
else if [Âge] < 35 then "25-34 ans"
else if [Âge] < 50 then "35-49 ans"
else "50 ans et plus"
Étape 8 — Fusionner deux tables
Pour ajouter la catégorie de chaque produit à la table des ventes, sélectionnez la requête Ventes puis Accueil > Fusionner des requêtes. Choisissez la table Produits, cliquez sur la colonne clé dans chacune des deux tables et sélectionnez le type de jointure :
| Type de jointure | Résultat |
|---|---|
| Externe gauche | Toutes les lignes de la première table, et les correspondances de la seconde |
| Externe droite | Toutes les lignes de la seconde table, et les correspondances de la première |
| Externe entière | Toutes les lignes des deux tables |
| Interne | Uniquement les lignes présentes dans les deux tables |
| Anti gauche | Les lignes de la première table sans correspondance (utile pour trouver les orphelins) |
| Anti droite | Les lignes de la seconde table sans correspondance |
Une colonne contenant des tables apparaît : cliquez sur l’icône à double flèche de son en-tête pour choisir les colonnes à développer. Décochez Utiliser le nom de la colonne d’origine comme préfixe pour garder des noms courts.
Notre conseil : dans Power BI, une fusion n’est pas toujours nécessaire. Garder Produits comme table séparée, reliée aux ventes par une relation, donne souvent un modèle plus léger et plus souple. Réservez la fusion aux cas où la table de référence n’a pas d’intérêt propre dans le rapport.
Étape 9 — Combiner plusieurs fichiers Excel
Vous recevez un fichier de ventes par mois, tous de même structure ? Déposez-les dans un même dossier, puis :
- Obtenir les données > Dossier, indiquez le chemin du répertoire.
- Cliquez sur Combiner et transformer les données.
- Choisissez la feuille ou le tableau à utiliser dans le fichier exemple.
Power Query crée une requête qui empile tous les fichiers, avec une colonne indiquant le nom du fichier d’origine, ainsi qu’un groupe de requêtes d’aide (dont Transformer l’exemple de fichier). Les transformations appliquées à cet exemple sont reproduites sur chaque fichier. Le mois suivant, il suffit de déposer le nouveau fichier et d’actualiser.
Filtrez dès le début la colonne Extension (par exemple sur « .xlsx ») et excluez les fichiers temporaires commençant par « ~$ » pour éviter les erreurs de combinaison.
Contrôler la qualité des données
Avant de charger, vérifiez ce que vous allez envoyer au modèle. Dans l’onglet Affichage, cochez :
- Qualité de la colonne : pourcentage de valeurs valides, en erreur et vides ;
- Distribution de la colonne : nombre de valeurs distinctes et uniques, utile pour repérer les doublons d’une clé ;
- Profil de la colonne : statistiques détaillées (minimum, maximum, moyenne, valeurs les plus fréquentes).
Par défaut, ce profilage porte sur les 1 000 premières lignes. Cliquez sur la mention en bas de l’écran pour le baser sur l’ensemble du jeu de données, sinon une erreur située plus loin passera inaperçue.
Pour traiter les erreurs détectées, clic droit sur l’en-tête : Remplacer les erreurs par une valeur par défaut, ou Supprimer les erreurs si les lignes sont inexploitables. Pour une clé qui doit être unique, Supprimer les doublons garantit que la relation du modèle fonctionnera en un-à-plusieurs.
Bonnes pratiques et fonctions avancées
Lire et ajuster le code M
Activez Affichage > Barre de formule : chaque étape y apparaît sous forme de fonction M. L’Éditeur avancé (onglet Accueil) affiche la requête complète :
let
Source = Excel.Workbook(File.Contents("C:\Data\ventes.xlsx"), null, true),
Ventes = Source{[Item = "Ventes", Kind = "Sheet"]}[Data],
EnTetes = Table.PromoteHeaders(Ventes, [PromoteAllScalars = true]),
Types = Table.TransformColumnTypes(EnTetes, {{"Date", type date}, {"Montant", type number}}),
LignesFiltrees = Table.SelectRows(Types, each [Montant] <> null and [Montant] > 0)
in
LignesFiltrees
Sans devenir développeur M, savoir lire cette structure let … in aide beaucoup à comprendre et corriger une requête.
Changer la source sans tout refaire
Quand le fichier est déplacé, ouvrez Accueil > Paramètres de la source de données > Modifier la source, ou cliquez sur l’engrenage de l’étape Source. Mieux : créez un paramètre (Accueil > Gérer les paramètres) contenant le chemin du dossier, et utilisez-le dans toutes les requêtes. Un seul changement suffit alors pour basculer de l’environnement de test à la production.
Référence ou duplication ?
Clic droit sur une requête :
- Dupliquer copie toutes les étapes : les deux requêtes deviennent indépendantes.
- Référence crée une requête qui part du résultat de la première : si la requête d’origine change, la référence suit.
Utilisez la référence pour décliner une table de base propre en plusieurs tables (une table Clients et une table Pays issues du même export), et désactivez le chargement de la requête intermédiaire (clic droit > décocher Activer le chargement) pour ne pas alourdir le modèle.
Colonne conditionnelle ou remplacement de valeurs ?
Remplacer les valeurs corrige une valeur par une autre dans la même colonne (« Idf » devient « Île-de-France »). La colonne conditionnelle crée une nouvelle catégorie à partir de règles. Pour harmoniser de nombreuses variantes, la solution la plus maintenable reste une petite table de correspondance fusionnée avec les données.
Préserver le query folding
Sur une base de données comme SQL Server, Power Query traduit les étapes en requête SQL exécutée par le serveur : c’est le query folding. Clic droit sur une étape > Afficher la requête native : si l’option est disponible, l’étape est bien déléguée à la base. Placez en premier les filtres, suppressions de colonnes et regroupements, et gardez pour la fin les transformations qui cassent le folding (colonnes d’index, certaines colonnes personnalisées). Si vous maîtrisez le SQL, écrire directement la requête d’extraction est une autre option : notre guide pour apprendre SQL vous donnera les bases.
Suivre la provenance des données
Affichage > Dépendances de requête affiche un schéma de toutes les requêtes et de leurs sources. C’est l’outil à ouvrir quand vous reprenez le fichier d’un collègue ou quand une actualisation échoue sans raison apparente.
Importer des données depuis une page web
Obtenir les données > Web, collez l’URL : le Navigateur liste les tableaux HTML détectés sur la page, et l’option Ajouter une table à l’aide d’exemples permet d’extraire des éléments qui ne sont pas dans un tableau. Pour des sites plus complexes, avec pagination ou contenu dynamique, un script Python est souvent plus adapté : voyez notre guide de web scraping avec Python.
Les erreurs fréquentes avec Power Query
| Erreur | Cause | Solution |
|---|---|---|
| « La colonne X est introuvable » après actualisation | Une colonne a été renommée ou supprimée dans la source | Corriger l’étape en cause, préférer « Supprimer les autres colonnes » |
| Des montants deviennent des erreurs | Séparateur décimal ou texte dans une colonne numérique | Changer le type avec les paramètres régionaux, remplacer les erreurs |
| Remplir vers le bas ne fait rien | Les cellules contiennent du texte vide, pas null | Remplacer les valeurs vides par null avant de remplir |
| La combinaison de dossier échoue | Fichier temporaire ou de structure différente dans le dossier | Filtrer sur l’extension et le nom de fichier |
| La fusion multiplie les lignes | Clé non unique dans la table de référence | Supprimer les doublons de la clé avant la fusion |
| Actualisation très lente | Sources lues en entier, fusions tardives, folding perdu | Filtrer tôt, réordonner les étapes, vérifier la requête native |
| Modèle trop lourd | Requêtes intermédiaires chargées | Désactiver le chargement des requêtes techniques |
Power Query ou DAX : où faire chaque transformation ?
Power BI propose deux endroits pour calculer : Power Query avant le chargement, et DAX dans le modèle. La règle générale est de préparer le plus en amont possible.
| Besoin | Power Query | DAX |
|---|---|---|
| Nettoyer, typer, supprimer des lignes | Oui | Non |
| Dépivoter, fractionner, fusionner des sources | Oui | Non |
| Créer une colonne de catégorie fixe (tranche d’âge) | Recommandé | Possible (colonne calculée) |
| Calculer un indicateur qui réagit aux filtres | Non | Oui (mesure) |
| Comparer une période avec l’année précédente | Non | Oui (time intelligence) |
Une fois vos tables propres, les calculs d’indicateurs se font en DAX : notre guide sur le DAX dans Power BI prend le relais. Et si vous utilisez Power Query surtout dans Excel, notre article sur Power Query et Power Pivot dans Excel présente les spécificités du tableur.
Comment progresser sur Power Query ?
Power Query s’apprend très bien en autonomie, à condition de travailler sur des fichiers réalistes. Voici l’ordre que nous recommandons :
- Les bases (1 heure) : importer, promouvoir les en-têtes, typer, filtrer, supprimer des colonnes.
- La restructuration : remplir, fractionner, dépivoter, colonnes conditionnelles.
- La combinaison : fusion, ajout, combinaison de dossiers.
- La fiabilisation : profilage, gestion des erreurs, paramètres, références.
- L’optimisation : query folding, dépendances, lecture du code M.
Pour pratiquer avec des fichiers fournis, la formation vidéo Power Query pour Power BI d’EspritAcadémique dure deux heures et ne demande aucun prérequis. Elle couvre notamment :
- les premières transformations, le remplissage des cellules vides et le pivotement des colonnes ;
- le fractionnement, les colonnes conditionnelles et la fusion de tables ;
- la gestion des dates, le calcul d’une année de naissance et le classement par tranche d’âge ;
- la combinaison de plusieurs fichiers Excel et le contrôle de la qualité des données ;
- le changement de source, la différence entre référence et duplication, et la provenance des données ;
- l’import d’une base via SQL Server et un exemple d’extraction de données web.
Si vous voulez replacer Power Query dans le parcours complet, de la préparation à la publication, consultez notre feuille de route pour apprendre Power BI.
En résumé
Power Query est la première brique de tout projet Power BI : il transforme des exports bruts en tables propres, typées et structurées, et rejoue ce travail à chaque actualisation. Maîtrisez les étapes de base, le dépivotage, la fusion et la combinaison de dossiers, contrôlez la qualité avant de charger, puis confiez les indicateurs au DAX. Vous gagnerez du temps à chaque mise à jour et des rapports plus fiables.
Questions fréquentes
Quelle est la différence entre Power Query dans Excel et dans Power BI ?
Le moteur et le langage M sont les mêmes, et la plupart des menus sont identiques. La différence est la destination : dans Excel, les requêtes chargent une feuille ou le modèle de données Power Pivot ; dans Power BI, elles alimentent un modèle sémantique qui peut être publié et actualisé automatiquement dans Power BI Service. Ce que vous apprenez dans l'un se transpose directement dans l'autre.
Faut-il connaître le langage M pour utiliser Power Query ?
Non. L'essentiel des transformations se fait avec les boutons du ruban, et Power Query écrit le code M à votre place. Lire le M devient utile pour ajuster une étape, remplacer une valeur codée en dur par un paramètre ou écrire une colonne personnalisée. Activez la barre de formule dans l'onglet Affichage pour voir le code de chaque étape et vous familiariser progressivement.
Pourquoi mes transformations Power Query sont-elles lentes ?
Les causes les plus fréquentes sont des sources lourdes lues entièrement (fichiers Excel volumineux, dossiers de centaines de fichiers), des fusions entre grandes tables et la perte du query folding sur une base de données. Filtrez les lignes et supprimez les colonnes inutiles le plus tôt possible, et vérifiez avec Afficher la requête native que les étapes sont bien exécutées par la base.
Quelle est la différence entre fusionner et ajouter des requêtes ?
Fusionner des requêtes équivaut à une jointure : on ajoute des colonnes d'une autre table en faisant correspondre une clé, comme une RECHERCHEV. Ajouter des requêtes empile les lignes de plusieurs tables de même structure les unes sous les autres, par exemple les ventes de janvier puis celles de février. Les deux commandes se trouvent dans l'onglet Accueil, groupe Combiner.
Combien de temps faut-il pour maîtriser Power Query ?
Deux heures de pratique guidée suffisent pour réaliser les transformations courantes : types, filtres, fractionnement, remplissage, dépivotage, fusion. Comptez ensuite quelques semaines d'usage sur vos propres fichiers pour acquérir les bons réflexes. La maîtrise du langage M et de l'optimisation vient plus tard, quand les volumes et la complexité des sources augmentent.
Les données d'origine sont-elles modifiées par Power Query ?
Non. Power Query lit la source, applique les étapes en mémoire et charge le résultat dans le modèle Power BI. Le fichier Excel, le CSV ou la base de données d'origine restent intacts. C'est ce qui permet de rejouer les mêmes transformations à chaque actualisation, sur des données mises à jour, sans aucun risque pour la source.