Mesure Mt Vente Diff M - 1

Dans Power BI, comparer le mois M avec M – 1 grâce à DAX

L’objectif est de voir l’évolution, positive ou négative, entre le montant du mois M et celui du mois précédent (M – 1), grâce aux fonctions DAX de Power BI.

À partir de cet exercice, il vous sera facile de généraliser à d’autres types de comparaisons intra-périodes.

La particularité de cet exercice est de faire un calcul d’intelligence temporelle (‘Time Intelligence’) à l’aide de la fonction CALCULATE.

Manipulations

Créer un fichier Power BI à partir d’un fichier existant

Ouvrir le fichier PBI_Lab40.pbix et l’enregistrer sous le nom PBI_Lab41.pbix.

L’intérêt d’utiliser un rapport Power BI existant est son modèle de données, en particulier les relations entre les tables. C’est la raison pour laquelle, vous démarrez à partir de ce fichier.

Vous allez copier une page existante pour en créer une nouvelle.

Pour cela, faire un clic-droit sur la page Analyser puis cliquer sur Copier la page : une page Doublon de Analyser apparaît.

Renommer la page Doublon de Analyser en Comparer M – 1.

Ensuite, vous allez supprimer les mesures inutiles dans le visuel existant de la page Comparer M – 1.

Les mesures sont supprimées uniquement dans le visuel. Elles ne sont pas supprimées du modèle de données. Vous pourrez à nouveau les manipuler, si vous le souhaitez.

Pour cela, cliquer dans le visuel de type Matrice pour le sélectionner.

Ensuite, cliquer dans la partie Champs du visuel puis supprimer la mesure Vte An Cumul A – 1. Pour supprimer la mesure dans le visuel, cliquer sur sa croix.

Recommencer cette manipulation pour supprimer la mesure Vte An Cumul.

Il ne doit rester que la valeur Mt Vente.

Pour vous aider, regarder la copie d’écran ci-dessous.

Partie Champs du visuel
Partie Champs du visuel

Différence des ventes du mois avec le mois précédent

L’objectif de cette nouvelle mesure est de mettre en évidence la différence entre les ventes d’un mois avec celles du mois précédent.

Pour ce faire, dans la table Transactions, créer une nouvelle mesure qui se nommera Mt Vente Diff M – 1 et qui fournira le résultat attendu.

Formater la mesure en € Euro (123 €) et 0 décimales.

Utiliser les fonctions CALCULATE, DATEADD.

Bien que cela ne soit pas indispensable, il est conseillé de créer une variable pour stocker le mois précédent du filtre courant obtenue avec la fonction DATEADD.
La syntaxe générale des variables est :
<mesure> = VAR <nom variable> = <expression> RETURN <suite formule>

Bonus : Faire en sorte que la mesure ne s’affiche que pour les périodes AnneeMois, et non pas pour le total annuel.

Utiliser en plus les fonctions IF et ISINSCOPE pour le bonus.

Solution

Dans la vue Données, faire un clic-droit sur la table Transactions puis cliquer sur Nouvelle mesure.

Remplacer Mesure = par la formule suivante :

Mt Vente Diff M - 1 =  VAR datePrecedente = DATEADD(Calendrier[Date], -1, MONTH) RETURN IF(ISINSCOPE(Calendrier[AnneeMois]), [Mt Vente] - CALCULATE([Mt Vente], datePrecedente))

Appuyer sur la touche entrée du clavier.

Dans le ruban Outils de mesure, cliquer sur € Euro (123 €) dans le menu déroulant de $, puis mettre 0 dans le nombre de décimales.

Explication de la formule
La fonction DATEADD retourne une table qui contient une colonne de dates du mois précédent par rapport au mois en cours, dans la variable datePrecedente.
La variable datePrecedente est ensuite passée en tant que filtre à la fonction CALCULATE.
Celle-ci évalue la mesure Mt Vente dans le contexte de filtre modifié.
Bonus :
Grâce à la fonction ISINSCOPE, le résultat de cette fonction n’est affiché que si la colonne AnneeMois est le niveau dans la hiérarchie de niveaux.

Fin de la solution.

Modifier un visuel de type Matrice

Ensuite, vous allez modifier le visuel de type Matrice existant.

Ouvrir le volet Visualisations.

Cliquer sur l’objet visuel de type Matrice pour le sélectionner.

Ajouter à l’objet visuel de type Matrice, la mesure Mt Vente Diff M – 1.

Dans la partie Format, cliquer sur :

  • Mise en forme conditionnelle : Mt Vente Diff M – 1
    • Couleur d’arrière-plan : Activé
      • Commandes avancées
        • Minimum : Valeur la plus basse
        • Couleur : #FF0000 (Rouge)
        • Maximum : Personnalisé
          • Entrer une valeur : 0
        • Couleur : #FFFFFF (Blanc)

Réduire les années 2025, 2026, 2027, 2028.

Dans le visuel, vérifier que la mesure Mt Vente Diff M – 1 est bien la différence entre le Mt Vente du mois M en cours par rapport au mois précédent (M -1).

Pour vous aider, regarder la copie d’écran ci-dessous.

Mesure Mt Vente Diff M - 1
Mesure Mt Vente Diff M – 1

Enregistrer son travail

Enregistrer le fichier PBI_Lab41.pbix.

Résumé

Vous avez découvert l’utilisation d’une variable dans une formule DAX. Les variables sont généralement utilisées lorsqu’un même calcul est répétée ou, comme ici, pour alléger la formule finale.

Vous avez aussi appris la fonction ISINSCOPE. Celle-ci renvoie la valeur vraie (‘true’) quand la colonne spécifiée est le niveau dans une hiérarchie de niveaux, ce qui évite de voir le résultat dans les totaux.

Bien que les fonctions DATEADD et CALCULATE soient plus classiques, elles sont toutes les deux très utilisées.

La fonction d’intelligence temporelle DATEADD renvoie une table qui contient une colonne de dates en avant ou en arrière dans le temps. L’avance ou le recul peut se définir en années, trimestres, mois ou jours. Cette souplesse explique qu’elle est régulièrement utilisée à la place d’autres fonctions temporelles comme SAMEPERIODLASTYEAR.

Le rôle de la fonction CALCULATE est d’évaluer une expression dans un contexte de filtre modifié. Autrement dit, vous pouvez définir librement les filtres qui doivent être utilisés pour évaluer une expression sans tenir compte du contexte de filtre imposé par le visuel ou un segment. En effet, vous avez la possibilité de définir le contexte de filtre de votre choix.

Un premier exemple de modification de contexte de filtre, vous a déjà été donné dans l’article sur Mesurer des valeurs simples. Vous allez en voir de plus en plus avec les exercices suivants.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.