Support formation Rapports Power BI
Support formation Rapports Power BI
Labs Microsoft

icon picker
Lab 06 | Créer des calculs DAX avancés dans Power BI Desktop

Histoire de laboratoire

Dans cet atelier, vous allez créer des mesures avec des expressions DAX impliquant une manipulation du contexte de filtre.
Dans cet atelier, vous allez apprendre à :
Utilisez la fonction CALCULATE() pour manipuler le contexte du filtre
Utiliser les fonctions Time Intelligence
Ce laboratoire devrait prendre environ 45 minutes.

Utiliser le contexte de filtre

Important : Si vous reprenez le labo précédent (et que vous l’avez terminé avec succès), n’effectuez pas cette tâche ; Au lieu de cela, continuez à partir de la tâche suivante.
Ouvrez Power BI Desktop.
Power BI Desktop icon
Pour ouvrir le fichier Power BI Desktop de démarrage, sélectionnez Ouvrir > Parcourir cet appareil.
Dans la fenêtre Ouvrir, accédez au dossier D :\Allfiles\Labs\05-create-dax-calculations-in-power-bi-desktop-advanced\Starter et ouvrez le fichier d’analyse des ventes.
Remarque : À ce stade, Power BI vous demandera de vous connecter si vous ne l’avez pas déjà fait. Vous pouvez vous connecter ou sélectionner Annuler et poursuivre le labo.
Fermez toutes les fenêtres d’information qui peuvent s’ouvrir.
Remarquez le message d’avertissement sous le ruban.
Ce message vous avertit que les requêtes n’ont pas été appliquées pour se charger en tant que tables de modèle. Vous appliquerez les requêtes plus tard dans cet atelier.
Pour ignorer le message d’avertissement, à droite du message d’avertissement, sélectionnez X.
Pour créer une copie du fichier, accédez à Fichier > Enregistrer sous et enregistrez dans le dossier D :\Allfiles\MySolution.
Si vous êtes invité à appliquer les modifications, sélectionnez Appliquer plus tard.

Créer un visuel matriciel

Dans cette tâche, vous allez créer un visuel matriciel pour prendre en charge le test de vos nouvelles mesures.
Dans Power BI Desktop, en mode Rapport, créez une page de rapport.
À la page 3, ajoutez un visuel matriciel.
Picture 13
Redimensionnez le visuel de matrice pour remplir toute la page.
Pour configurer les champs visuels de la matrice, dans le volet Données, faites glisser le bouton Région | Regions, et déposez-la dans le visuel.
Les laboratoires utilisent une notation abrégée pour référencer un champ ou une hiérarchie. Cela ressemblera à ceci : Région | Régions. Dans cet exemple, Region est le nom de la table et Regions est le nom de la hiérarchie.
Ajoutez également les ventes | Domaine de vente.
Pour développer l’ensemble de la hiérarchie, en haut à droite du visuel de matrice, sélectionnez deux fois l’icône de double flèche bifurquée.
Vous vous souvenez peut-être que la hiérarchie Régions comporte les niveaux Groupe, Pays et Région.
Picture 47
Pour mettre en forme le visuel, dans le volet Visualisations, sélectionnez le volet Format.
Picture 14
Dans la zone Rechercher, entrez Pas en escalier.
Définissez la propriété Disposition par étapes sur Désactivé.
Picture 49
Vérifiez que le visuel de matrice comporte désormais quatre en-têtes de colonne.
Picture 50
Chez Adventure Works, les régions de vente sont organisées en groupes, pays et régions. Tous les pays, à l’exception des États-Unis, n’ont qu’une seule région, qui porte le nom du pays. Comme les États-Unis sont un territoire de vente si vaste, il est divisé en cinq régions de vente.
Vous allez créer plusieurs mesures dans cet exercice, puis les tester en les ajoutant au visuel de la matrice.

Manipuler le contexte du filtre

Dans cette tâche, vous allez créer plusieurs mesures avec des expressions DAX qui utilisent la fonction CALCULATE() pour manipuler le contexte du filtre.
Ajoutez une mesure à la table Sales, en fonction de l’expression suivante :
Pour plus de commodité, toutes les définitions DAX de cet atelier peuvent être copiées à partir du fichier D :\Allfiles\Labs\05-create-dax-calculations-in-power-bi-desktop-advanced\Assets\Snippets.txt.
DAX
CodeCopier
Sales All Region =

CALCULATE(SUM(Sales[Sales]), REMOVEFILTERS(Region))

