L’objectif est de comprendre comment calculer des totaux glissants avec la fonction DATESINPERIOD DAX dans Power BI.
Un total annuel glissant est un total qui va se décaler sur 12 mois.
Par exemple, le mois de janvier cumule de janvier à février A – 1, février cumule de février à mars A – 1, etc.
La particularité de cet exercice est de faire un calcul d’intelligence temporelle à l’aide de la fonction CALCULATE.
Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé.
Créer un fichier Power BI pour DATESINPERIOD DAX
Ouvrir le fichier PBI_Lab45.pbix et l’enregistrer sous le nom PBI_Lab46.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.
Ensuite, vous allez supprimer les valeurs inutiles dans le visuel existant.
Pour cela, cliquer dans le visuel de type Matrice pour le sélectionner.
Ensuite, cliquer dans la partie Champs du visuel puis supprimer la valeur Mt Vente Cumul T.
Enfin, renommer la page Vente A – 1 en Glissant.
Total des ventes sur 12 mois glissants avec DATESINPERIOD DAX
L’objectif de cette nouvelle mesure est de totaliser mensuellement le montant des ventes sur 12 mois glissants.
Pour ce faire, dans la table Transactions, créer une nouvelle mesure qui se nommera Mt Vente 12 mois glissants et qui fournira le résultat attendu.
Ensuite, faire en sorte que la mesure ne s’affiche que pour les périodes AnneeMois.
Puis, formater la mesure en € Euro (123 €) et 0 décimales.
Enfin, utiliser les fonctions CALCULATE, LASTDATE, DATESINPERIOD, IF et ISINSCOPE.
Attention. Cet exercice est un peu plus ardu que les précédents. |
La solution repose essentiellement sur la fonction DATESINPERIOD. Celle-ci retourne une table qui contient une colonne de dates qui commence à une date de début et se termine au bout de N périodes, avec N positif ou négatif. |
Dans cet exercice, la date de début est la date la plus grande du filtre courant. Par exemple, si le filtre courant est novembre 2026, la date de début doit être le 30 novembre 2026. La fonction LASTDATE permet d’obtenir simplement ce résultat. |
Enfin, bien que cela ne soit pas indispensable, il est conseillé de créer deux variables. La première variable sert à stocker la date la plus grande du filtre courant obtenue avec la fonction LASTDATE. La seconde variable sert à stocker la période courante, obtenue avec la fonction DATESINPERIOD. |
Solution pour DATESINPERIOD DAX
Dans la vue Données, faire un clic-droit sur la table Transactions puis cliquer sur Nouvelle mesure.
Ensuite, remplacer Mesure = par la formule suivante :
Mt Vente 12 mois glissants = VAR dateMax = LASTDATE(Calendrier[date]) VAR datePlage = DATESINPERIOD(Calendrier[date], dateMax, -12, MONTH) RETURN IF(ISINSCOPE(Calendrier[AnneeMois]), CALCULATE([Mt Vente],datePlage))
Puis, 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 Supposons que le rapport soit filtré sur le mois de novembre 2026. LASTDATE retourne la date du 30 novembre 2026 dans la variable dateMax. La fonction DATESINPERIOD DAX retourne ensuite une plage de dates comprises entre le 1er décembre 2025 et le 30 novembre 2026 dans la variable datePlage. La variable datePlage est ensuite passée en tant que filtre à la fonction CALCULATE. Celle-ci évalue la mesure Mt Vente dans le contexte de filtre modifié. Le résultat de cette fonction 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.
Pour ce faire, ouvrir le volet Visualisations.
Ensuite, cliquer sur l’objet visuel de type Matrice pour le sélectionner.
Puis, ajouter à l’objet visuel de type Matrice, la mesure Mt Vente 12 mois glissants.
Enfin, réduire les années 2025, 2026, 2027, 2028.
Dans le visuel et avec une calculatrice, vérifier que la mesure Mt Vente 12 mois glissants est bien la somme du Mt Vente sur les 12 derniers mois.
Pour vous aider, regarder la copie d’écran ci-dessous.

Enregistrer son travail
Ensuite, enregistrer le fichier PBI_Lab46.pbix.
Résumé
Vous avez principalement découvert la fonction DAX d’intelligence temporelle DATESINPERIOD.
C’est une fonction qui est généralement passée en tant que filtre à la fonction CALCULATE.
En effet, puisqu’elle renvoie une table contenant une colonne de dates qui débute à une date spécifiée et se poursuit un certain nombre d’intervalles (DAY, MONTH, QUARTER, YEAR), cela permet de modifier le contexte de filtres de la fonction CALCULATE.
Il existe une fonction DAX plus générique que DATESINPERIOD. C’est la fonction DATESBETWEEN. Celle-ci renvoie toutes les dates entre une date de début et une date de fin.
Vous avez aussi utilisé la fonction d’intelligence temporelle LASTDATE pour trouver la dernière date.
Si cette fonction n’avait pas été imposée, vous auriez pu aussi utiliser la fonction classique d’agrégation MAX.
Pour aller plus loin
Consultez l’article sur les Visuels IA Power BI, et celui sur Analyser avec Power BI, ainsi que sur les Insights Power BI.
En cas d’erreur, consultez l’article sur Opération Power BI non valide.
Pour les calculs temporels avec DAX, consultez l’article Power BI comparer un mois avec DAX, ainsi que PREVIOUSMONTH et Power BI comparer une période avec DAX.
Toujours sur la Time Intelligence DAX, vous avez aussi les articles un peu plus poussés sur DATESQTD, DATESINPERIOD et ALL.
Concernant, les autres fonctions DAX utiles, prenez connaissance des articles Totaux cumulatifs avec CALCULATE, FILTER et VALUES.
Vous avez aussi un article pour mieux comprendre les Licences Power BI.
Par ailleurs, téléchargez gratuitement en PDF mon Tutoriel Power BI gratuit.
Enfin, téléchargez aussi gratuitement mon Tutoriel Power Automate gratuit.
Ainsi que mon Nouveau cours Power Apps gratuit.
Laisser un commentaire