Présentation de Power Query
Accéder à l'ensemble des vidéos de ce cours en illimité à partir de 99€ HT/an.
Script
Nous repartons sur Power BI Desktop, avec un rapport vierge. Cette fois-ci, dans Obtenir des données, nous allons choisir le type Texte/CSV, un fichier qui demande des transformations avant d'être exploité.
Si vous avez l'habitude de travailler avec des fichiers CSV sous Excel, vous avez sûrement déjà vu l'assistant d'importation de données, qui vous demande de découper votre CSV en plusieurs colonnes. Ici, Power BI est beaucoup plus sympathique : il trouve d'emblée les colonnes, avec beaucoup plus d'efficacité qu'Excel.
D'abord, parce qu'il est capable de reconnaître l'origine du fichier. Il existe de nombreux types de CSV, selon la provenance du fichier et la façon dont il est codé. En France, vous rencontrerez principalement deux codages : le 1252 Europe de l'Ouest, qui est un codage Windows, et, tout en bas de la liste, l'Unicode UTF-8. Très souvent, Power BI le reconnaît correctement. Mais si vous constatez qu'un caractère accentué ou un caractère de ponctuation n'est pas correctement reconnu dans vos données, passez de l'UTF-8 au 1252, ou l'inverse. Encore une fois, il est très efficace : je ne me rappelle pas avoir eu de problème de reconnaissance de type de fichier.
Vous avez également la reconnaissance automatique du délimiteur. Les fichiers CSV sont découpés la plupart du temps avec des points-virgules, parfois avec des virgules, des espaces ou des tabulations. Power BI le reconnaît en général, mais vous pouvez aussi agir sur ce paramètre si vos colonnes ne sont pas correctement reconnues.
Un aperçu des données vous est proposé. Comme cela correspond bien à ce que nous voulons faire, nous cliquons directement sur Transformer les données, pour découvrir l'environnement Power Query.
Dans cet environnement, le ruban Accueil vous permet d'abord d'aller chercher de nouvelles sources, puisque, je vous le rappelle, Power BI peut être multisource. Vous y trouvez aussi le bouton Fermer et appliquer, qui intervient une fois vos transformations terminées, pour charger les données transformées dans Power BI.
Vous avez également deux rubans qu'il faut faire attention de ne pas confondre, car certaines commandes leur sont communes. Par exemple, dans le ruban Transformer, je trouve Format, Majuscules : le contenu de la colonne sélectionnée est mis en majuscules. J'annule cette étape en cliquant sur la croix rouge devant Texte en majuscules. Dans le ruban Ajouter une colonne, je trouve là aussi Format, Majuscules. Mais cette fois, Power Query a gardé la colonne d'origine et a ajouté une nouvelle colonne en majuscules.
Pour chaque manipulation, il faut donc bien savoir si vous voulez garder la colonne d'origine et en obtenir une autre à partir de celle-ci, ou transformer la colonne d'origine pour qu'elle prenne définitivement la forme souhaitée. Reprenons l'exemple du découpage du code postal pour récupérer le numéro de département. Si je fais la manipulation dans le ruban Ajouter une colonne, je garde mes codes postaux et j'obtiens une colonne supplémentaire qui ne contient que les deux premiers caractères. Si je la fais depuis le ruban Transformer, c'est ma colonne Code postal elle-même qui est transformée : elle ne contient plus que les deux premiers caractères, et l'information complète du code postal est perdue.
J'en arrive ainsi à la liste des étapes appliquées. Comme je vous l'ai dit en introduction, l'éditeur Power Query crée des lignes de code, des lignes de commande, pour transformer les données, mais les données sources ne sont jamais modifiées. Je n'importe donc pas les données dans Power BI : je crée une connexion qui passe par la transformation avant d'arriver dans Power BI. Un peu comme avec les macros sous Excel, j'enregistre des étapes de transformation, elles-mêmes inscrites en code.
En haut, une barre de formule, qui ressemble à celle d'Excel, affiche le code en langage M de la manipulation que vous venez de faire. Lorsqu'une étape comporte une roue dentée, vous pouvez modifier ses paramètres ; nous le verrons par la suite. Vous pouvez aussi renommer une étape. Par exemple, si je dois mettre les noms de famille en majuscules, puis les villes en majuscules, il peut être intéressant de savoir, dans la liste des étapes, quelle manipulation a été faite et à quel endroit. Pour l'instant, je supprime l'étape actuelle.
Je constate que le prénom et le nom de la personne se trouvent dans la même colonne. Je vais donc dans le ruban Transformer, sur Fractionner la colonne. Le nom et le prénom sont séparés par un espace, et les prénoms composés contiennent un tiret. Je peux donc utiliser le délimiteur Espace, en choisissant le délimiteur le plus à gauche dans la chaîne de caractères. Bien évidemment, ce réglage est valable pour ces données-là : à chaque fois, il faudra bien connaître le contenu de vos colonnes pour savoir ce que vous pouvez faire. Je clique sur OK et j'obtiens une colonne qui contient les prénoms et une colonne qui contient les noms.
Je me place sur la deuxième colonne et je la mets en majuscules : Transformer, Format, Majuscules. Les noms de famille sont maintenant en majuscules. Je peux faire la même chose pour séparer le code postal et la ville.
Une précision importante : les étapes s'appliquent dans l'ordre dans lequel elles ont été créées. Si vous n'êtes pas positionné sur la dernière étape, Power Query vous demande si vous voulez insérer une manipulation entre l'étape sélectionnée et la suivante. Et là, il y a un risque. Imaginons que je crée une colonne à partir d'une colonne existante, puis que je supprime cette colonne existante. Si les étapes ne sont pas appliquées dans le bon ordre, j'aurai un problème, car je demanderai de créer quelque chose à partir d'une colonne déjà supprimée. Dans Excel, si une formule fait appel à une colonne, vous ne pouvez pas supprimer la colonne qui contient les données de base, parce que le calcul se fait en temps réel. Ici, au contraire, nous travaillons par étapes : je peux très bien créer une colonne à partir d'une autre, puis supprimer la colonne d'origine parce qu'elle ne me sert plus.
Vous voyez d'ailleurs que Power Query a créé une étape supplémentaire que je ne lui ai pas demandée : Type modifié2. Au départ, ma colonne unique contenait du texte. Mais comme la partie code postal ne contient que des caractères numériques, il a jugé bon de la considérer comme numérique. J'ai alors deux possibilités. La première : cliquer sur le petit bouton de l'en-tête de colonne, où il est écrit 1, 2, 3 — au passage, ABC indique du texte et 123 du numérique — et choisir moi-même le type de données à prendre en compte. La seconde : supprimer l'étape Type modifié2. Mon code postal reste alors du texte, comme à l'origine.
Nous sommes d'ailleurs tous d'accord : le code postal, le numéro de sécurité sociale ou les numéros de téléphone sont des données textuelles et absolument pas numériques. On ne fait ni moyennes ni sommes de codes postaux. Ce sont des codes.
Je me place ensuite sur la colonne des villes et je la mets elle aussi en majuscules. La colonne 4 contient un nombre, reconnu comme tel. Quant à la colonne 5, elle ne sert pas à grand-chose : je la supprime par un simple clic droit.
J'en profite pour ajouter une numérotation. Quand je traite des tables issues de bases de données, il m'arrive d'avoir besoin de recréer une numérotation automatique. Pour cela, dans le ruban Ajouter une colonne, vous trouvez Colonne d'index ; nous allons numéroter à partir de 1. Les numéros apparaissent aussitôt. Par un clic droit sur la colonne Index, je trouve Déplacer : je peux la déplacer à gauche, à droite, tout au début ou tout à la fin. Je choisis Au début, et ma colonne Index passe en première position.
Je dois cependant vous préciser une chose : une fois revenus dans Power BI, vos champs seront classés par ordre alphabétique, et non dans l'ordre des colonnes de l'éditeur Power Query. Ramener l'index au début ou placer le nom avant le prénom n'est donc qu'un confort visuel pour vous.
Ce qui compte vraiment, c'est le nom de vos champs, c'est-à-dire de vos colonnes. C'est essentiel dans Power BI : pour savoir quelle information vous traitez, elle doit être correctement nommée. Pensez toujours à donner des noms significatifs à vos champs, faute de quoi vous risquez d'avoir des soucis. Je double-clique sur l'en-tête de la colonne Index et je la renomme Numéro inscription. J'ai ensuite, en deuxième position, la colonne des noms, puis celle des prénoms, les adresses, les codes postaux, les villes et enfin Nombre de participants. Mes données ont maintenant une allure bien plus sympathique, et je vais pouvoir les traiter.
Avant de revenir dans Power BI, revenons sur le script qui se crée automatiquement à chaque manipulation. La barre de formule montre le code de l'étape sélectionnée. Mais dans Affichage, Éditeur avancé, vous trouvez la totalité du script enregistré en langage M, de la même façon que l'enregistrement d'une macro sous Excel produit des lignes de code VBA. Les fonctions courantes de l'éditeur Power Query sont déjà suffisamment riches pour que vous n'ayez pas à fouiller dans le langage M.
Autre point utile : la première étape de la liste est en général la Source. Lorsque vous travaillez sur un fichier Power BI existant, surtout avec des fichiers plats comme des fichiers Excel ou CSV dont il faut vérifier la connexion, vous pouvez cliquer sur la roue dentée de cette étape pour retrouver le chemin d'accès de votre fichier.
Mes données sont maintenant prêtes à être utilisées dans Power BI. Je reviens dans le ruban Accueil de l'éditeur Power Query et je clique sur Fermer et appliquer. On laisse Power BI travailler un instant, puis les champs créés apparaissent dans le volet Données.
Je peux maintenant faire un petit visuel. Je choisis la carte géographique. Je place le champ Ville dans Emplacement et le nombre de participants dans la taille des bulles : j'obtiens des bulles plus ou moins grandes selon la situation géographique. Si vous devez traiter des données géographiques avec précision, utilisez des fichiers qui contiennent la latitude et la longitude. Si vous obtenez le même visuel que moi, vous pouvez passer par le filtre et décocher Sanary : la carte zoome instantanément sur l'Hexagone et l'on y voit plus clair.
Voilà pour la présentation de l'éditeur Power Query et de quelques outils satellites.