Une relation de modèle propage les filtres appliqués sur la colonne d’une table de modèle à une autre table de modèle.
Finalité des relations
Propage des filtres appliqués à la colonne d’une table de modèle à une autre table de modèle. Propagation se poursuit tant qu’il y a un chemin de relation à suivre et peut viser plusieurs tables. Les chemins de relation sont déterministes, ce qui signifie que les filtres sont toujours propagés de la même façon et sans variation aléatoire. Peuvent être désactivées ou le contexte de filtre peut être modifié par les calculs de modèle qui utilisent des fonctions DAX particulières. Si plusieurs filtres sont appliqués à une table : toujours d’une opération AND (exige que toutes les conditions soient remplies). Appliquer les principes de conception des schémas en étoile
Produire un modèle comprenant des tables de dimension et de faits Appliquer des règles qui filtrent les tables de dimensions, ce qui permet aux relations de modèle de propager efficacement ces filtres aux tables de faits. Tables déconnectées
Une table déconnectée n’est pas destinée à propager des filtres à d’autres tables de modèle. Valeurs de la table utilisées dans des calculs DAX. Exemple de What-if (scénarios) : Cardinalités
Un-à-plusieurs (1:*) ou Plusieurs à un (*:1) Plusieurs à plusieurs (*:*) Privilégier les deux premières.
Une relation est matérialisée par un trait entre 2 tables. Les champs OrderID sont utilisés pour créer la relation (placer sa souris sur le trait sans cliquer pour voir les champs impliqués dans la relation). Il n’y a pas de relation (même cachée) entre ces 2 tables Le côté “1” de la relation indique (suppose) que le champ (ici ProductID) est sans doublons Le côté “plusieurs” indique qu’il peut y avoir des doublons dans le champ (ici ProductID). Les valeurs de ce champ doivent correspondre avec celles du côté “1” de la relation.
Créer une relation
Faite glisser un champ d’une table sur le champ d’une autre table.
Les champs peuvent ne pas avoir le même nom mais avoir le même type : numérique, date ou texte.
Création automatique
Les relations sont créées automatiquement lors du premier chargement de chaque table. Pour forcer la détection automatique : Accueil > Gérer les relations > Détection automatique
Pour que Power BI ne détecte pas la relation : Fichier > Options et paramètres > Options > Fichier actif > Chargement des données > Décocher Détecter automatiquement les nouvelles relations une fois les données chargées.
Supprimer une relation
Sélectionner une relation puis touche SUPPR.
On passe alors de :
(Champ CustomerID de la table Order et Quantity de la table Order_details)
à :
Quand les valeurs d’un champ est identique et égal au total, c’est qu’il manque une relation entre les 2 tables.
Modifier une relation
Double-clic sur une relation, ce qui affiche.
On doit modifier une relation quand on a créé une relation avec les mauvais champs. Par exemple, on crée une relation entre le champ OrderID de la table Orders et le champ ProductID de la table Order_Details :
Ces champs n’ayant aucune valeur commune, on obtient :
Le champ CustomerID de la table Orders ne peut afficher aucune valeur car les champs OrderID et ProductID n’ont pas de valeur commune.
Direction du filtre
On crée 2 mesures :
Qte order details = SUM(Order_Details[Quantity])
Nb orders = COUNTROWS(Orders)
Quand on affiche la mesure par CustomerID, on obtient le résultat souhaité :
Le champs CustomerID de la table Orders filtre Quantity de la table Order_details utilisé dans la mesure.
Quand on affiche la mesure par ProductName de la table Product et la mesure Nb orders, on obtient :
Donc comme si il n’y avait pas de relation entre les tables. Ce qui est le cas en effet :
Le nombre de Orders ne peut pas être filtré par ProductName car il n’y a pas de relation directe entre les 2 tables. Pour contourner le problème, on aura recours aux filtres dans à double sens.
Pour chacune des relations entre les 3 tables : double-clic puis sélectionner A double sens dans Direction du filtre croisé.
On obtient alors les bons chiffres :
Car les filtres se propagent en “remontant” :
Afficher les éléments sans données
Un élément est présent dans une table de dimension (par exemple un secteur), mais aucune ligne de la table de fait ne référence cet élément (aucune vente sur ce secteur). On souhaite quand même afficher ce secteur dans un visuel.
Dans le volet Build, clic droit sur le champ > Afficher les éléments sans données.
Dans la mesure qui calcule la somme, modifier =SUM(Ventes[Montant]) en :
=IF(ISBLANK(SUM(Ventes[Montant])),0,SUM(Ventes[Montant]))
Intro
The has the purpose to facilitate data interaction and integration between Google Sheets documents and Coda docs. Start here → Due to the very different nature of how data is organized, it is important to understand how Google Sheets (and all spreadsheets tools) and Coda structure data. If you’re not familiar with these concepts, you can have a quick overview on . Getting Started
Level 1:
Google Sheets data into Coda in (less than) 60 seconds!
Level 2:
How to configure your sync tables and retrieve data via formula
Level 3:
How to add new rows to your sheets
Level 4:
How to configure your sync tables and retrieve data via formula
Building Blocks
Here you can find a convenient reference by building block with one page fully dedicated to each block
: Mapping a Google Sheets range into a Coda Sync Table by selecting the document and the tab via a dynamic dropdown. : A formula allowing to retrieve data directly from one or multiple cells : An action formula used to update cells in a row. : An action formula used to add new rows to a sheet.