ES
ERVIS SEFERI
Finance · Business · Technologie
← Retour · Je partage mes connaissances
IA & Automatisation · Power BI

Le calendrier qui manque à tout cumul

TOTALYTD ne fonctionne pas sur les dates du grand livre. Il faut un calendrier complet, marqué comme tel, pour que les cumuls mensuels tiennent la route.

Dans le cadre de la rubrique « Je partage mes connaissances », je vous propose de construire le cumul mensuel des charges et du résultat, l'indicateur que tout contrôleur de gestion réclame en réunion budgétaire. Le réflexe naturel est de trier les lignes du grand livre par date et d'additionner au fil de l'eau. Ce réflexe casse dès que le calendrier n'est pas complet, et il ne l'est jamais dans un grand livre, qui ne contient que les jours où une écriture existe.

Axe de dates du grand livre, troué, comparé à un calendrier continu
Treize dates mouvementées ne font pas un axe de temps : il manque les jours entre les écritures.

Pourquoi la colonne de dates du grand livre ne suffit pas

La table GrandLivre contient une colonne Date. Elle semble suffisante pour un cumul : trier, additionner, afficher. Elle ne l'est pas, parce qu'elle ne contient que les dates où une écriture existe, treize dates sur toute la période dans le fichier utilisé ici. Un cumul construit sur cet axe saute les jours sans écriture, et un mois sans mouvement disparaît du visuel au lieu d'afficher un cumul stable.

Aucune fonction de temps DAX, TOTALYTD, DATEADD ou SAMEPERIODLASTYEAR, ne fonctionne correctement sans une table de dates dédiée, continue, et déclarée comme telle.

Construire un calendrier complet

  1. Ruban Accueil, groupe Calculs, Nouvelle table. La formule ci-dessous construit un jour par ligne du 1er janvier au 31 décembre 2026, avec l'année, le numéro du mois, le libellé du mois et le trimestre en colonnes annexes.
Calendrier =
ADDCOLUMNS(
    CALENDAR(DATE(2026, 1, 1), DATE(2026, 12, 31)),
    "Année", YEAR([Date]),
    "N° mois", MONTH([Date]),
    "Mois", FORMAT([Date], "MMMM yyyy"),
    "Trimestre", "T" & FORMAT([Date], "Q")
)
  1. La table créée reste une table comme une autre tant qu'elle n'est pas déclarée table de dates. Dans le volet Données, sélectionner Calendrier, ruban Outils de table, Marquer comme table de dates, choisir la colonne Date, valider. Une coche verte confirme la déclaration.
  2. Sans cette étape, la colonne Mois se trie alphabétiquement : avril avant février. Sélectionner la colonne Mois, ruban Outils de colonne, Trier par colonne, choisir N° mois.
  3. Vue Modèle : relier GrandLivre[Date] à Calendrier[Date], puis Budget[Date] à Calendrier[Date]. Cardinalité plusieurs-à-un, direction du filtre croisé sur Unique dans les deux cas.
Boîte de dialogue Marquer comme table de dates, colonne Date sélectionnée
Cette coche verte est la seule preuve que TOTALYTD peut s'appuyer sur cette table.

Les mesures de cumul

Deux mesures suffisent, une fois le calendrier en place et relié aux deux tables de faits :

Charges YTD = TOTALYTD([Total Charges], Calendrier[Date])

Résultat YTD = TOTALYTD([Résultat], Calendrier[Date])

Posées dans une table aux côtés de Calendrier[Mois], Total Charges et Résultat, ces deux mesures donnent :

MoisTotal ChargesCharges YTDRésultatRésultat YTD
janvier 202635 300,5035 300,50−22 800,50−22 800,50
février 202623 950,0059 250,50−19 550,00−42 350,50
mars 20262 285,0061 535,504 615,00−37 735,50
avril 20264 050,0065 585,50−4 050,00−41 785,50
Total65 585,5065 585,50−41 785,50−41 785,50

Le calendrier compte douze mois ; le tableau n'en affiche que quatre. Mai à décembre existent dans Calendrier mais n'ont aucune écriture en face : les mesures y sont vides, Power BI masque la ligne. Le calendrier complet reste indispensable malgré tout, parce que TOTALYTD a besoin d'un axe continu pour additionner correctement, un axe troué donnerait un cumul faux plutôt qu'un cumul vide.

Mars est le seul mois bénéficiaire du tableau : résultat de +4 615,00, parce qu'une vente au client GAMMA de 6 900,00 tombe dans un mois sans écriture de paie. Lu seul, ce mois raconte une performance. Lu en cumul, le résultat remonte de −42 350,50 à −37 735,50 puis redescend en avril : c'est le calendrier des paies qui parle, pas la performance commerciale.

Un contrôle tient en une ligne : le cumul du dernier mois renseigné doit être strictement égal au total général. Ici, 65 585,50 apparaît deux fois. Si les deux valeurs divergent, soit la table de dates n'est pas marquée comme telle, soit la relation à Calendrier est absente ou mal orientée.

Les erreurs qui coûtent une soirée

ErreurSymptômeCorrection
Colonne GrandLivre[Date] utilisée comme axe de tempsLes cumuls sautent des mois, ou s'arrêtent au dernier mois mouvementéCréer une table Calendrier continue, dédiée à l'axe de temps
Table de dates créée mais non marquéeTOTALYTD renvoie une valeur vide ou seulement le total du moisOutils de table → Marquer comme table de dates
Colonne Mois non triée par son numéroL'axe affiche avril avant févrierTrier par colonne → N° mois

Ce que ce fichier ne permet pas de calculer

SAMEPERIODLASTYEAR et DATEADD renverraient ici des colonnes vides : le grand livre démarre le 15 janvier 2026, et aucun exercice 2025 n'existe dans les fichiers. Une comparaison N/N-1 réclame des données N-1 ; les fabriquer pour la démonstration reviendrait à masquer que l'exemple ne peut pas tourner sur ce jeu de données. Une table vide prise pour un bug coûte plus cher qu'une fonction qu'on n'a pas encore l'occasion d'illustrer correctement.

L'article précédent posait ALL, ALLSELECTED et DIVIDE pour lire un poids et une variance sans diviser par zéro. Celui d'avant posait la mesure et la colonne calculée, deux réflexes qui se ressemblent et se traitent différemment selon le contexte de filtre. Le calendrier ferme cette série de trois : relire DAX : la mesure qui remplace la formule Excel pour reprendre au début.

Versions : article rédigé d'après Power BI Desktop, mise à jour d'août 2026 (interface en français). Les fonctions DAX utilisées (TOTALYTD, CALENDAR, ADDCOLUMNS, FORMAT) sont disponibles dans les versions actuelles ; les noms de menus peuvent changer au fil des mises à jour mensuelles.