PowerBI

Une première approche de l’outil d’analyse de données PowerBI afin de visualiser un jeu de données d’exemple.

Introduction

Power BI est un logiciel d'analyse et de visualisation de données proposé par Microsoft.

Dans le cadre de ce cours, vous pouvez télécharger Power BI Desktop sur le site officiel de Microsoft et l’utiliser gratuitement. Si vous souhaitez partager vos rapports et tableaux de bord en ligne, il est également possible d’utiliser Power BI Service (version cloud), qui propose une version gratuite avec certaines limites, ainsi qu’une version Pro disponible via un abonnement ou une licence académique.

Préparer les données

Jeu de données

Créer une première page de rapport

Dans Power BI, l’entité de base s’appelle un fichier Power BI Desktop (extension .pbix). Un fichier Power BI contient au moins deux éléments :

  • Un modèle de données
  • Des pages de rapport

Le modèle de données peut être alimenté par différentes sources : vos données peuvent provenir d’un fichier (par exemple un fichier .csv, un tableur Excel .xls ou .xlsx, un fichier .ods…), ou d’une base de données (SQL Server, Oracle, PostgreSQL, etc.).

Un simple fichier n’est pas forcément adapté si vous avez besoin d’une actualisation régulière. Dans ce cas, il est préférable de se connecter directement à une base de données pour assurer la mise à jour de vos données.

Les pages de rapport servent à créer des visualisations (graphiques, cartes, matrices, etc.) à partir des données importées. Vous pouvez créer autant de pages que vous le souhaitez, et chaque page peut contenir plusieurs visualisations.

Découvrez les données sources

Téléchargez le jeu de données utilisé dans ce TD et composé de trois fichiers : impressions, clics et achats.

La table impressions

Chaque ligne correspond à une impression, c’est-à-dire à un affichage d'une publicité sur un site donné et sur l’écran d'un utilisateur donné.

Elle contient 4 colonnes :

  • timestamp est une date codée, qui est l’affichage de la publicité\
  • cookie_id permet d’identifier l’utilisateur qui a vu la publicité, chaque publicité étant liée à une campagne précise\
  • campaign_id est l’identifiant de la campagne marketing\
  • external_site_id indique le site sur lequel la publicité s’est affichée

Cette table contient 29 758 lignes, aussi appelées enregistrements.

La table clics

À la suite de l’affichage de ces publicités, certains utilisateurs cliquent dessus. La table clics enregistre la date et l’heure du clic dans timestamp, et l’utilisateur est repéré grâce à cookie_id.

C’est la colonne cookie_id qui nous permettra de faire le lien entre les différentes tables.

Elle contient 1 775 enregistrements, soit autant de clics.

La table achats

Enfin, la table achats indique chaque achat réalisé par un utilisateur ayant cliqué sur une publicité. On y retrouve le timestamp, l’identifiant utilisateur cookie_id, le produit acheté product_id, son genre gender, son département de résidence dept, le prix d’achat price et son âge age.

Importez les données dans Power BI

Importez les tables

Pour importer nos trois tables, nous devons tout d’abord sélectionner une source de données. Après avoir ouvert Power BI, générez un rapport vierge, puis, dans l’accueil, cliquez sur Obtenir les données. Choisissez “Texte/CSV”, puis Se connecter. Ouvrez le fichier impression.csv.

Un aperçu de la table s’affiche, on peut donc vérifier que les données sont bien reconnues.

Ici c’est le cas, vous pouvez donc cliquer sur Charger.

Vous verrez votre table s’afficher tout à droite de l’écran, dans la partie données.

Procédez ensuite de la même manière afin de charger les tables clics.csv et achats.csv.

Réalisez les liaisons nécessaires

Nos trois tables sont reliées logiquement : un utilisateur ayant vu une publicité a pu cliquer dessus, puis procéder à un achat. Il est donc nécessaire de représenter ces relations dans Power BI.

Deux approches sont possibles :

  • Fusionner les tables pour obtenir une seule table contenant toutes les données\
  • Créer un modèle relationnel en définissant les relations entre les tables

