Qu’est-ce que Power Query ?
Power Query est le moteur de préparation des données intégré à Power BI (et à Excel). Il permet d’importer, nettoyer et remodeler des données sans écrire de code, puis de rejouer automatiquement toutes ces opérations à chaque actualisation. Vos fichiers sources ne sont jamais modifiés : Power Query lit la source et applique ses transformations à la volée.
On l’ouvre depuis Power BI Desktop avec Accueil > Transformer les données.
Les zones de l’éditeur
- Le volet Requêtes (à gauche) : la liste des requêtes ; chacune deviendra une table du modèle si son chargement est activé.
- L’aperçu des données (au centre) : quelques lignes de la requête sélectionnée. L’icône à gauche de chaque en-tête indique le type (ABC pour texte, 123 pour entier, 1.2 pour décimal, calendrier pour date).
- Les paramètres de la requête (à droite) : son nom et surtout la liste des étapes appliquées.
- Le ruban : onglets Accueil, Transformer, Ajouter une colonne, Affichage.
- La barre de formule : affiche le code de l’étape sélectionnée. Si elle n’est pas visible, activez-la dans l’onglet Affichage.
Dans l’onglet Affichage, activez aussi Qualité de la colonne, Distribution de la colonne et Profil de la colonne : vous voyez immédiatement le pourcentage de valeurs valides, d’erreurs et de vides. Par défaut, ce profil porte sur les 1 000 premières lignes ; on peut l’étendre à tout le jeu de données dans la barre d’état.
Une action = une étape
Chaque clic crée une étape. Par exemple, supprimer une colonne ajoute l’étape Colonnes supprimées. Cliquer sur une étape montre les données à ce stade : c’est un excellent moyen de déboguer. Vous pouvez :
- renommer une étape (clic droit > Renommer) pour documenter votre travail ;
- supprimer une étape (croix) ;
- modifier ses paramètres (icône engrenage).
Attention : les étapes s’enchaînent. Supprimer ou modifier une étape au milieu peut casser les suivantes (par exemple si elles utilisent une colonne disparue).
Le langage M
Derrière l’interface, chaque requête est un programme en langage M. Ouvrez Accueil > Éditeur avancé pour le voir en entier :
let
Source = Csv.Document(File.Contents("C:\Formation\ventes.csv"),
[Delimiter = ",", Encoding = 65001, QuoteStyle = QuoteStyle.Csv]),
#"En-têtes promus" = Table.PromoteHeaders(Source, [PromoteAllScalars = true]),
#"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",
{{"Date", type date}, {"Quantite", Int64.Type}, {"PrixUnitaire", Int64.Type}})
in
#"Type modifié"
À retenir :
letouvre la liste des étapes, séparées par des virgules ;- chaque étape a un nom ; les noms avec espaces ou accents s’écrivent
#"..."; - chaque étape utilise généralement le résultat de la précédente ;
inindique l’étape renvoyée comme résultat ;- le M est sensible à la casse :
Table.RowCountfonctionne,table.rowcountnon.
Vous n’avez pas besoin d’écrire du M pour bien utiliser Power Query, mais savoir le lire vous permettra de comprendre et de corriger vos requêtes.
Fermer et appliquer
Quand vos transformations sont prêtes, Fermer et appliquer charge le résultat dans le modèle. Appliquer charge sans fermer l’éditeur.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Explorer une requête
Créez avec le Bloc-notes le fichier
C:\Formation\ventes.csv(encodage UTF-8) :Date,Magasin,Categorie,Produit,Quantite,PrixUnitaire 2026-01-03,Lyon,Boissons,Jus d'orange,10,3 2026-01-03,Lille,Epicerie,Pates,20,2 2026-01-10,Nantes,Frais,Yaourt,30,1 2026-01-17,Lyon,Epicerie,Riz,15,2 2026-01-24,Lille,Boissons,Eau,50,1 2026-02-02,Nantes,Boissons,Jus d'orange,12,3 2026-02-07,Lyon,Frais,Fromage,8,6 2026-02-14,Lille,Frais,Yaourt,25,1 2026-02-21,Nantes,Epicerie,Pates,18,2 2026-02-28,Lyon,Boissons,Eau,40,1 2026-03-06,Lille,Epicerie,Riz,10,2 2026-03-13,Nantes,Frais,Fromage,5,6- Importez ce fichier avec Obtenir les données > Texte/CSV, puis cliquez sur Transformer les données.
- Activez la barre de formule et les options Qualité de la colonne et Profil de la colonne (onglet Affichage).
- Cliquez sur chacune des étapes appliquées et observez la barre de formule.
- Supprimez la colonne
Categorie, puis renommez l’étape créée enSansCategorie. - Ouvrez l’éditeur avancé et repérez votre étape dans le code.
- La requête comporte au moins les étapes Source, En-têtes promus, Type modifié et SansCategorie
- La qualité de colonne affiche 100 % de valeurs valides pour Quantite
- L'éditeur avancé montre l'étape SansCategorie utilisant Table.RemoveColumns
Compléter une requête M
Complétez la requête pour qu’elle promeuve les en-têtes puis type les colonnes
Date(date) etQuantite(nombre entier). La requête doit renvoyer la dernière étape.let Source = Csv.Document(File.Contents("C:\Formation\ventes.csv"), [Delimiter = ",", Encoding = 65001]), // Étape 1 : promouvoir les en-têtes Entetes = ..., // Étape 2 : typer Date et Quantite Types = ... in ...Rôle de let ... in
Dans une requête M, que désigne l’expression placée après
in?- La première étape
- Le résultat renvoyé par la requête
- Le chemin du fichier source
- Un commentaire
Quiz de fin de leçon
Que se passe-t-il pour le fichier source quand vous supprimez une colonne dans Power Query ?
- La colonne est supprimée du fichier
- Rien : la transformation s'applique seulement au résultat de la requête
- Le fichier est renommé
Comment écrit-on en M un nom d’étape contenant des espaces ?
- #"Type modifié"
- [Type modifié]
- 'Type modifié'
Que montre l’option Qualité de la colonne ?
- Le pourcentage de valeurs valides, d'erreurs et de vides
- La couleur de la colonne
- La taille du fichier
La suite du cours
- Nettoyer les données : types, vides, doublons, texte20 min
- Ajouter des colonnes : personnalisées, conditionnelles, fractionnées15 min
- Combiner des requêtes : ajouter et fusionner20 min
- Remodeler (dépivoter, regrouper) et bonnes pratiques20 min