Cumuls en DAX : YTD, totaux cumulés et moyennes mobiles
Le cumul est la mesure qu’on finit toujours par demander : chiffre d’affaires depuis le début de l’année, trésorerie qui court, effectif qui évolue mois après mois. En DAX, il existe trois façons de l’écrire, et le choix dépend d’une seule question : cumuler depuis quand ? Depuis le début de l’année, depuis toujours, ou sur une fenêtre glissante. Cet article donne les trois patrons, prêts à adapter, avec les erreurs qui les accompagnent.
Prérequis unique : une table de dates correcte, marquée comme telle et reliée à vos faits. Si ce n’est pas déjà le cas, commencez par notre article sur le calendrier dynamique.
Cumul annuel : TOTALYTD
Le plus courant, et le plus simple :
CA cumul annuel =
TOTALYTD ( [Chiffre d'affaires], 'Calendrier'[Date] )
// Exercice fiscal clôturé au 30 juin :
CA cumul fiscal =
TOTALYTD ( [Chiffre d'affaires], 'Calendrier'[Date], "30/06" )
La mesure repart à zéro chaque 1er janvier (ou au lendemain de la date de clôture passée en troisième argument). Les variantes trimestre et mois existent : TOTALQTD et TOTALMTD. Pour comparer au cumul de l’an dernier, combinez avec un décalage : CALCULATE ( [CA cumul annuel], DATEADD ( 'Calendrier'[Date], -1, YEAR ) ).
Cumul depuis l’origine : le running total
Pour une trésorerie, un stock ou un compteur d’abonnés, le cumul ne repart jamais à zéro. Le patron classique :
Cumul depuis origine =
CALCULATE (
[Montant],
FILTER (
ALL ( 'Calendrier'[Date] ),
'Calendrier'[Date] <= MAX ( 'Calendrier'[Date] )
)
)
Lecture : pour chaque point du visuel, on lève le filtre de dates (ALL) puis on ne garde que les dates antérieures ou égales à la date affichée. C'est la construction à connaître, parce qu'elle se décline pour tous les cumuls non standard : il suffit de changer la condition du FILTER.
Fenêtre glissante : 12 mois, 90 jours
Pour lisser une saisonnalité ou suivre une tendance, on cumule sur une fenêtre qui avance avec le temps :
CA 12 mois glissants =
CALCULATE (
[Chiffre d'affaires],
DATESINPERIOD ( 'Calendrier'[Date], MAX ( 'Calendrier'[Date] ), -12, MONTH )
)
// Moyenne mensuelle sur la même fenêtre :
CA moyen 12 mois =
DIVIDE ( [CA 12 mois glissants], 12 )
DATESINPERIOD construit la fenêtre en reculant de 12 mois (ou 90 jours avec -90, DAY) depuis la date courante du visuel. C'est la brique des moyennes mobiles et des indicateurs « sur les N derniers mois » qu'on retrouve dans tout reporting de direction.
Les erreurs qui reviennent à chaque audit
| Symptôme | Cause habituelle |
|---|---|
| Le cumul affiche la même valeur partout | Le visuel utilise la date de la table de faits au lieu de celle du calendrier, ou la table de dates n'est pas marquée. |
| Le cumul continue sur les mois futurs vides | Le calendrier va jusqu'au 31 décembre : filtrez les dates au-delà de la dernière donnée réelle, par exemple en enveloppant la mesure d'un test IF ( MAX ( 'Calendrier'[Date] ) > [Dernière date de vente], BLANK (), … ). |
| Colonne calculée cumulée qui fige tout | Un cumul écrit en colonne ne réagit à aucun filtre (le calcul est fait au chargement). Sauf besoin très précis, le cumul est une mesure. |
| Résultats faux dès qu'on filtre une catégorie | Le ALL porte sur toute la table de dates ou sur toute la table de faits selon ce qu'on veut conserver : vérifiez que vous ne levez que le filtre de dates, pas les autres. |
Cumuls en DAX : les questions qui reviennent
Mesure ou colonne calculée pour un cumul ?
Une mesure, sauf exception rare. Elle s'adapte aux filtres, aux segments et aux axes du rapport. La colonne cumulée fige un seul ordre de calcul et gonfle le modèle.
Comment cumuler par catégorie plutôt que par date ?
Même patron CALCULATE + FILTER, appliqué à la colonne de classement : on lève le filtre de la catégorie et on garde celles dont la valeur est supérieure ou égale à la ligne courante. C'est la base d'un Pareto (courbe ABC).
TOTALYTD ou DATESYTD ?
Les deux donnent le même résultat : TOTALYTD est un raccourci de CALCULATE + DATESYTD. La forme longue devient utile quand on veut combiner le YTD avec d'autres filtres dans le même CALCULATE.
Un cumul juste repose sur un modèle sain : calendrier propre, relations correctes, mesures documentées. Si vos chiffres cumulés ne tombent pas juste d'un rapport à l'autre, notre audit Power BI express repère en quelques jours d'où vient l'écart.
Parlons de vos données.
30 minutes pour évaluer votre situation. Conseils concrets garantis, avec ou sans mission.