Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Tableaux de bord
  3. Power Query
Extrait - Tableaux de bord Pilotez vos informations pour optimiser la prise de décision avec Excel (versions Microsoft 365...)
Extraits du livre
Tableaux de bord Pilotez vos informations pour optimiser la prise de décision avec Excel (versions Microsoft 365...)
11 avis
Revenir à la page d'achat du livre

Power Query

Introduction

Power Query fait partie des outils qui peuvent vous apporter une aide précieuse dans la préparation de vos données. Cet élément, intégré dans les dernières versions d’Excel, élargit les possibilités de retraitement des données grâce au langage M.

Nous vous présentons dans cet ouvrage un exemple d’utilisation simple, n’hésitez pas à vous reporter à d’autres livres spécifiques sur Power Query parues aux Éditions ENI dans la collection Solutions Business.

Notre objectif dans cet ouvrage est de traiter des données sources en provenance d’une entreprise industrielle qui possède 10 lignes de fabrication et fabrique un seul produit par jour. Les relevés de fabrication sont fournis sous forme d’étiquettes au format PDF. Pour simplifier le cas, ces étiquettes sont présentées dans un classeur Excel (Transf PDF En Tab.xlsx) dans la feuille Données.

images/C11-001N3.png

Notre objectif est de convertir ces données en un tableau synthétique utilisable directement pour nos analyses :

images/C11-002N3.png

Création de la requête

 Dans Excel, ouvrez le classeur Transf PDF En Tab.xlsx.

 Dans la feuille données, sélectionnez les cellules B1 à C72.

 Transformez cette sélection en tableau.

 Dans l’onglet Accueil - Groupe Styles, cliquez sur Mettre sous forme de tableau puis sélectionnez le style Blanc, Style de tableau clair 1.

 Décochez l’option Mon tableau comporte des en-têtes puis validez.

 Renommez le tableau : onglet Création de tableau - groupe Propriétés, saisissez SuiviDeProduction. dans la zone Nom du tableau.

images/C11-003N3.png

 Dans l’onglet Données - groupe Récupérer et transformer des données, cliquez sur À partir de Tableau ou d’une Plage.

images/C11-004N3.png

Ceci ouvre la fenêtre Power Query.

 Dans les étapes appliquées du volet Paramètres d’une requête, supprimez Type Modifié

 Déroulez le filtre de la Colonne1 et sélectionnez Supprimer les éléments vides (null).

 Rajoutez une colonne d’index :

Dans l’onglet Ajouter une colonne - groupe Général, cliquez sur Colonne d’index puis sur À partir de 0.

 Pivotez le tableau sans agréger :

Cliquez dans la colonne Colonne1 - onglet Transformer - groupe N’importe quelle colonne, cliquez sur Pivoter la colonne.

Dans Colonne de valeurs, sélectionnez la Colonne2.

Dans la zone Options avancées, sélectionnez Ne pas agréger.

images/C11-005N3.png

 Validez par OK.

 Sélectionnez les six colonnes Date à Quantité dans l’onglet Transformer - groupe N’importe quelle colonne, cliquez sur Remplir puis sur Vers le haut.

Vous devez obtenir ce tableau :

images/C11-006N3.png

 Supprimez la colonne Index.

 Dans le filtre de la colonne Nom ligne, décochez null.

Vous devez obtenir uniquement...

Accéder au code M

Si vous avez besoin de reproduire ces étapes pour une nouvelle série d’étiquettes de production, il suffit de copier le code langage M des différentes étapes.

 Ouvrez Power Query : onglet Données - groupe Récupérer et transformer des données, cliquez sur À partir de Tableau ou d’une plage.

 Ouvrez l’éditeur : dans l’onglet Accueil - groupe Requête, cliquez sur Éditeur avancé.

 Copiez et collez le code dans un nouveau classeur de même structure.

Exemple de code :

let  
    Source = Excel.CurrentWorkbook(){[Name="RapportFinalProduction"]}[Content], 
    FiltresColonneItem = Table.SelectRows(Source, each ([Colonne2] <> null)), 
    AjoutColonneIndex = Table.AddIndexColumn(FiltresColonneItem, "Index", 
0, 1,  Int64.Type),  
    PivoterColonneDonnées = Table.Pivot(AjoutColonneIndex, 
List.Distinct(AjoutColonneIndex[Colonne1]), "Colonne1", "Colonne2"),  
    RemplirVersHaut = Table.FillUp(PivoterColonneDonnées,{"date", "nature 
du produit", "heure début", "heure fin", "production de ", "Quantité "}),  
    FiltrerLesNull = Table.SelectRows(RemplirVersHaut, each ([Nom ligne] 
<> null)), 
    SupprimeColonneIndex = Table.RemoveColumns(FiltrerLesNull,{"Index"}), 
    #"FormatColonnesDate&Heures" = Table.TransformColumnTypes
(SupprimeColonneIndex,{{"date", type date}, {"heure début", type time}, 
{"heure fin", type time}}),  
   ...