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.
Notre objectif est de convertir ces données en un tableau synthétique utilisable directement pour nos analyses :
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.
Dans l’onglet Données - groupe Récupérer et transformer des données, cliquez sur À partir de Tableau ou d’une Plage.
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.
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 :
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}}),
...