Pour ce TD, nous opterons pour la deuxième solution.
Pour cela, cliquez sur Vue de modèle (icône représentant trois tables reliées, dans la barre latérale gauche).

On y retrouve nos trois tables, que nous allons pouvoir relier.

Pour cela, cliquez sur Gérer les relations, dans le ruban Accueil.

On voit qu’une relation a déjà été créée automatiquement par Power BI. Pour bien comprendre, on va repartir de zéro et la supprimer en cliquant sur les trois petits points à droite de celle-ci.
Cliquez ensuite sur Nouvelle relation.

Intéressons-nous d’abord à la relation entre la table impressions et la table clics (on part de la table impressions vers la table clics). Pour les relier, on identifie une ou plusieurs colonnes communes entre les deux tables.

Ici, la colonne cookie_id est présente dans les deux tables et sert à identifier les utilisateurs. On sélectionne donc cette colonne dans chacune des deux tables.

Ensuite, la cardinalité, c’est-à-dire le nombre de lignes liées entre les deux tables.
Dans ce TD, nous considérons qu’une publicité ne peut mener qu’à un seul clic et qu’un clic est lié à un seul utilisateur. La cardinalité côté gauche sera donc 1, et côté droit également 1. On choisit donc “Un à un (1:1)”

Si l’on considérait qu’un utilisateur peut cliquer plusieurs fois sur une même publicité, nous aurions choisi **1 à plusieurs (1:*)**. Ici, on suppose qu’un seul clic redirige immédiatement l’utilisateur vers une page d’achat.

Enfin, la direction du filtre croisé indique comment un filtre appliqué sur une table agit sur l’autre.
Ici, on laisse À double sens.

On enregistre cette relation, puis on crée une deuxième relation entre les tables clics et achats.
Ici aussi, la colonne cookie_id est commune aux deux tables.

De la même façon, un clic ne peut mener qu’à un seul achat pour ce TD. La cardinalité sera donc 1 à 1 (1:1).

Si l’on considérait qu’un clic peut mener à plusieurs achats, nous aurions choisi **1 à plusieurs (1:*)**.

On laisse enfin la direction du filtre croisé en À double sens.

On enregistre la relation, on ferme la fenêtre, et on peut retrouver nos modifications dans la Vue de Modèle.
Voici le résultat final :

Changer le type d’une colonne en utilisant Power Query

Pour toute modification des données, on utilisera Power Query, l’éditeur intégré de Power BI permettant de préparer, transformer et nettoyer les données avant leur utilisation dans le rapport.

Pour y accéder, depuis Affichage du rapport (bandeau à gauche), dans l’onglet Accueil, cliquez sur Transformer les données. Une fenêtre Power Query Editor va s’ouvrir. Dans celle-ci, vous retrouverez les tables que vous avez importées.

Sachez que l’on peut modifier le type de données des colonnes. Par exemple, ici la colonne external_site_id de la table impressions contient un identifiant représenté par un nombre. Comme nous ne ferons pas de calculs mathématiques sur ces nombres (cela n’aurait aucun sens), il est préférable de spécifier à Power BI qu’il s’agit en réalité d’une chaîne de caractères (texte).

Pour cela, dans Power Query :

  1. Cliquez sur l’icône de type de données à gauche du nom de la colonne.\
  2. Sélectionnez le type Texte dans le menu déroulant.\
  3. Cliquez sur remplacer l’actuelle sur la pop-up qui s’affiche.

Cette opération permet d’éviter des erreurs de calcul ou d’agrégation inappropriées, et facilite la gestion des identifiants comme des labels plutôt que des nombres.

Convertissez les timestamps en dates

Dans l’état actuel, Power BI n’est pas au courant que les colonnes nommées timestamp représentent des dates. Sans une petite opération, il sera donc impossible de créer des graphiques avec des dates.

En regardant les colonnes timestamp, on voit des valeurs telles que “1 761 000 000”. Ces nombres sont censés représenter des dates. En fait, il s’agit du nombre de secondes écoulées entre la date en question et le 1er janvier 1970 : c’est une convention quand on code une date en timestamp.

