Table d’agrégats#

👥 Créée par

Ⓜ Manuella

📅 Date de création

@ 12 novembre 2022

⌗ Difficulté

2

⎊ Etiquette

Vue modèle

Modèle de données pour l’exemple :

classDiagram direction RL fournisseurs "1" --> "*" produits produits "1" --> "*" transactions transactions "*" <-- "1" temps transactions "*" <-- "1" clients clients "1" --> "*" telephones class temps{ fa:fa-table AAMM fa:fa-table Année fisc fa:fa-table Date fa:fa-table ID Mois fa:fa-table JJJ fa:fa-table MMM fa:fa-table Mois Fisc } class clients{ fa:fa-table code pays du client fa:fa-table id du client fa:fa-table nom du client fa:fa-table pays du client fa:fa-table prenom du client fa:fa-table quantité client } class telephones{ fa:fa-table id client fa:fa-table numéro normalisé fa:fa-table téléphone } class transactions{ fa:fa-table date de commande fa:fa-table date de livraison fa:fa-table id client fa:fa-table id produit fa:fa-table quantité } class produits{ fa:fa-table couleur fa:fa-table famille produit fa:fa-table id fa:fa-table id fournisseur fa:fa-table nom produit fa:fa-table prix unitaire } class fournisseurs{ fa:fa-table id fournisseur fa:fa-table nom fournisseur }

Créer une table d’agrégation dans Power QUERY :

  1. Créer une table d’agrégation en important dans une table unique les données à agréger en fonction de l’indicateur (i.e quantité).

    ../../../../_images/exemple5.png
  2. Regrouper les données

Créer une table d’agrégation en DAX

 1agx_pays_couleur =
 2VAR dim_pays_couleur =
 3   SUMMARIZE(
 4      transactions ,
 5      clients[pays du client] ,
 6      produits[couleur]
 7   )
 8VAR agregat =
 9   ADDCOLUMNS(
10      dim_pays_couleur ,
11      "qté totale" ,
12      CALCULATE(
13         SUM(transactions[quantité])
14      )
15   )
16RETURN
17agregat
  1. Créer une relation entre la table d’agrégat (plusieurs à plusieurs) avec les champs de la table agrégat et les dimensions.

classDiagram direction LR clients "*" --> "*" ag_pays_année_qté ag_pays_année_qté "*" <-- "*" datum class clients{ fa:fa-table id fa:fa-table pays fa:fa-table prenom } class ag_pays_année_qté{ fa:fa-table Annee fa:fa-table pays fa:fa-table qté pays année } class datum{ fa:fa-table Annee fa:fa-table Annee mois fa:fa-table Date fa:fa-table Nom du mois fa:fa-table Trimestre }
../../../../_images/exemple6.png
  1. Gérer les agrégations (à approfondir) ou utiliser la mesure DAX (à privilégier)

pour aiguiller sur la valeur agrégée ou non, ici si date de commande alors utilisée détail sinon agrégé)

1quantité (det-agg) =
2IF(
3   ISFILTERED(transactions[date de commande]) ,
4   SUM(transactions[quantité]) ,
5   SUM('agrégat'[quantité totale])
6)
1_qté =
2IF(
3   ISINSCOPE(datum[Date]) ,
4   SUM(transactions[quantité]) ,
5   IF(
6      OR(ISINSCOPE(datum[Annee]) , ISINSCOPE(clients[pays]) ) ,
7      SUM('ag_pays_année_qté'[qté pays année])
8   )
9)
1Mesure = IF(
2   ISFILTERED(datum[Date]),
3   sum(transactions[quantité]),
4   sum('ag_pays_année_qté'[Nombre])*100)