3.2Time intelligence (cumuls, YTD, comparaison N-1)
« Où en est-on par rapport à l'an dernier ? » — la question n°1 de toute direction. La time intelligence DAX y répond en trois fonctions phares : TOTALYTD (le cumul depuis le début d'année), SAMEPERIODLASTYEAR (la même période N-1) et DATEADD (le décalage générique). Prérequis absolu : la table de dates marquée du 2.5 — sans elle, ces fonctions mentent.
Vous construirez le quatuor standard de tout rapport de pilotage : CA YTD, CA N-1, évolution en valeur et en % — puis le poserez dans une matrice temporelle qui répond à la question de la direction en un regard.
Vocabulaire de la section
- Time intelligence
- La famille de fonctions DAX qui manipulent les périodes : cumuls, décalages, comparaisons — toutes appuyées sur la table de dates.
- TOTALYTD
- Le cumul annuel : TOTALYTD([Total CA]; Dates[Date]) — variante fiscale possible avec la date de clôture.
- SAMEPERIODLASTYEAR
- La même période un an plus tôt : CALCULATE([Total CA]; SAMEPERIODLASTYEAR(Dates[Date])).
- DATEADD
- Le décalage générique : DATEADD(Dates[Date]; -1; MONTH) pour le mois précédent — plus flexible que les fonctions dédiées.
- Évolution N-1
- Le duo final : Évol = [CA] - [CA N-1] et Évol % = DIVIDE([CA] - [CA N-1]; [CA N-1]).
Comment calcule-t-on un « % du total » insensible au filtre d'une colonne ?
En pratique — Le quatuor de pilotage
- Créez : CA YTD = TOTALYTD([Total CA]; Dates[Date]) — vérifiez dans une matrice Mois × mesures : le cumul grimpe puis repart en janvier.
- Créez : CA N-1 = CALCULATE([Total CA]; SAMEPERIODLASTYEAR(Dates[Date])) (nécessite des données sur 2 ans — dupliquez vos ventes décalées d'un an dans le CSV si besoin).
- Complétez : Évol % = DIVIDE([Total CA] - [CA N-1]; [CA N-1]) en format %.
- Assemblez la matrice de pilotage : Mois en lignes, les 4 mesures en valeurs — la réponse à « où en est-on ? » tient sur un visuel.
Points clés à retenir
- Toute la time intelligence repose sur la table de dates MARQUÉE : le 2.5 n'était pas optionnel.
- TOTALYTD, SAMEPERIODLASTYEAR, DATEADD : trois fonctions couvrent les demandes courantes.
- L'évolution s'exprime en valeur ET en % : les deux mesures vont par paire.
- Construisez ces mesures une fois proprement : elles se copient de modèle en modèle toute votre carrière.
Questions fréquentes
Mon CA N-1 affiche vide ou faux : pourquoi ?
Trois suspects : la table de dates n'est pas marquée, la relation date passe par la mauvaise colonne, ou l'historique ne couvre pas N-1. Vérifiez dans cet ordre — c'est l'un des trois, à 95 %.
Comment gérer un exercice fiscal décalé (clôture en juin) ?
TOTALYTD accepte la date de fin d'exercice : TOTALYTD([CA]; Dates[Date]; "30/06"). Pour les besoins complexes, on enrichit la table de dates de colonnes fiscales (AnnéeFiscale, MoisFiscal) — la beauté d'avoir SA table calendrier.