Remarque : Les fonctionnalités de Power Query se trouvent dans le groupe Récupérer et transformer d’Excel 2016. Les informations fournies ici s’appliquent aux deux versions.
Dans ce didacticiel, vous allez utiliser l’éditeur de requête de Power Query pour importer des données à partir d’un fichier Excel local qui contient des informations sur le produit et à partir d’un flux OData qui contient des informations sur les commandes de produits. Vous devez effectuer les étapes de transformation et d’agrégation et combiner les données des deux sources pour produire un rapport Total Sales per Product and Year.
Pour suivre ce didacticiel, vous avez besoin du classeur produits et commandes . Dans la boîte de dialogue Enregistrer sous, nommez le fichier Products and Orders.xlsx.
Contenu de ce didacticiel
- Tâche 1 : importer des produits dans un classeur Excel
- Étape 1 : se connecter à un classeur Excel
- Étape 2 : promouvoir la première ligne en tant qu’en-têtes de colonne de table
- Étape 3 : supprimer les autres colonnes pour afficher uniquement les colonnes utiles
- Étapes Power Query créées
- Étape 4 : importer une requête de produits
- Tâche 2 : importer des données de commande à partir d’un flux OData
- Étape 1 : se connecter à un flux OData
- Étape 2 : développer une table Order_Details
- Développer le lien de table Order_Details
- Étape 3 : supprimer les autres colonnes pour afficher uniquement les colonnes utiles
- Supprimer les colonnes sélectionnées
- Étape 4 : calculer le total de chaque ligne Order_Details
- Calculer le total de chaque ligne Order_Details
- Étape 5 : transformer une colonne d’année OrderDate
- Étape 6 : regrouper les lignes par ProductID et Year
- Étape 7 : renommer une requête
- Résultats de la requête finale
- Étapes Power Query créées
- Étape 8 : désactiver le téléchargement de la requête dans un classeur Excel
- Désactiver le téléchargement d’une requête
- Tâche 3 : combiner les requêtes Products et Total Sales
- Étape 1 : fusionner ProductID dans une requête Total Sales
- Étape 2 : développer une colonne de fusion
- Développer le lien de table NewColumn
- Étapes Power Query créées
- Étape 3 : charger une requête Total Sales per Product dans un modèle de données Excel
- Charger la requête Total Sales per Product dans le modèle de données Excel
- Requête finale Total Sales per Product
Tâche 1 : importer des produits dans un classeur Excel
Dans cette tâche, vous importez des produits du fichier produits et commandes. xlsx dans un classeur Excel.
Étape 1 : se connecter à un classeur Excel
- Créez un classeur Excel.
- Dans l’onglet de ruban POWER QUERY, cliquez sur À partir d’un fichier > À partir d’Excel.
- Dans la boîte de dialogue Parcourir d’Excel, recherchez ou tapez le chemin d’accès au fichier Products and Orders.xlsx pour importer un fichier ou définir un lien vers un fichier.
- Dans le volet navigateur , double-cliquez sur la feuille de calcul produits ou cliquez sur produits , puis sur modifier la requête. Lorsque vous modifiez une requête ou que vous vous connectez à une nouvelle source de données, la fenêtre de l’ éditeur de requête s’affiche.
Remarque : Pour visionner une courte vidéo expliquant comment afficher l’Éditeur de requête, reportez-vous à la fin de cet article.
Étape 2 : promouvoir la première ligne en tant qu’en-têtes de colonne de table
Dans le volet Aperçu de la requête, la première ligne de la table ne contient pas le nom des colonnes. Pour promouvoir la première ligne en tant qu’en-têtes de colonne de la table :
- Cliquez sur l’icône de table ( ) dans le coin supérieur gauche de l’aperçu des données.
- Cliquez sur Utiliser la première ligne pour les en-têtes.
Étape 3 : supprimer les autres colonnes pour afficher uniquement les colonnes utiles
Dans cette étape, vous supprimez toutes les colonnes à l’exception de ProductID, ProductName, CategoryID et QuantityPerUnit.
- Dans le volet Aperçu de la requête, sélectionnez les colonnes ProductID, ProductName, CategoryID et QuantityPerUnit (en utilisant les combinaisons Ctrl+Clic ou Maj+Clic).
- Dans le ruban Éditeur de requête, cliquez sur Supprimer les colonnes > Supprimer d’autres colonnes ou cliquez avec le bouton droit sur un en-tête de colonne, puis cliquez sur Supprimer d’autres colonnes.
Étapes Power Query créées
Tandis que vous effectuez des activités de requête dans Power Query, des étapes de requête sont créées et répertoriées dans le volet Paramètres d’une requête, dans la liste ÉTAPES APPLIQUÉES. Chaque étape de la requête a une formule Power Query correspondante, appelée également langage « M ». Pour plus d’informations sur le langage de formule Power Query, voir En savoir plus sur les formules Power Query.
Tâche | Étape de requête | Formule |
---|---|---|
Se connecter à un classeur Excel | Source | Source{[Name= »Products »]}[Data] |
Promouvoir la première ligne en tant qu’en-têtes de colonne de table | FirstRowAsHeader | Tableau. PromoteHeaders
(Produits) |
Supprimer les autres colonnes pour afficher uniquement les colonnes utiles | RemovedOtherColumns | Tableau. SelectColumns
(FirstRowAsHeader,{« ProductID », « ProductName », « CategoryID », « QuantityPerUnit »}) |
Étape 4 : importer une requête de produits
Dans cette étape, vous importez la requête Products dans votre classeur Excel.
- Dans le ruban Éditeur de requête, cliquez sur Appliquer et fermer. Les résultats apparaissent dans une nouvelle feuille de calcul Excel.
Tâche 2 : importer des données de commande à partir d’un flux OData
Au cours de cette tâche, vous allez importer des données dans votre classeur Excel à partir du flux OData Northwind à l’adresse http://services.odata.org/Northwind/Northwind.svc.
Étape 1 : se connecter à un flux OData
- Dans l’onglet de ruban POWER QUERY, cliquez sur À partir d’autres sources > À partir d’un flux OData.
- Dans la boîte de dialogue Flux OData, entrez l’URL du flux OData Northwind.
- Cliquez sur OK.
- Dans le volet Navigateur, double-cliquez sur la table Commandes ou cliquez sur Commandes, puis sur Modifier.
Remarque : Lorsque vous survolez une table, un aperçu de la table apparaît.
Étape 2 : développer une table Order_Details
Dans cette étape, vous développez la table Order_Details liée à la table Orders pour combiner les colonnes ProductID, UnitPrice et Quantity de la table Order_Details dans la table Orders. L’opération de développement combine les colonnes d’une table liée dans une table d’objet. Lorsque la requête est exécutée, les lignes de la table liée (Order_Details) sont combinées avec les lignes de la table d’objet (Orders).
Dans Power Query, une colonne contenant un lien vers une table liée a un lien Entrée ou Table. Un lien entrée accède à un enregistrement associé unique et représente unerelation une à une avec une table d’objet.Un lien table accède à une table liée et représente une relation un-à-plusieurs avec une table d’objet. Un lien représente les propriétés de navigation dans une source de données au sein d’un modèle relationnel. Pour un flux OData, les propriétés de navigation représentent une entité avec une association de clé étrangère. Dans une base de données, telle que SQL Server, les propriétés de navigation représentent des relations de clé étrangère dans la base de données.
Développer le lien de table Order_Details
Une fois que vous avez développé la table Order_Details, trois nouvelles colonnes et des lignes supplémentaires sont ajoutées à la table Orders, une pour chaque ligne dans la table imbriquée ou liée.
- Dans le volet Aperçu de la requête, accédez à la colonne Order_Details.
- Dans la colonne Order_Details , cliquez sur l’icône développer ( ).
- Dans le menu déroulant Développer :
- Cliquez sur (Sélectionner toutes les colonnes) pour effacer toutes les colonnes.
- Cliquez sur ProductID, UnitPrice et Quantity.
- Cliquez sur OK.
Remarque : Dans Power Query, vous pouvez développer les tables liées à une colonne et effectuer des opérations d’agrégation sur les colonnes de la table liée avant de développer les données dans la table d’objet. Pour plus d’informations sur l’exécution des opérations d’agrégation, voir Agréger les données d’une colonne.
Étape 3 : supprimer les autres colonnes pour afficher uniquement les colonnes utiles
Dans cette étape, vous supprimez toutes les colonnes à l’exception de OrderDate, ProductID, UnitPrice et Quantity. Dans la tâche précédente, vous avez utilisé Supprimer d’autres colonnes. Pour cette tâche, vous devez supprimer les colonnes sélectionnées.
Supprimer les colonnes sélectionnées
- Dans le volet Aperçu de la requête, sélectionnez toutes les colonnes :
- Cliquez sur la première colonne (OrderID).
- Appuyez sur la touche Maj et cliquez sur la dernière colonne (Shipper).
- Appuyez sur la touche Ctrl et cliquez sur les colonnes OrderDate, Order_Details.ProductID, Order_Details.UnitPrice et Order_Details.Quantity.
- Cliquez avec le bouton droit sur un en-tête de colonne sélectionné, puis cliquez sur Supprimer les colonnes.
Étape 4 : calculer le total de chaque ligne Order_Details
Dans cette étape, vous créez une colonne personnalisée pour calculer le total de chaque ligne Order_Details.
Calculer le total de chaque ligne Order_Details
- Dans le volet Aperçu de la requête , cliquez sur l’icône de table ( ) dans le coin supérieur gauche de l’aperçu.
- Cliquez sur Insérer une colonne > Personnalisée.
- Dans la boîte de dialogue Insérer une colonne personnalisée, dans la zone de texte Formule de colonne personnalisée, entrez [Order_Details.UnitPrice] * [Order_Details.Quantity].
- Dans la zone de texte Nouveau nom de colonne, entrez Line Total.
- Cliquez ensuite sur OK.
Étape 5 : transformer une colonne d’année OrderDate
Dans cette étape, vous transformez la colonne OrderDate pour afficher l’année de la date de commande.
- Dans la grille Aperçu, cliquez avec le bouton droit sur la colonne OrderDate, puis cliquez sur Transformer > Year.
- Renommez la colonne OrderDate en Year :
- Double-cliquez sur la colonne OrderDate, puis entrez Year ou
- Cliquez avec le bouton droit sur la colonne OrderDate, cliquez sur Renommer, puis entrez Year.
Étape 6 : regrouper les lignes par ProductID et Year
- Dans le volet Aperçu de la requête, sélectionnez Year et Order_Details.ProductID.
- Cliquez avec le bouton droit sur un des en-têtes, puis cliquez sur Regrouper par.
- Dans la boîte de dialogue Regrouper par :
- Dans la zone de texte Nouveau nom de colonne, entrez Total Sales.
- Dans le menu déroulant Opération, sélectionnez Somme.
- Dans le menu déroulant Colonne, sélectionnez Line Total.
- Cliquez sur OK.
Étape 7 : renommer une requête
Avant d’importer les données de ventes dans Excel, nommez la requête Total Sales :
- Dans le volet Paramètres d’une requête, dans la zone Nom, entrez Total Sales.
Résultats de la requête finale
Après avoir effectué chaque étape, vous aurez une requête Ventes totales sur le flux de données OData Northwind.
Étapes Power Query créées
Tandis que vous effectuez des activités de requête dans Power Query, des étapes de requête sont créées et répertoriées dans le volet Paramètres d’une requête, dans la liste ÉTAPES APPLIQUÉES. Chaque étape de la requête a une formule Power Query correspondante, appelée également langage « M ». Pour plus d’informations sur le langage de formule Power Query, voir En savoir plus sur les formules Power Query.
Tâche | Étape de requête | Formule |
---|---|---|
Se connecter à un flux OData | Source | Source{[Name= »Orders »]}[Data] |
Développer la table Order_Details | Développer Order_Details | Tableau. ExpandTableColumn
(Orders, « Order_Details », {« ProductID », « UnitPrice », « Quantity »}, {« Order_Details.ProductID », « Order_Details.UnitPrice », « Order_Details.Quantity »}) |
Supprimer les autres colonnes pour afficher uniquement les colonnes utiles | RemovedColumns | Tableau. RemoveColumns
(# »Expand Order_Details »,{« OrderID », « CustomerID », « EmployeeID », « RequiredDate », « ShippedDate », « ShipVia », « Freight », « ShipName », « ShipAddress », « ShipCity », « ShipRegion », « ShipPostalCode », « ShipCountry », « Customer », « Employee », « Shipper »}) |
Calculer le total de chaque ligne Order_Details | InsertedColumns | Tableau. AddColumn
(RemovedColumns, « Personnalisée », each [Order_Details.UnitPrice] * [Order_Details.Quantity]) |
Transformer la colonne OrderDate pour afficher l’année | RenamedColumns | Tableau. RenameColumns
(InsertedCustom,{{« Personnalisée », « Line Total »}}) |
TransformedColumn | Tableau. TransformColumns
(RenamedColumns,{{« OrderDate », Date.Year}}) |
|
RenamedColumns1 | Tableau. RenameColumns
(TransformedColumn,{{« OrderDate », « Year »}}) |
|
Regrouper les lignes par ProductID et Year | GroupedRows | Tableau. groupe (RenamedColumns1, {« Year », « Order_Details. ProductID »}, {{« Total Sales », chaque liste. Sum ([Line total]), tapez Number}}) |
Étape 8 : désactiver le téléchargement de la requête dans un classeur Excel
Comme la requête Total Sales ne représente pas le rapport Total Sales per Product and Year, vous devez désactiver le téléchargement de la requête dans le classeur Excel. Lorsque l’option Charger la feuille de calcul est désactivée dans le volet Paramètres d’une requête, le résultat de données de cette requête n’est pas téléchargé, mais la requête peut toujours être combinée avec d’autres requêtes afin d’obtenir le résultat souhaité. Vous allez découvrir comment combiner cette requête avec la requête Products dans la tâche suivante.
Désactiver le téléchargement d’une requête
- Dans le volet Paramètres d’une requête, désactivez la case à cocher Charger la feuille de calcul.
- Dans le ruban Éditeur de requête, cliquez sur Appliquer et fermer. Dans le volet Requêtes de classeur, la requête Total Sales indique Le chargement est désactivé.
Tâche 3 : combiner les requêtes Products et Total Sales
Power Query vous permet de combiner plusieurs requêtes en fusionnant ou en ajoutant celles-ci. L’opération de fusion est exécutée sur n’importe quelle requête Power Query avec une forme tabulaire, indépendamment de la source de données dont proviennent les données. Pour plus d’informations sur la combinaison de sources de données, voir Combiner plusieurs requêtes.
Dans cette tâche, vous combinez les requêtes Products et Total Sales en utilisant une étape de requête Fusionner et Développer.
Étape 1 : fusionner ProductID dans une requête Total Sales
- Dans le classeur Excel, accédez à la requête Products sur la feuille Sheet2.
- Dans l’onglet de ruban REQUÊTE, cliquez sur Fusionner.
- Dans la boîte de dialogue Fusionner, sélectionnez Products comme table primaire, puis Total Sales comme deuxième requête ou requête associée à fusionner. Total Sales devient une nouvelle colonne extensible.
- Pour associer Total Sales à Products via la colonne ProductID, sélectionnez la colonne ProductID dans la table Products, et la colonne Order_Details.ProductID dans la table Total Sales.
- Dans la boîte de dialogue Niveaux de confidentialité :
- Sélectionnez le niveau de confidentialité Organisationnel pour les deux sources de données.
- Cliquez sur Enregistrer.
- Cliquez sur OK.
Note de sécurité : Les niveaux de confidentialité empêchent les utilisateurs de combiner par inadvertance les données de plusieurs sources de données (potentiellement privées ou organisationnelles). Selon la requête, les utilisateurs pourraient envoyer par inadvertance des données de la source de données privée à une autre source de données pouvant être nuisible. Power Query analyse chaque source de données et classe celle-ci au niveau de confidentialité défini : Public, Organisationnel et Privé. Pour plus d’informations sur les niveaux de confidentialité, voir Niveaux de confidentialité.
Une fois que vous avez cliqué sur OK, l’opération de fusion crée une requête. Le résultat de la requête contient toutes les colonnes de la table primaire (Products) et une seule colonne contenant un lien de navigation vers la table liée (Total Sales). Une opération de développement ajoute de nouvelles colonnes à la table primaire ou à la table d’objet à partir de la table liée.
Étape 2 : développer une colonne de fusion
Dans cette étape, vous développez la colonne de fusion nommée nouvellecolonne pour créer deux colonnes dans la requête Products : year et Total Sales.
Développer le lien de table NewColumn
- Dans la grille aperçu de la requête , cliquez sur l’icône développer de nouvellecolonne ( ).
- Dans le menu déroulant Développer :
- Cliquez sur (Sélectionner toutes les colonnes) pour effacer toutes les colonnes.
- Cliquez sur Year et sur Total Sales.
- Cliquez sur OK.
- Renommez ces deux colonnes Year et Total Sales.
- Effectuez un tri décroissant sur Total Sales pour déterminer les produits et les années pendant lesquelles les produits ont présenté le plus grand volume de ventes.
- Renommez la requête Total Sales per Product.
Étapes Power Query créées
Tandis que vous effectuez les activités de requête Fusionner dans Power Query, des étapes de requête sont créées et répertoriées dans le volet Paramètres d’une requête, dans la liste ÉTAPES APPLIQUÉES. Chaque étape de la requête a une formule Power Query correspondante, appelée également langage « M ». Pour plus d’informations sur le langage de formule Power Query, voir En savoir plus sur les formules Power Query.
Tâche | Étape de requête | Formule |
---|---|---|
Fusionner ProductID dans la requête Total Sales | Source (source de données pour l’opération de fusion) | Tableau. NestedJoin
(Products,{« ProductID »},# »Total Sales »,{« Order_Details.ProductID »}, »NewColumn ») |
Développer une colonne de fusion | ExpandNewColumn | Tableau. ExpandTableColumn
(Source, « NewColumn », {« Year », « Total Sales »}, {« NewColumn.Year », « NewColumn.Total Sales »}) |
RenamedColumns | Tableau. RenameColumns
(# »Expand NewColumn »,{{« NewColumn.Year », « Year »}, {« NewColumn.Total Sales », « Total Sales »}}) |
|
SortedRows | Tableau. trier
(RenamedColumns,{{« Total Sales », Order.Descending}}) |
Étape 3 : charger une requête Total Sales per Product dans un modèle de données Excel
Dans cette étape, vous désactivez l’option Charger dans la feuille de calcul et chargez une requête dans le modèle de données Excel pour créer un rapport connecté au résultat de la requête. En plus de charger les résultats de la requête dans une feuille de calcul Excel, Power Query vous permet de charger un résultat de requête dans un modèle de données Excel. Une fois que vous avez chargé les données dans le modèle de données Excel, vous pouvez utiliser Power Pivot et Power View pour approfondir l’analyse des données.
Charger la requête Total Sales per Product dans le modèle de données Excel
- Dans le volet Paramètres d’une requête, décochez l’option Charger la feuille de calcul et cochez Charger dans le modèle de données.
- Pour charger la requête dans le modèle de données Excel, cliquez sur Appliquer et fermer.
Requête finale Total Sales per Product
Une fois que vous avez effectué chaque étape, vous avez une requête Total Sales per Product qui combine les données du fichier Products and Orders.xlsx et du flux OData Northwind. Cette requête peut être appliquée à un modèle Power Pivot. Par ailleurs, les modifications apportées à la requête dans Power Query modifient et actualisent la table résultante dans le modèle Power Pivot.
Remarque : L’Éditeur de requête s’affiche uniquement lorsque vous chargez, modifiez ou créez une requête à l’aide de Power Query. La vidéo suivante montre la fenêtre de l’Éditeur de requête qui s’affiche après la modification d’une requête à partir d’un classeur Excel. Pour afficher l’ éditeur de requête sans charger ou modifier une requête existante dans un classeur, dans la section données externes de l’onglet de ruban Power Query , sélectionnez à partir d’autres sources > requête vide. La vidéo suivante montre une manière d’afficher l’Éditeur de requête.