Académique Documents
Professionnel Documents
Culture Documents
1
Sommaire
➢ Il n’est pas rare que l’on doive revenir sur le processus d’alimentation
pendant le travail de modélisation pour ajuster quelques données ;
➢ Enfin, nous verrons que le DAX, langage utilisé dans le cadre du travail de
modélisation, permet également de construire des tables dynamiques à
partir des tables résultant du processus de chargement :
▪ Nous l’avons déjà vu pour la partie création d’une table calendaire
➢ L’étape de modélisation est une étape clé dans la mesure où elle vise à
garantir pour l’utilisateur :
➢ Pour compléter les types de table (Dimensions, Faits), il existe également les
tables d’agrégat :
▪ Une table d’agrégat s’appuie sur une table de faits pour présenter en général un
niveau d’information plus synthétique complété d’indicateurs dits agrégés.
➢ Les tables d’agrégat sont généralement issues / calculées à partir d’une table
de fait à partir desquelles :
➢ N’oublions pas que toutes agrégations altèrent les capacités d’audit des
données.
➢ Toutes ces opérations vont influer sur la manière dont les informations seront
présentées en restitution et vont être interprétées par les différents visuels ;
➢ Plus le travail sera abouti, moins l’utilisateurs aura de paramétrage lors de la
création des visuels.
Formation Microsoft Power BI - Tous droits réservés – Finelog-Biseum® 19
Data Modeling & DAX
2
Formation Microsoft Power BI - Tous droits réservés – Finelog-Biseum® 21
Data Modeling & DAX
2 1
➢ Pour définir l’ordre de tri par défaut permettant de définir l’ordre d’affichage
des données :
1. Sélectionnez la colonne « Mois » de la table « Calendrier » ;
2. Cliquez sur l’icone « Trier par colonne » et sélectionner la colonne « Mois No ».
▪ Cette option permet de définir l’ordre d’affichage de la colonne libellé « Mois »
en fonction des valeurs de la colonne « Mois No » afin que celle-ci ne suive pas
l’ordre alphabétique.
1
Formation Microsoft Power BI - Tous droits réservés – Finelog-Biseum® 25
Data Modeling & DAX
➢ Pour définir l’ordre de tri par défaut permettant de définir l’ordre d’affichage
des données :
Avant d’avoir défini l’option de tri => Tri alphabétique sur la colonne Mois
➢ Pour définir l’agrégation par défaut (ou la non agrégation) des colonnes
numériques :
1. Sélectionnez la colonne « Année » de la table « Calendrier », par défaut étant
une colonne de type numérique, le système défini automatiquement une
agrégation de type « somme » par défaut ;
2. Cliquez sur la liste « total par défaut » et sélectionner l’option d’agrégation
« Ne pas totaliser ».
➢ Par défaut, tout valeur numérique est automatiquement définie avec une
agrégation de type Somme.
➢ Pour définir l’agrégation par défaut (ou la non agrégation) des colonnes
numériques :
Avant d’avoir défini l’agrégation par défaut Après avoir défini l’agrégation par défaut
2
1
2
Formation Microsoft Power BI - Tous droits réservés – Finelog-Biseum® 30
Data Modeling & DAX
▪ Créer des hiérarchies permettra de définir un lien hiérarchique entre des items
d’une même date (ex : Année => Mois => Jour ; ou Catégorie => Sous-catégorie
=> Modèle => Produit) ;
▪ Définir les indicateurs, si les agrégations par défaut à partir des colonnes ne
suffisent pas à répondre aux problématiques d’analyse.
▪ S’assurer que l’on dispose bien d’une table comportant une série continue de
dates, couvrant l’exhaustivité des dates présentent dans les tables de faits ou
des tables qui seront en relation directement avec cette table ;
▪ Les relations entre les tables permettent de filtrer le contenu d’une table en
fonction de la sélection opérée depuis une table tierce qui est reliée à la
première ;
▪ Power BI peut générer automatiquement des relations entre les tables dans la
mesure où des colonnes portent le même nom dans différentes tables. Le sens
qu’il définit dans ce cas est basé sur l’analyse des valeurs contenues dans
chacune des colonnes de ces tables lui permettant d’en déduire les cardinalités ;
▪ Certaines relations peuvent être définies comme inactives dans le Data Model
et activées en fonction de certain cas, selon des spécifications propres à des
indicateurs.
Les colonnes
Les tables permettant
concernées d’assurer la relation;
! ATTENTION !
Les relations
n’autorisent qu’une
seule colonne par
table
Les cardinalités
2
1
➢ La création de hiérarchies :
▪ Les hiérarchies sont natives dans Power BI dans la mesure où le moteur
analytique déduit automatiquement les relations hiérarchiques entre les
différentes informations ;
▪ Il est cependant possible de créer des hiérarchies spécifiques qui seront
utilisées comme un seul item dans les visuels. Par exemple :
Niveaux intermédiaires
Synthèse Détail
▪ C’est d’ailleurs ce que propose Power BI par défaut sur les notions de datation
(Item de type date).
1
2
▪ Le DAX n’est pas obligatoire et le modèle dès à présent constitué est déjà
opérationnel, sans qu’il comporte la moindre formule DAX (sauf pour la table
calendrier), car le moteur analytique a nativement la capacité à agréger les
données. Cependant, pour des calculs plus complexes, le DAX sera
incontournable ;
▪ Vous ne serez pas expert du DAX à l’issue de ce cours mais vous aurez un bon
aperçu et sachez que de très nombreux exemples sont en ligne.
➢ Syntaxe DAX :
1. De manière générale nous aimons bien isoler les formules dans une table
spécifique que nous nommons « Indicateur ». Pour se faire, nous créons une
table vide comme ainsi dans le menu « Modélisation » icone nouvelle table ;
CALCULATE( SUM('Order Detail'[Montant HT]) ; FILTER(Calendrier ; Calendrier[Année] => YEAR( TODAY() )-1 )) *
1,2
Budget = SUM(Budget[Montant]) ;
Budget ALLSELECTED Zone = CALCULATE( SUM(Budget[Montant]); ALLSELECTED(Zone) ) ;
Budget ALL Zone = CALCULATE( SUM(Budget[Montant]); ALL (Zone) ).
Calcul du budget pour le
croisement Année / Zone
MAX(Calendrier[Année] ) =
2016
MAX(Calendrier[Année] )
= 2016
▪ Dans cette formule, on réutilise l’indicateur Budget, que l’on rapporte pour le
même indicateur, sur le total de toutes les Zones (dans la sélection) ;
▪ La fonction arithmétique DIVIDE() propose une division avec la gestion des
valeurs nulles, ce que ne fait pas la division classique avec l’opérateur « / ».
• ADDMISSINGITEMS ; • RELATED ;
• ALL ; • RELATEDTABLE ;
• ALLEXCEPT ; • SELECTEDVALUE ;
• ALLNOBLANKROW ; • SUBSTITUTEWITHINDEX ;
• ALLSELECTED ; • USERELATIONSHIP ;
• CALCULATE ; • VALUES.
• CALCULATETABLE ;
• CROSSFILTER function ;
• DISTINCT ;
• EARLIER ;
• EARLIEST ;
• FILTER ;
• FILTERS ;
• HASONEFILTER ;
• HASONEVALUE ;
• ISCROSSFILTERED ;
• ISFILTERED ;
• KEEPFILTERS ;
Formation Microsoft Power BI - Tous droits réservés – Finelog-Biseum® 75
Data Modeling & DAX
• SWITCH( Expression ;
Valeur 1; Résultat 1;
Valeur 2 ; Résultat 2;
Valeur … ; Résultat … ;
Résultat Sinon).
▪ Il est fréquent de devoir calculer des valeurs basées sur des périodes :
▪ Elles nécessitent d’avoir spécifié dans le Data Model une table Date (table
définie comme table Date) pour que le moteur puisse les utiliser ;
• CLOSINGBALANCEMONTH ; • OPENINGBALANCEMONTH ;
• CLOSINGBALANCEQUARTER ; • OPENINGBALANCEQUARTER ;
• CLOSINGBALANCEYEAR ; • OPENINGBALANCEYEAR ;
• DATEADD : Ajouter une période ; • PARALLELPERIOD : Période parallèle ;
• DATESBETWEEN : Entre des dates ; • PREVIOUSDAY : Jour précédent ;
• DATESINPERIOD : Date dans une période ; • PREVIOUSMONTH : Mois précédent ;
• DATESMTD ; • PREVIOUSQUARTER : Trimestre précédent ;
• DATESQTD ; • PREVIOUSYEAR : Année précédente ;
• DATESYTD ; • SAMEPERIODLASTYEAR ;
• ENDOFMONTH : Fin du mois ; • STARTOFMONTH : Début du mois ;
• ENDOFQUARTER : Fin du trimestre ; • STARTOFQUARTER : Début du trimestre ;
• ENDOFYEAR : Fin de l’année ; • STARTOFYEAR : début de l’année ;
• FIRSTDATE ; • TOTALMTD : Cumul Mois ;
• FIRSTNONBLANK ; • TOTALQTD : Cumul Trimestre ;
• LASTDATE ; • TOTALYTD : : Cumul Année.
• LASTNONBLANKNEXTDAY ;
• NEXTMONTH : Mois suivant ;
• NEXTQUARTER : Trimestre suivant ;
• NEXTYEAR : Année suivante ;
➢ Les fonctions time intelligente ne doivent pas être confondues avec les
fonctions de manipulation de valeurs de type Date ou Time (lien) :
▪ Pour cela elle passe par une table calculée en mémoire qui agrège les données
par produit pour en connaitre le volume et le CA HT ;
▪ Dans un second temps elle calcule pour chaque ligne le rapport Volume / CAHT ;
▪ Enfin elle renvoie la moyenne de ce rapport ;
AVGX
AVGX on SUMMURIZE