Power BI · Cours interactif
Séance 3 · Le modèle

Des tables qui se parlent

En séance 2, on a fusionné des tables pour calculer un coût : 2 140 fois la catégorie recopiée. Power BI propose mieux : laisser chaque table à sa place et les relier. Un filtre posé sur une catégorie de produits traverse alors le modèle jusqu'aux ventes. Cette séance construit le modèle Datashop que tu utiliseras jusqu'à la fin.

⏱️ 1 h 30 🎚️ Opérationnel 📁 datashop-modele.xlsx 🎯 29 exercices corrigés
Ta progression
0% 0 / 7 modules
Quelle licence as-tu ?
Le cours n'affiche que ton chemin, et retient ton choix. Tu ne sais pas ? La séance 1 te montre où la lire.

Le fichier de la séance : datashop-modele.xlsx. Six tables déjà propres — Commandes, Lignes_commande, Produits, Clients, Points_de_vente, Retours — rangées chacune dans un tableau Excel. Ici, on peut les charger directement : le travail de la séance se fait dans la vue Modèle.

Dans le navigateur : Toutes licences Créer › Excel › Charger le fichier (ou Parcourir OneDrive), datashop-modele.xlsx, coche les six tables, puis Transformer les données. Dans Power Query, vérifie que Date et Date_livraison sont de type Date (icône calendrier dans l'en-tête ; sinon, Transformer › Type de données › Date). En bas, flèche de Créer un rapport › Créer un modèle sémantique uniquement, nom Datashop : la vue de modèle s'ouvre. Plus tard, pour y revenir : Mon espace de travail, … du modèle › Ouvrir le modèle sémantique.

0

Faits et dimensions

Ce qui se mesure, et ce qui sert à ranger la mesure
✓ Terminé›

Toutes les tables d'un modèle ne jouent pas le même rôle.

Table de faitsTable de dimension
ContientDes événements : une vente, un retourDes descriptions : un produit, un client, un jour
TailleBeaucoup de lignes, qui grandissent chaque jourPeu de lignes, stables
Colonnes typiquesQuantités, montants, et des clésLibellés, catégories, régions
Chez DatashopLignes_commande (2 140), Commandes (966), Retours (42)Produits (46), Clients (140), Points_de_vente (6), le calendrier

On additionne les colonnes des faits ; on découpe (on filtre, on regroupe) par les colonnes des dimensions. Le modèle idéal a la forme d'une étoile : les faits au centre, les dimensions autour, chacune reliée aux faits par une clé.

Datashop n'est pas une étoile parfaite, et c'est le cas de presque toutes les entreprises : Commandes est l'en-tête d'une commande (sa date, son canal, son client), Lignes_commande son détail (les produits). Les deux sont des faits, reliés l'un à l'autre. On garde cette structure : elle est fidèle à la réalité, et Power BI la gère très bien.

1

Relier les tables

Glisser une clé sur une autre
✓ Terminé›
  1. Crée le modèle sémantique avec les six tables de datashop-modele.xlsx (encadré ci-dessus) : la vue de modèle s'ouvre, sans aucune relation.
  2. Option : Gérer les relations › Détection automatique en propose plusieurs. Relis-les toutes, la détection se trompe (une relation un à un, une autre inactive) et en oublie (Commandes → Points_de_vente).
  3. Glisse Produits[Référence] sur Lignes_commande[Référence]. Une ligne apparaît, avec un 1 côté produits et un * côté lignes.
  4. Même geste pour les autres clés, jusqu'à obtenir les relations du tableau ci-dessous. Gérer les relations les liste toutes ; Nouvelle relation en crée une par la boîte (à partir de la table, vers la table, cardinalité, sens du filtre).
Du côté « 1 » (la dimension)Vers le côté « plusieurs »Clé
ProduitsLignes_commandeRéférence
CommandesLignes_commandeN_Commande
ClientsCommandesID_Client
Points_de_venteCommandesCode → Point_de_vente
CommandesRetoursN_Commande
Demande · Théo Marchand, acheteur

« Le chiffre d'affaires par catégorie, sans les annulations »

Dans la vue Rapport, pose un visuel Table : Produits[Catégorie] et la somme de Lignes_commande[Total_ligne_HT]. Puis, dans le volet Filtres, filtre ce visuel sur Commandes[Statut] : tout sauf « Annulée ».

🔍 Analyse. Le filtre est posé sur Commandes, la somme porte sur Lignes_commande, et le regroupement vient de Produits : trois tables, aucune fusion. C'est la relation qui fait voyager le filtre. Retire-la un instant : que devient le tableau ?
Voir la solution
À trouver : Écrans 113 638,28 € · Stockage 79 115,80 € · Périphériques 75 305,97 € · Réseau 62 018,91 € · Accessoires 50 914,27 € · Services 27 381,70 € · Consommables 26 809,12 € — total 435 184,05 €. Sans le filtre, les Écrans montent à 115 778,17 €. Sans la relation Produits–Lignes, chaque catégorie affiche le même total.
🏋️ À toi de jouer — dans Power BI
2

Cardinalité et sens du filtre

Qui filtre qui, et pourquoi dans ce sens
✓ Terminé›

Double-clique sur une relation pour ouvrir sa fenêtre. Deux réglages comptent.

La cardinalité

  • Un à plusieurs (1:*) — le cas normal. Un produit, plusieurs lignes vendues. La colonne du côté « 1 » ne doit contenir aucun doublon.
  • Un à un (1:1) — rare : les deux tables pourraient souvent n'en faire qu'une.
  • Plusieurs à plusieurs (*:*) — à éviter tant qu'on ne sait pas exactement pourquoi on l'utilise : les totaux deviennent difficiles à lire.

Le sens du filtre croisé

Par défaut, le filtre va du côté « 1 » vers le côté « plusieurs » : choisir la catégorie Écrans filtre les lignes vendues. La petite flèche au milieu de la relation montre ce sens.

Le filtre bidirectionnel (Les deux) fait aussi remonter le filtre des ventes vers les produits. Tentant pour « que tout filtre tout » ; mais sur un modèle en étoile, il crée des chemins ambigus et des résultats surprenants. Règle de ce cours : sens unique partout.

3

La table de dates

La dimension que tout modèle doit avoir
✓ Terminé›

Pour analyser dans le temps — par mois, par trimestre, cette année contre l'an dernier — Power BI a besoin d'une table qui contient chaque jour, sans trou, une seule fois. On la crée en DAX.

  1. Modélisation › Nouvelle table, puis :
DAX — Nouvelle table
Calendrier = CALENDAR(DATE(2025, 1, 1), DATE(2026, 12, 31))
  1. Dans cette table, Nouvelle colonne, trois fois :
DAX — Colonnes calculées
Année = YEAR(Calendrier[Date])
N° mois = MONTH(Calendrier[Date])
Mois = FORMAT(Calendrier[Date], "mmmm")
  1. Sélectionne la colonne Mois dans le volet Données, puis, dans le volet Propriétés, Trier par colonne : N° mois. Janvier passe enfin avant février.
  2. Volet Données, … de la table Calendrier › Marquer comme table de dates, colonne Date. Si la commande manque, la colonne n'est pas de type Date : Propriétés › Type de données : Date, puis recommence.
  3. Relie Calendrier[Date] à Commandes[Date] (un à plusieurs).

Virgule ou point-virgule ? Ce cours écrit le DAX avec des virgules, comme la documentation de Microsoft. Si Power BI souligne tes virgules, ton poste utilise les séparateurs régionaux : écris ; à la place, ou change le réglage dans Fichier › Options › Paramètres régionaux.

Demande · Contrôle de gestion

« La saisonnalité 2026, dans l'ordre des mois »

Construis un histogramme : Calendrier[Mois] en axe, somme de Commandes[Total_HT] en valeur, filtre Calendrier[Année] = 2026 et Commandes[Statut] ≠ Annulée. Quel est le meilleur mois, le plus faible ?

🔍 Analyse. Le creux d'août et le pic de décembre sont-ils une surprise pour un distributeur informatique ? Ce qui compte pour la direction n'est pas le creux lui-même, mais s'il est plus profond que l'an dernier. La séance 4 donnera l'outil pour le dire : comparer à la même période de l'année précédente.
Voir la solution
À trouver : la table Calendrier compte 730 lignes. Meilleur mois 2026 : décembre, 29 668,93 € ; le plus faible : août, 10 560,32 €. Total de l'année : 234 290,66 €.
🏋️ À toi de jouer — dans Power BI
4

Ranger le modèle

Pour que celui qui construit le rapport ne se trompe pas de colonne
✓ Terminé›

Un modèle se lit dans le volet Données. S'il montre trente colonnes dont la moitié sont des clés techniques, quelqu'un finira par glisser Lignes_commande[Référence] au lieu de Produits[Référence] — et obtiendra un visuel faux.

  • Masquer les clés du côté « plusieurs » (clic droit › Masquer dans la vue rapport) : on découpe toujours par la dimension.
  • Formater à la source : Total_HT en devise, deux décimales. Chaque visuel en hérite.
  • Ne pas additionner ce qui ne s'additionne pas : Année, Surface_m2 ou un identifiant → Résumé › Ne pas résumer.
  • Catégorie de données : Clients[Ville] → Ville, pour qu'une carte la place au bon endroit.
  • Une table pour les mesures (séance 4) : toutes au même endroit, rangées en dossiers d'affichage.
🏋️ À toi de jouer — dans Power BI
5

Diagnostiquer un modèle

Trois symptômes, trois causes
✓ Terminé›
Symptôme dans le visuelCause la plus probableOù regarder
Le même montant sur toutes les lignesPas de relation (ou relation dans le mauvais sens) entre l'axe et la mesureVue Modèle
Une ligne « (Vide) »Des clés du côté « plusieurs » absentes du côté « 1 »Anti gauche dans Power Query (séance 2)
Un total plus grand que la somme attendueDes doublons du côté « 1 », ou une relation plusieurs à plusieursDistribution de la clé
Demande · Karim Benali, responsable régional Nord

« Votre rapport dit que chaque région fait 435 900,85 € »

Un collègue a construit un visuel Clients[Région] × somme de Commandes[Total_HT] (annulées exclues). Les quatre régions affichent 435 900,85 €. Trouve la cause, répare, et donne le vrai CA de chaque région.

🔍 Analyse. 435 900,85 €, c'est le CA total de Datashop : le filtre de la région n'atteint pas les commandes. Remarque que le visuel ne signale aucune erreur — c'est ce qui rend ce défaut dangereux. Et une fois réparé : les quatre régions sont-elles aussi différentes que les quatre canaux ?
Voir la solution
  1. Vue Modèle : la relation Clients[ID_Client] → Commandes[ID_Client] manque. La créer (1 à plusieurs, sens unique).
À trouver : Sud 115 853,37 € · Est 109 255,47 € · Nord 107 319,15 € · Ouest 103 472,86 €. Des régions très proches : la vraie différence de Datashop se joue par canal, pas par région.
✓

Quiz de fin de séance

Six questions pour vérifier que c'est acquis
✓ Terminé›

Six questions sur le modèle, dont deux sur le schéma.

Le modèle est prêt à recevoir des mesures. La séance 4 écrit celles que la direction de Datashop regarde chaque lundi : CA, marge, évolution, part du total.

STOP exercices. Tu as lu tout l'onglet et répondu à ses questions : arrête-toi ici, ne passe pas encore à l'onglet suivant. En cours, ton intervenant montre l'essentiel sur son écran, puis vous refaites ensemble :

  1. Charger et relier — atelier 2 : le modèle chargé et relié
  2. Le calendrier — atelier 3 : Calendrier marqué et relié

Tu travailles seul ? Fais ces exercices maintenant, sur datashop-modele.xlsx (ton modèle sémantique) (page Ateliers), puis passe à l'onglet suivant.