4.2 · Power Pivot, modèle de données & intro DAX

Niveau 4 · Expert : Power Query, modèle de données & VBA

4.2Power Pivot, modèle de données & intro DAX

Objectif : Comprendre le modèle de données (relations entre tables) et l'idée d'une mesure DAX.
Temps estimé : 14 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

L'essentiel en 30 secondes

  • Relier au lieu d'aplatir : le modèle de données (Power Pivot) relie plusieurs tables par des relations sur une clé commune — un TCD puise alors dans plusieurs tables comme si elles n'en formaient qu'une.
  • DAX = calculs centralisés : une mesure (ex. SOMME(Ventes[Montant])) vit dans le modèle et se recalcule selon les filtres du TCD — un seul calcul « CA » pour tous les tableaux.
  • Réflexe de Wassim : dès que les RECHERCHEX se multiplient, il est temps de modéliser — et c'est la porte vers Power BI (mêmes concepts).

Mini-cas filé — Wassim croise ventes et produits sans une seule RECHERCHEX

Wassim, comptable à Alger, analyse le chiffre d'affaires par catégorie : sa table Ventes (CodeProduit, Montant) et sa table Produits (CodeProduit, Catégorie) l'obligeaient à des RECHERCHEX fragiles sur des milliers de lignes. Il charge les deux tables dans le modèle, crée une relation sur CodeProduit et écrit une mesure Total Ventes. Son TCD croise la catégorie (de Produits) et la mesure — sans RECHERCHEX. Deuxième jalon du fil rouge : la table Power Query de 4.1 alimente maintenant un vrai modèle.

Suite du cas 4.1 — la table nettoyée par Wassim entre dans le modèle de données.

1. Relier des tables au lieu de tout aplatir

Au lieu d'écrire des RECHERCHEX pour tout rassembler dans une seule table géante, le modèle de données (Power Pivot) relie plusieurs tables par des relations (une clé commune, ex. CodeProduit). Un TCD peut alors puiser dans plusieurs tables reliées comme si elles n'en formaient qu'une. C'est le principe des bases de données, dans Excel — et Wassim y gagne des classeurs légers et fiables.

La relation exige des clés de même type (texte avec texte, nombre avec nombre) et des valeurs uniques côté parent : sinon la jointure échoue ou produit des doublons. On vérifie les types dès Power Query, avant de modéliser.

2. La mesure DAX

DAX (Data Analysis eXpressions) est le langage de calcul du modèle. Une mesure est un calcul réutilisable et contextuel : Total Ventes := SOMME(Ventes[Montant]) se recalcule selon ce qu'on filtre dans le TCD (par région, par mois…). Une mesure vit dans le modèle, pas dans une cellule — tous les TCD partagent le même calcul.

Ne confondez pas mesure (contextuelle, recalculée par filtre) et formule de cellule (fixe, locale) : c'est la contextualité qui fait la puissance du modèle de Wassim.

3. Pourquoi c'est puissant

Le modèle gère de gros volumes (bien au-delà d'une feuille), évite la duplication (pas de RECHERCHEX partout), et centralise les calculs (une mesure « CA » utilisée par tous les TCD). C'est la marche vers Power BI, qui repose sur les mêmes concepts (modèle + DAX).

En pratique : on charge les tables nettoyées (idéalement via Power Query) dans le modèle avec Ajouter au modèle de données, on déclare les relations, on écrit les mesures de base, puis on construit les TCD.

Erreur d'interprétation fréquente : « Une mesure DAX, c'est juste une formule dans une cellule, et le modèle ne sert à rien si je connais RECHERCHEX ». Non. Une mesure vit dans le modèle et se recalcule selon le contexte de filtre du TCD — une formule de cellule reste fixe et locale. Et empiler des RECHERCHEX pour tout aplatir donne un classeur lourd et fragile, quand une relation fait le même croisement proprement, sur de gros volumes, avec des calculs centralisés.
Le modèle de données Des tables reliées par des relations + des mesures DAX : la logique des bases de données dans Excel Tables liéesRelations par clé+Modèle de donnéesPower Pivot+Mesures DAXContextuelles Relier par une clé plutôt que dupliquer via RECHERCHEX.
Des tables reliées par des relations + des mesures DAX : la logique des bases de données dans Excel
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Wassim charge ses tables Ventes et Produits dans le modèle de données. 2) Il crée une relation sur la clé commune CodeProduit, avec des types identiques. 3) Il écrit la mesure Total Ventes qui somme les montants. 4) Son TCD croise la catégorie (table Produits) et la mesure, sans aucune RECHERCHEX, et le résultat suit les filtres. Leçon : modéliser par relations, centraliser en mesures, analyser en TCD.

Le savais-tu ?

Un TCD branché sur un modèle peut croiser des millions de lignes sans qu'aucune ne soit affichée dans une feuille.
Vrai : le modèle stocke et calcule en arrière-plan — la feuille ne montre que le résultat.

Le TCD n'est que la vitrine ; le modèle est le magasin.

🔎 Exemple concret — 🔎 Exemple concret — Un TCD sur deux tables reliées

Table Ventes (CodeProduit, Montant) reliée à Produits (CodeProduit, Catégorie) :

Relation : Ventes[CodeProduit] → Produits[CodeProduit]
Mesure   : Total Ventes := SUM(Ventes[Montant])
TCD : Catégorie (de Produits) en Lignes, [Total Ventes] en Valeurs
→ CA par catégorie SANS aucune RECHERCHEX