La fonction CALCULATE() est une fonction puissante utilisée pour manipuler le contexte du filtre. Le premier argument prend une expression ou une mesure (une mesure est juste une expression nommée). Les arguments suivants permettent de modifier le contexte du filtre.
La fonction REMOVEFILTERS() supprime les filtres actifs. Il peut prendre soit aucun argument, soit une table, une colonne ou plusieurs colonnes comme argument.
Dans cette formule, la mesure évalue la somme de la colonne Sales dans un contexte de filtre modifié, ce qui supprime tous les filtres appliqués aux colonnes de la table Région.
Ajoutez la mesure Ventes toutes les régions au visuel de matrice.
Picture 52
Notez que la mesure Ventes toutes régions calcule le total de toutes les ventes régionales pour chaque région, pays (sous-total) et groupe (sous-total).
La nouvelle mesure n’a pas encore donné de résultat utile. Lorsque les ventes d’un groupe, d’un pays ou d’une région sont divisées par cette valeur, cela produit un ratio utile appelé « pourcentage du total général ».
Dans le volet Données, assurez-vous que la mesure Toutes les régions des ventes est sélectionnée (lorsqu’elle est sélectionnée, elle aura un arrière-plan gris foncé), puis dans la barre de formule, remplacez le nom et la formule de la mesure par la formule suivante :
Conseil : Pour remplacer la formule existante, copiez d’abord l’extrait. Ensuite, sélectionnez dans la barre de formule et appuyez sur Ctrl+A pour sélectionner tout le texte. Appuyez ensuite sur Ctrl+V pour coller l’extrait de code afin d’écraser le texte sélectionné. Appuyez ensuite sur Entrée.
DAX
CodeCopier
Sales % All Region =
DIVIDE(
SUM(Sales[Sales]),
CALCULATE(
SUM(Sales[Sales]),
REMOVEFILTERS(Region)
)
)

La mesure a été renommée pour refléter fidèlement la formule mise à jour. La fonction DIVIDE() divise la mesure Sales (non modifiée par le contexte de filtre) par la mesure Sales dans un contexte modifié, ce qui supprime tous les filtres appliqués à la table Region.
Dans le visuel de matrice, notez que la mesure a été renommée et qu’une valeur différente s’affiche désormais pour chaque groupe, pays et région.
Mettez en forme la mesure % des ventes toutes les régions sous forme de pourcentage avec deux décimales.
Dans le visuel de matrice, passez en revue les valeurs de mesure Ventes % Toutes régions.
Picture 53
Ajoutez une autre mesure à la table Ventes, en fonction de l’expression suivante et mettez-la en forme sous forme de pourcentage :
DAX
CodeCopier
Sales % Country =
DIVIDE(
SUM(Sales[Sales]),
CALCULATE(
SUM(Sales[Sales]),
REMOVEFILTERS(Region[Region])
)
)

Notez que la formule de mesure du pourcentage de ventes par pays diffère légèrement de la formule de mesure du pourcentage des ventes par région.
La différence est que le dénominateur modifie le contexte de filtre en supprimant les filtres de la colonne Région de la table Région, et non de toutes les colonnes de la table Région. Cela signifie que tous les filtres appliqués aux colonnes du groupe ou du pays sont conservés. Il obtiendra un résultat qui représente les ventes en pourcentage du pays.
Ajoutez la mesure Pays en % des ventes au visuel de matrice.
Notez que seules les régions des États-Unis produisent une valeur qui n’est pas de 100 %.
Vous vous souvenez peut-être que seuls les États-Unis ont plusieurs régions. Tous les autres pays comprennent une seule région, ce qui explique pourquoi ils sont tous à 100 %.
Picture 54
Pour améliorer la lisibilité de cette mesure dans le visuel, remplacez la mesure du pays en % des ventes par cette formule améliorée.
DAX
CodeCopier
Sales % Country =
IF(
ISINSCOPE(Region[Region]),
DIVIDE(
SUM(Sales[Sales]),
CALCULATE(
SUM(Sales[Sales]),
REMOVEFILTERS(Region[Region])
)
)
)

La fonction IF() utilise la fonction ISINSCOPE() pour tester si la colonne de région est le niveau d’une hiérarchie de niveaux. Lorsque la valeur est true, la fonction DIVIDE() est évaluée. Lorsque la valeur est false, une valeur vide est renvoyée, car la colonne region n’est pas dans l’étendue.
Notez que la mesure Pays en % des ventes ne renvoie désormais une valeur que lorsqu’une région est dans l’étendue.
Picture 55
Ajoutez une autre mesure à la table Ventes, en fonction de l’expression suivante et mettez-la en forme sous forme de pourcentage :
DAX
CodeCopier
Sales % Group =
DIVIDE(
SUM(Sales[Sales]),
CALCULATE(
SUM(Sales[Sales]),
REMOVEFILTERS(
Region[Region],
Region[Country]
)
)
)

Pour réaliser des ventes en pourcentage du groupe, deux filtres peuvent être appliqués pour supprimer efficacement les filtres sur deux colonnes.
Ajoutez la mesure Groupe % des ventes au visuel de matrice.
Pour améliorer la lisibilité de cette mesure dans le visuel, remplacez la mesure Groupe de % des ventes par cette formule améliorée.
DAX
CodeCopier
Sales % Group =
IF(
ISINSCOPE(Region[Region])
|| ISINSCOPE(Region[Country]),
DIVIDE(
SUM(Sales[Sales]),
CALCULATE(
SUM(Sales[Sales]),
REMOVEFILTERS(
Region[Region],
Region[Country]
)
)
)
)

Notez que la mesure Groupe de % des ventes ne renvoie désormais une valeur que lorsqu’une région ou un pays est dans l’étendue.
Dans la vue Modèle, placez les trois nouvelles mesures dans un dossier d’affichage nommé Ratios.
Picture 56
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.