IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pierre Fauconnier

Cours Power Query, leçon 4: Le typage des données

Note : 2 votes pour une moyenne de 3,00.
par , 05/11/2021 à 08h00 (2930 Affichages)
Typer les données au plus proche de la source simplifiera grandement leur traitement par la suite


Salut.

Dans cette catégorie (https://www.developpez.net/forums/bl...categoryid=612), je crée des billets formatifs que je veux brefs et pratiques. Ils permettront une prise en mains en douceur du formidable outil qu'est Power Query. Nous apprendrons bien sûr à manipuler Power Query par l'interface, et donc la souris, mais nous irons régulièrement voir le script et le modifier pour donner encore plus de puissance et de souplesse aux solutions Power Query que nous mettons en place.


En préambule, je rappelle que Power Query est sensible à la casse (différenciation majuscules/minuscules). Cela est perturbant pour nous parce qu'Excel et VBA sont très souples à ce niveau, alors qu'oublier cette réalité dans Power Query vous mènera dans l'impasse.

Leçon 4: Le typage des données


Power Query n'est ni Excel, ni VBA

Nous, excelliens et vébéistes, ne portons pas toujours attention au type de nos données. En effet, le transtypage implicite est la règle. Par transtypage, on entend le fait de modifier le type d'une donnée:
  • transformer un nombre en texte;
  • transformer une date en texte;
  • transformer un booléen (VRAI, FAUX) en valeur numérique;
  • ...


Par contre, dans Power Query, il est indispensable que les données qui sont manipulées soient du type attendu. Pas question de concaténer du texte et une valeur numérique, pas plus que d'additionner des valeurs textuelles, quand bien même elles représentent des nombres.

Nom : 2021-11-04_195032.png
Affichages : 1104
Taille : 89,3 Ko


Types de données dans Power Query

On notera ici qu'une cellule de requête Power Query peut accepter plus de types de données qu'une cellule Excel, à l'instar d'un tableau VBA (Array), et notamment des tables, des listes, ... Toutefois, à l'importation de données en provenance d'Excel, d'Access, de CSV, de json ou de xml, les cellules d'une requête contiendront des données de types habituellement rencontrés dans Excel.

Power Query affiche à gauche de l'intitulé de colonne un symbole représentant le type de données de la colonne.

Nom : 2021-11-05_062026.png
Affichages : 1041
Taille : 70,0 Ko

Adaptation des types de données


Lorsque l'on importe des données dans Power Query, l'outil va créer deux étapes de requêtes:
  • l'étape d'importation proprement dite;
  • l'adaptation automatique des types de données, réalisée par l'examen des premières lignes de chaque colonne.


Examinons le tableau Excel suivant et son importation dans Power Query, pour remarquer que Power Query ne fait toujours les choses pile poil comme il faudrait. Soyons particulièrement attentifs aux dates, reprises dans partie horaire dans Excel, et au numéros de téléphone.

Nom : 2021-11-05_063316.png
Affichages : 1097
Taille : 288,6 Ko

On remarque les icônes suivants, issus du transtypage opéré par Power Query à la deuxième étape de la requête:
  • "nombre entier" pour les ID;
  • "Texte" pour les noms et prénoms;
  • "nombre décimal" pour le salaire;
  • "Booléen" pour actif/inactif;
  • "Date et heure" pour la date;
  • "nombre entier" pour le numéro de téléphone.


Or, pour la date, on préfèrera le type "Date", et l'on ne peut accepter le type "Nombre entier" pour le numéro de téléphone, puisque l'on perd le 0 à gauche. Nous allons corriger le tir et d'adapter les types selon nos souhaits, soit par le ruban, soit par clic droit sur la colonne.

Il est important de bien sélectionner l'étape "Type modifié" avant cette opération. Par le ruban, il faut passer sur l'onglet Transformer, sélectionner la ou les colonne(s)* à adapter puis choisir le type de données. Nous pourrons opérer le même choix par clic droit sur l'intitulé de la colonne.

Nom : 2021-11-05_064555.png
Affichages : 1062
Taille : 261,2 Ko

Puisque nous sommes sur l'étape de transformation des types de données, Power Query va nous demander si l'on souhaite modifier l'étape ou si l'on souhaite l'ajouter. Il est conseillé de modifier l'étape. Après validation, les dates ont été adaptées au sein de la même étape.

Nom : 2021-11-05_064928.png
Affichages : 1042
Taille : 2,7 Ko

Nous procédons de même pour les numéros de téléphone en les transtypant en "Texte", au sein de l'étape, pour remarquer que le "0" à gauche est alors bien présent.

Nom : 2021-11-05_065042.png
Affichages : 1037
Taille : 3,3 Ko

Il est très important d'avoir opérer ces adaptations au sein de l'étape prévue par Power Query ("Remplacer l'actuelle") car, comme dit dans la leçon précédente où je parlais du script et des étapes, chaque étape se sert de la précédente "comme si c'était la source de données". Si, lors du transtypage du numéro de téléphone en texte, on avait choisi "Ajouter une nouvelle étape", le "0" à gauche aurait été définitivement perdu, puisque la transformation en texte s'appuyait sur des valeurs numériques sans "0" non significatif à gauche!


Ligne de commande de l'étape

Il est toujours intéressant, pour qui veut progresser en Power Query, de regarder comment l'étape est écrite dans le script. La barre de formule reprend le code utilisé pour l'étape active.

Code PowerQuery : Sélectionner tout - Visualiser dans une fenêtre à part
= Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Prénom", type text}, {"Nom", type text}, {"Service", type text}, {"Date entrée", type date}, {"Actif", type logical}, {"Tx horaire", type number}, {"Téléphone", type text}})

On remarque que l'étape se sert de "Source" (l'étape précédente") pour transformer les types de données. On remarque aussi la syntaxe permettant de passer un tableau ({...}, à l'instar d'Excel pour passer une matrice) et l'on peut constater que l'on passe donc à la fonction Table.TransformColumnTypes un tableau de tableau reprenant les noms et types de colonnes.

Rappel: Cette étape est très importante pour la suite de votre travail avec Power Query, car utiliser les bons types de données "au plus proche de la source" vous facilitera grandement la préparation de vos données, qu'il s'agisse de regroupements, de colonnes formulées ou d'autres traitements.



Dans la prochaine leçon, nous aborderons le concept du RECHERCHEV de Power Query

* La sélection de plusieurs colonnes s'effectue selon les techniques Windows (Shift ou CTRL + ENTER)





.

Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Viadeo Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Twitter Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Google Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Facebook Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Digg Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Delicious Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog MySpace Envoyer le billet « Cours Power Query, leçon 4: Le typage des données » dans le blog Yahoo

Commentaires

  1. Avatar de Chti160
    • |
    • permalink
    Bonjour Pierre ,
    J'espère que tu vas bien ?
    Petite Question : y'aura-t-il de ci de là un Fichier exemple qui permettrait de passé de la théorie à la manipulation .
    Cela depuis un Fichier récapitulatifs des éléments étudiés.
    Bonne fin de Journée
    Merci encore de ce partage
    Cordialement
    Jean marie
  2. Avatar de Goube
    • |
    • permalink
    Bonsoir Pierre,

    J'ai suivi avec intérêt tes billets sur Power Query, je me demande s'il y aura une suite ?

    Bonne continuation.
    Bien cordialement.
    Goube