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 :
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é).
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
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
}

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)