2.1Relations & modèle de données
Niveau décisif : le modèle. Vos données réelles arrivent en plusieurs tables — les ventes, le référentiel produits, le référentiel clients — et Power BI les relie par des relations : un trait entre deux tables sur une colonne commune. Une fois la relation en place, un visuel peut croiser « Désignation produit » et « Montant des ventes » sans aucune formule : le modèle propage les filtres.
Vous apprendrez à créer et vérifier des relations dans la vue Modèle, à lire la cardinalité (un-à-plusieurs dans l'immense majorité des cas) et le sens de filtrage — et à diagnostiquer le symptôme classique de la relation manquante : les totaux identiques sur toutes les lignes.
Vocabulaire de la section
- Relation
- Le lien entre deux tables sur une colonne commune (Produits[Code] ↔ Ventes[CodeProduit]) : le canal par lequel les filtres circulent.
- Cardinalité un-à-plusieurs (1:*)
- Le cas standard : UN produit du référentiel ↔ PLUSIEURS lignes de ventes. Le côté « 1 » est la dimension, le côté « * » les faits.
- Sens de filtrage
- Par défaut, le filtre va du côté « 1 » vers le côté « * » : filtrer un produit filtre ses ventes. Le sens unique est la norme saine.
- Détection automatique
- Power BI devine certaines relations à l'import : à VÉRIFIER systématiquement dans la vue Modèle — il se trompe parfois.
- Colonne clé
- La colonne commune qui porte la relation : unique côté dimension, répétée côté faits — jamais de doublons côté « 1 ».
À quoi sert une relation entre deux tables ?
En pratique — Relier ventes et référentiel produits
- Importez une seconde table « Produits » (Code, Désignation, Catégorie, PrixUnitaire) — créez-la dans Excel si besoin.
- Vue Modèle : si Power BI n'a pas créé la relation, glissez Ventes[CodeProduit] sur Produits[Code] — le trait apparaît.
- Double-cliquez le trait : lisez cardinalité (1:*) et sens de filtrage (unique) — la configuration saine par défaut.
- Preuve par le visuel : créez un histogramme Catégorie (de Produits) × Montant (de Ventes) — les deux tables dialoguent. Supprimez la relation pour VOIR le symptôme (mêmes totaux partout), puis recréez-la.
Points clés à retenir
- Les relations remplacent les RECHERCHEV : le modèle propage les filtres entre tables.
- Cardinalité normale : un-à-plusieurs, du référentiel (1) vers les faits (*).
- Vérifiez toujours les relations auto-détectées dans la vue Modèle.
- Totaux identiques sur toutes les lignes d'un visuel = relation manquante ou cassée : le diagnostic n°1.
Questions fréquentes
Quand utiliser une relation bidirectionnelle ?
Presque jamais : elle crée des ambiguïtés et des lenteurs. Les cas légitimes existent (certains filtrages par dimension partagée) mais se traitent d'abord par le schéma en étoile (2.2) ou par DAX (CROSSFILTER). Réflexe : sens unique.
Ma relation refuse la cardinalité 1:* : pourquoi ?
Votre colonne « clé » côté dimension contient des doublons ou des vides. Nettoyez dans Power Query (Supprimer les doublons, filtrer les nuls) : une dimension a UNE ligne par élément, c'est sa définition.