// Variante : CA d'Alger uniquement
CA Alger := CALCULATE(SUM(Ventes[Montant]), Ventes[Ville] = "Alger")

Lecture : le TCD croise deux tables grâce à la relation, la mesure suit les filtres.

Leçon : on modélise (relations) au lieu d'aplatir à coups de RECHERCHEX.

Vocabulaire de la section

Modèle de données
Ensemble de tables reliées par des relations, stockées dans le classeur.

Exemple simple : Wassim y charge Ventes et Produits pour les croiser en TCD.

Ce que ce n'est pas : une seule table géante aplatie à coups de RECHERCHEX.

Réflexe : plusieurs tables à croiser durablement : charger dans le modèle.

Relation
Lien entre deux tables via une clé commune (ex. CodeProduit), de types identiques.

Exemple simple : Wassim relie Ventes et Produits sur CodeProduit.

Ce que ce n'est pas : une formule qui recopie une valeur ligne à ligne.

Réflexe : croiser deux tables : déclarer la relation sur la clé.

Mesure DAX
Calcul réutilisable et contextuel qui s'adapte aux filtres du TCD.

Exemple simple : Le Total Ventes de Wassim se recalcule par mois et par ville.

Ce que ce n'est pas : une formule de cellule fixe et locale.

Réflexe : calcul partagé par plusieurs TCD : écrire une mesure.

Contexte de filtre
Ce qui est filtré dans le TCD et conditionne le résultat d'une mesure.

Exemple simple : Filtrer sur Alger recalcule automatiquement le CA de Wassim.

Ce que ce n'est pas : une valeur figée indépendante des filtres.

Réflexe : mesure surprise : vérifier d'abord les filtres actifs.

En pratique — En pratique — Relier deux tables

  1. Chargez deux tables (Ventes, Produits) dans le modèle de données.
  2. Créez une relation sur la clé commune (CodeProduit).
  3. Créez une mesure simple : Total Ventes := SUM(Ventes[Montant]).
  4. Faites un TCD croisant une colonne de Produits et la mesure, sans RECHERCHEX.
Vous croisez plusieurs tables via des relations et calculez avec une mesure DAX.

Script prêt à dire — expliquer le modèle à un collègue (30 s)

« C'est Wassim : au lieu de recopier les catégories avec des RECHERCHEX, j'ai relié les deux tables sur le code produit. Le TCD croise directement les tables, et ma mesure du chiffre d'affaires se recalcule selon les filtres. Un seul calcul pour tous les tableaux — et ça prépare Power BI. »

À dire quand quelqu'un propose « encore une colonne de RECHERCHEX » : montrez le TCD multi-tables.

Modèle copier-coller — Mesures DAX de base

Total Ventes := SUM(Ventes[Montant])
Nb Ventes := COUNTROWS(Ventes)
Panier Moyen := DIVIDE([Total Ventes], [Nb Ventes])
CA Alger := CALCULATE(SUM(Ventes[Montant]), Ventes[Ville] = "Alger")

CA par catégorie

Comme Wassim : relation Ventes-Produits sur CodeProduit, TCD avec catégorie en lignes et mesure en valeurs.

Suivi par ville

Filtrer le TCD sur Alger : la même mesure se recalcule sans nouvelle formule.

Gros volumes

Des centaines de milliers de lignes : le modèle les absorbe là où la feuille sature.

Clés de types différents

Échec de relation : realigner les types en Power Query (texte/texte), puis recréer la relation.

✓ Bonnes pratiques

  • Modéliser par relations plutôt que dupliquer.
  • Centraliser les calculs dans des mesures.
  • Voir le modèle comme la porte vers Power BI.

✗ Pièges fréquents

  • Tout aplatir avec des RECHERCHEX (lourd, fragile).
  • Relations sur des clés de types différents (échec).
  • Confondre une mesure (contextuelle) et une formule de cellule (fixe).

Points clés à retenir

  • Le modèle de données relie plusieurs tables par des relations.
  • Un TCD peut puiser dans plusieurs tables reliées.
  • DAX : une mesure = calcul réutilisable et contextuel.
  • Mêmes concepts que Power BI (modèle + DAX).

Défi 48h — appliquez demain

Sur vos vraies tables : chargez-en deux dans le modèle, créez la relation sur la clé commune, écrivez une mesure SOMME et croisez-la en TCD sans RECHERCHEX.

Checklist sortie de section
  • Je sais charger des tables et créer une relation.
  • Je sais écrire une mesure DAX simple et contextuelle.
  • Je sais croiser plusieurs tables en TCD sans RECHERCHEX.
Auto-évaluation 1-5 : saurais-je expliquer la différence entre mesure et formule de cellule ?mes croisements reposent-ils encore sur des RECHERCHEX fragiles ?

Questions fréquentes

Modèle de données ou RECHERCHEX ?

RECHERCHEX pour rapatrier une valeur ponctuelle ; le modèle pour analyser durablement plusieurs tables reliées (gros volumes, calculs centralisés). Dès que les RECHERCHEX se multiplient, il est temps de modéliser.

DAX est-il difficile ?

Les mesures simples (SOMME, MOYENNE dans le modèle) sont accessibles ; la puissance (contextes, CALCULATE) demande de la pratique. On commence par des mesures basiques, exactement comme on a commencé par =SOMME.

Vérifiez votre compréhension

À quoi sert une relation dans le modèle de données ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 4Questions inédites et durcies pour valider vos acquis