Pour les convertir en dates lisibles dans Power BI Desktop, on utilise aussi Power Query.

Dans la table impressions, sélectionnez la colonne timestamp, cliquez sur Ajouter une colonne dans le bandeau du haut, puis colonne personnalisée. Choisissez le nom de votre colonne, par exemple date_impression, puis entrez la formule suivante :

= DateTime.From(#datetime(1970,1,1,0,0,0) + #duration(0,0,0,[timestamp]))

Cette formule va prendre une heure de départ (ici le 1 janvier 1970 à minuit), puis lui ajouter le nombre de secondes de timestamp, et renvoyer une date.

On clique sur ok et notre colonne apparaît.

En regardant son type, on voit que la colonne n’est pas reconnue comme une date. On va donc venir modifier son type, en choisissant Date/heure.

Il suffit de refaire la même chose pour les tables clics et achats, en nommant les colonnes date_clic et date_achat, pour éviter les confusions.

Dans Power Query, toutes les modifications que tu fais sur tes données sont automatiquement enregistrées sous forme d’étapes dans le volet à droite appelé Paramètres de la requête. Chaque étape correspond à une transformation : renommer une colonne, changer un type, filtrer des lignes, ajouter une colonne, etc. L’avantage est que Power Query garde un historique complet de toutes les opérations, ce qui permet de revenir en arrière, de modifier une étape précédente, ou de réappliquer la même séquence de transformations à de nouvelles données sans tout refaire manuellement.

Une fois terminé, retournez dans Accueil, puis cliquez sur Fermer & appliquer pour sauvegarder vos changements.

Vous avez terminé l’importation des données, bravo !

Affichez des premiers indicateurs

L’interface de PowerBI est très puissante, mais il faut la découvrir petit à petit et prendre le temps de s’y habituer. Pour cela, dans cette section nous allons créer des visualisations très simples.

Découvrez l’interface de la feuille de calcul

L’écran principal de Power BI est l'affichage du rapport. C’est là que nous allons créer nos premières visualisations. Cette vue se compose d’une ou plusieurs pages (affichées dans le bandeau en bas de l’écran), du volet Visualisations et du volet Données, où nous pouvons retrouver les tables importées. En haut, un ruban similaire à celui d’Excel permet d’accéder rapidement à la plupart des fonctionnalités.

À gauche, nous pouvons accéder à plusieurs autres écrans :

  • L’écran Affichage Table (icône de tableau) : permet de voir directement les données contenues dans nos tables. Cela peut aider à mieux comprendre leur contenu, à effectuer des vérifications rapides ou à identifier le type de données présentes. On y voit aussi le nombre de lignes d’une table.
  • L’écran Vue de modèle : permet de visualiser et de modifier les liens entre nos différentes tables, comme nous l’avons vu précédemment.

  • L’écran Vue de requête DAX : permet d’écrire des formules en DAX (Data Analysis Expressions).
    DAX est le langage de calcul de Power BI, il sert à créer des mesures, colonnes ou tables calculées pour enrichir et analyser les données.
    Nous en verrons quelques exemples plus tard.

  • Enfin, l’écran Vue TMDL : permet d’explorer le modèle de données via le langage TMDL (Tabular Model Definition Language). Nous ne l’utiliserons pas dans ce TD.

Notre première visualisation

Commençons par une visualisation simple que vous connaissez bien : un tableau !
Pour cela, retournons dans l’écran Affichage de rapport et, dans le volet Visualisations, cliquons sur l’icône Matrice (qui ressemble à un petit tableau avec des cases bleues). Un emplacement de visuel apparaît alors sur notre page.

Allons chercher l’attribut campaign_id de la table impressions. Une fois trouvé, faites-le glisser dans la partie Colonnes du volet Visualisations. Les trois identifiants de campagne s’affichent dans notre visuel.

Maintenant, allez chercher l’attribut product_id de la table achats et faites-le glisser dans la partie Lignes. Notre tableau commence à prendre forme.
Il nous reste à choisir ce que nous souhaitons y ajouter : faites glisser l’attribut price de la table achats dans la partie Valeurs.

Notre tableau complet s’affiche :

Dans la partie Valeurs, vous pouvez voir que price a été transformé en Somme de price.

Pour comprendre cela, regardons la case du tableau correspondant à la campagne 1 et au produit 1 : sa valeur est de 1 770.

En effet, les achats du produit 1 lors de la campagne 1 sont multiples. Pour cette combinaison, il existe donc plusieurs valeurs de price. Power BI les agrège par défaut en une seule valeur, ici en calculant la somme.

Mais il est possible de choisir une autre fonction d’agrégation : par exemple la moyenne, le minimum ou le maximum.

Regardons le cas de la moyenne. Pour cela, cliquez sur la flèche à droite de Somme de price et choisissez Moyenne. On obtient alors le tableau suivant :

Revenez ensuite à la somme.

Pour rendre notre tableau plus visuel, nous pouvons ajouter des couleurs de fond aux cases.
Dans le volet Visualisations, cliquez sur Mettre en forme votre visuel (icône de pinceau). Puis, dans Éléments de cellule, activez la Couleur d’arrière-plan. Le tableau devient alors beaucoup plus lisible :

Les totaux, affichés automatiquement, restent sans couleur de fond. Si vous ne souhaitez pas qu’ils apparaissent, restez dans Mettre en forme votre visuel et désactivez les deux options Sous-totaux.

Créer une mesure DAX

Maintenant imaginons que les publicités s’accompagnent souvent de promotions (disons -30%).
Dans un cas concret, nous aurions besoin des prix unitaires de chaque produit, mais aussi du prix après réduction pour mener nos analyses. Ce prix n’existe pas encore dans nos données, mais comme nous allons l’utiliser régulièrement dans nos visualisations, il est préférable de le définir sous forme de mesure.

Les mesures dans Power BI se définissent avec le langage DAX (Data Analysis Expressions).
Il s’agit d’un langage de formules qui permet de créer de nouveaux indicateurs à partir de nos données existantes.
Contrairement à une colonne, une mesure ne stocke pas de valeur : elle se calcule à la volée, en fonction du contexte de la visualisation (par exemple, pour chaque produit affiché dans notre tableau).

Créez tout d’abord une nouvelle page “Prix”, et renommez la première page en “Ventes”.

Maintenant, créons donc une première mesure dans l’onglet Modélisation, en cliquant sur Nouvelle mesure et en saisissant :

Prix unitaire = AVERAGE(achats[price])

Cette formule DAX indique à Power BI de calculer la moyenne du champ price.
Pourquoi la moyenne ? Parce qu’un même produit peut apparaître plusieurs fois dans la table achats.
Or, son prix est constant : la moyenne d’une série de valeurs identiques est simplement la valeur elle-même.
C’est donc une manière pratique et explicite d’afficher le prix unitaire par produit.

Cliquez sur la petite coche à gauche de votre calcul pour valider, vous verrez le prix unitaire s’afficher dans la table achats, avec une petite calculatrice car c’est une mesure.

De la même façon, créez ensuite une deuxième mesure pour appliquer la réduction de 30 % :

Prix promo = [Prix unitaire] * (1 - 0.3)

Visualisons maintenant tout cela.
Dans le volet Visualisations, cliquez sur l’icône Matrice.
Puis, dans le volet Champs :\

  • Glissez product_id dans la partie Lignes.\
  • Glissez la mesure Prix unitaire dans la partie Valeurs.\
  • Glissez ensuite la mesure Prix promo également dans Valeurs.

Notre tableau apparaît :

Chaque ligne correspond à un produit, avec son prix unitaire et son prix promo (-30 %). Ici, les totaux ne veulent rien dire, supprimez les dans le volet Mettre en forme votre visuel.

Créez la visualisation du chiffre d’affaires

Il est temps maintenant de créer le premier graphique qui constituera notre tableau de bord final : celui indiquant le chiffre d’affaires. Créez une nouvelle page nommée “CA”.

Sur cette visualisation, il n’y aura qu’un seul nombre : on cherche à calculer le chiffre d’affaires total. Le chiffre d’affaires se calcule par la somme de tous les achats. On veut afficher ce chiffre sous forme de texte. Pour cela, choisissez la visualisation Carte (icône de 123). Une carte vide vient s’afficher sur notre page. Faites glisser la variable price dans les champs. On vérifie bien que c’est la somme qui s’affiche.

Ici, Power BI nous affiche 20K. Hors, on souhaite connaître le chiffre exact. Pour cela, dans le volet Visualisations, retournez dans Mettre en forme votre visuel. Puis, dans Valeur de la légende, mettez l’unité d’affichage à Aucun. Notre chiffre d’affaires apparait en entier.

On peut changer le style du texte au même endroit, et celui du sous-titre juste en dessous, dans étiquette de la catégorie.

Pour changer le “Somme de price”, retourner dans l’onglet Ajouter des données à votre visuel de Visualisations, puis dans les champs, renommez votre “Somme de “price” en “Chiffre d’affaires”” en double cliquant dessus dans champs. Cette modification ne sera valable que dans ce visuel.

Enfin, ajoutons le sigle €. Pour cela, dans les données, cliquez sur price. Cela va vous ouvrir le volet Outils de colonne dans le bandeau du haut. Dans format, choisissez Devise, puis dans l’icône de dollar, choisissez euros.

Voici le résultat final :

Créez d’autres graphiques

Dans ce chapitre, nous allons explorer quelques autres possibilités de visualisations graphiques de Power BI.

Créez la visualisation du nombre d’achats par jour

Créons maintenant une nouvelle feuille nommée “Achats” pour la visualisation des achats en fonction du temps.

On souhaite avoir la date horizontalement et le nombre d’achat sur l’axe vertical. Pour cela, dans le volet Visualisations, choisissez le graphique Histogramme groupé. Une fois le graphe vide créé, ajoutez date_clic sur l’axe X. Pour le moment rien ne s’affiche, car on n’a pas choisit ce qu’on allait mettre en Y. Nous souhaitons visualiser le nombre d’achats fait au cours du temps. Pour l’axe Y, on souhaite donc compter combien d’achats sont effectués chaque jour. Chaque achat ayant un cookie_id unique, on va donc mettre le cookie_id de la table achat dans l’axe Y. En faisant ça, on voit que l’axe Y s’appelle Nombre de cookie_id. Power BI a fait tout seul le compte des id.

Mais pour le moment, notre graphique ressemble à ça :

Ce qui nous permet seulement de savoir que sur l’année 2025, 140 achats ont été effectués. Mais ça, nous le savions déjà : c’est le nombre de lignes de la table achats ! Pour voir le nombre d’achats par jour, cliquez sur Développer tout sur un niveau de hiérarchie (icône d’une flèche se séparant en deux), juste en dessous de votre visualisation. Cela vous rajoutera un “Qtr 4”, qui correspond au 4ème trimestre de l’année. Comme nos données ne concerne qu’un seul trimestre, cela ne change rien au graphe. Recliquez une fois dessus, et vous verrez les mois (ici, seulement novembre et décembre). Enfin, un dernier clic vous permet de voir les jours 1 par 1. N’hésitez pas à agrandir le visuel pour voir tous les jours.

Pour éviter d’afficher des infos inutiles, dans la partie axe X de votre graphique, supprimez trimestre. Votre visualisation sera déjà plus claire.

Bravo ! Maintenant vous savez que 12 achats ont été effectués le 1er novembre 2025, contre seulement 1 achats le 11 novembre.

Rendez votre dashboard interactif

Nous pouvons maintenant assembler tous ces éléments pour les rendre interactifs.

Créez un filtre sur les achats

Un filtre est une option qui permet de sélectionner certaines lignes de notre source de données, et d’en exclure d’autres.

Reprenons la visualisation des achats en fonction du temps, et ajoutons un filtre sur la campagne. Il suffit de faire glisser campaign_id dans le volet Filtres, à gauche de Visualisations. Mettez le dans la partie Filtre sur ce visuel (qui contient déjà des filtres automatique sur nos champs, mais qui contiennent toutes les valeurs). Comme nous n’avons que 3 campagnes différentes, dans Type de filtre, choisissez “Filtrage de base”. Cela vous permettra de cocher/décocher les campagnes que vous souhaitez voir apparaître, et votre graphique se modifiera en temps réel.

À vous de tester le filtre !

Créez un filtre sur le chiffre d’affaires

Retournons sur la visualisation du CA, et ajoutons un filtre sur l’âge. Faites glisser l’attribut age dans la partie filtres. Imaginons que nous souhaitons connaître le chiffre d’affaires en prenant en compte seulement les personnes ayant entre 19 et 30 ans. Cette fois, nous avons beaucoup de valeurs d’âge. Pour ne pas avoir à décocher un par un les âges qui ne nous intéressent pas, laissez le type de filtre en “Filtrage avancé”.

Puis, configurez le filtre de cette manière pour ne garder que les personnes âgées de 19 à 30 ans :

Enfin, cliquez sur Appliquer le filtre.

On voit que le chiffre d’affaires s’actualise, il est de 3 712 € pour les 19-30 ans.

Rassemblez tout sur une page !

Nous avons jusque ici créé chaque visualisation sur une page individuelle, mais une page peut contenir plusieurs visualisations, ce qui a d’ailleurs plusieurs avantages. Rassemblons donc tout notre travail sur une nouvelle page que nous appellerons “Vue d’ensemble”.

Ensuite, il ne reste plus qu’à aller chercher nos quatre visualisations, de les sélectionner une par une et de les copier coller (avec ctrl + C, ctrl + V) dans notre vue d’ensemble. Disposez les ensuite sur toute la page.

Le problème ici, c’est que notre visuel du chiffre d’affaires est le seul à avoir le filtre sur l’âge, cela peut amener des erreurs de compréhension. Pour que le filtre s’applique à tous les visuels, on va venir le recréer, mais cette fois dans la partie Filtres dans cette page du volet Filtres. On glisse donc l’attribut age dans l’encadré, et on recrée le même filtre :

On l’applique, et toute notre page se modifie :

Vous pouvez donc supprimer le filtre sur le visuel du CA. Evidemment, on peut adapter la tranche d’âge de notre filtre en fonction de ce qu’on souhaite visualiser. Par exemple, visualisons les achats des plus âgés : configurez votre filtre pour avoir les données des 50-70 ans. On obtient cela :

On peut voir que dans notre tableau des ventes par campagne et produit, beaucoup de cases sont vides : cela veut dire que les 50-70 ans n’ont pas acheté les produits 2,3,5 et 6, ni le produit 7 des campagnes 2 et 3, ni le produit 8 de la campagne 3. Ces informations peuvent être très intéressantes dans une application réelle pour comprendre le succès ou non de nos produits.

Nous pouvons d’ailleurs voir que cette tranche d’âge a beaucoup acheté le 1 novembre 2025, avec 6 achats. Mais de quels produits ? Et combien ont-ils coûtés en tout ? Pour le savoir, faut-il s’embêter à recréer des filtres ?

Je vous rassure : pas besoin ! Cliquez juste sur la colonne du 1er novembre dans notre graphe des achats par jour :

Et en une seconde, toutes les infos s’affichent ! Le 1er novembre, les 50-70 ans n’ont acheté que des produits 1 et 4 (de plusieurs campagnes différentes), pour un montant total de 1959€ ! Les pages Power BI sont en effet par défaut interactives, ce qui permet d’avoir des infos très rapidement et très simplement. N’hésitez pas à cliquez sur d’autres parties de visualisation pour les découvrir plus en profondeur.

Bravo, vous avez terminé cette introduction !

Conception de visualisations de données
Conception de visualisations de données
Printemps 2026

Cours de conception de visualisations de données du printemps 2025.