BIWORKS
Mesures DAX d'un reporting financier : les 5 formules expliquées à un contrôleur de gestion

Mesures DAX d'un reporting financier : les 5 formules expliquées à un contrôleur de gestion

Mis à jour le

Un reporting financier sous Power BI repose sur cinq mesures DAX de base : le chiffre d’affaires, la marge brute (et son taux), le cumul annuel (YTD), la comparaison N-1 et la variation en pourcentage. Chacune tient en quelques lignes, à condition de partir des écritures comptables et d’une table de dates marquée.

Cet article s’adresse aux contrôleurs de gestion et DAF de PME qui construisent leur reporting dans Power BI. Pour chaque mesure : la question que pose le DAF, la réponse courte, la formule et le piège courant.

Prérequis : le modèle utilisé dans les formules

Les formules ci-dessous supposent un modèle simple, à adapter à vos noms de tables et de colonnes :

  • une table Ecritures (par exemple issue du FEC) avec les colonnes CompteNum, Debit, Credit et EcritureDate ;
  • une table Date continue, marquée comme table de dates et reliée à Ecritures[EcritureDate].

Sans table de dates marquée et reliée, les mesures de cumul annuel et de N-1 renvoient des résultats vides ou faux. Le détail des fonctions de temps est traité dans notre guide calculs de temps en DAX.

Tableau de bord Power BI affichant le chiffre d'affaires, la marge brute et leur évolution mensuelle

1. Chiffre d’affaires

Question du DAF : « Combien avons-nous facturé sur la période sélectionnée ? »

Réponse courte : le chiffre d’affaires est le solde créditeur des comptes 70, soit les crédits moins les débits. Écrit comme mesure explicite, il se recalcule pour chaque mois, client ou activité filtré dans le rapport.

Chiffre d'affaires =
CALCULATE (
    SUM ( Ecritures[Credit] ) - SUM ( Ecritures[Debit] ),
    LEFT ( Ecritures[CompteNum], 2 ) = "70"
)

Piège courant : sommer seulement la colonne Credit. Les avoirs et les rabais accordés (compte 709) passent au débit : sans la soustraction, le chiffre d’affaires est surévalué. Vérifiez aussi que votre export ne contient pas d’écriture qui solde les comptes de gestion à la clôture, sinon le total de l’exercice tombe à zéro.

2. Marge brute et taux de marge

Question du DAF : « Que nous reste-t-il une fois les achats consommés déduits, et en pourcentage du chiffre d’affaires ? »

Réponse courte : la marge brute est le chiffre d’affaires moins les achats consommés (comptes 60, variation de stock comprise). Le taux de marge divise cette marge par le chiffre d’affaires avec DIVIDE, pour éviter l’erreur sur une période sans vente.

Achats consommés =
CALCULATE (
    SUM ( Ecritures[Debit] ) - SUM ( Ecritures[Credit] ),
    LEFT ( Ecritures[CompteNum], 2 ) = "60"
)

Marge brute =
[Chiffre d'affaires] - [Achats consommés]

Taux de marge brute =
DIVIDE ( [Marge brute], [Chiffre d'affaires] )

Piège courant : calculer le taux de marge dans une colonne calculée, ligne par ligne, puis en faire la moyenne. La moyenne des taux n’est pas le taux du total : seule la division de deux mesures donne un total juste. Autre point à trancher avec la direction : le périmètre des achats retenus (comptes 60 seuls, ou 60 et 61-62 pour une marge sur coûts directs), à documenter dans la description de la mesure.

3. Cumul annuel (YTD)

Question du DAF : « Où en sommes-nous depuis le début de l’exercice ? »

Réponse courte : le cumul annuel applique DATESYTD à la mesure de chiffre d’affaires, dans CALCULATE. Il cumule du premier jour de l’exercice jusqu’à la dernière date du contexte filtré (le mois affiché, par exemple).

CA cumul annuel =
CALCULATE (
    [Chiffre d'affaires],
    DATESYTD ( 'Date'[Date] )
)

Piège courant : l’exercice décalé. Par défaut, DATESYTD considère que l’exercice se termine le 31 décembre. Pour un exercice clos au 30 juin, il faut renseigner le deuxième argument (date de fin d’exercice), dont le format dépend des paramètres régionaux du modèle : contrôlez le résultat sur le premier et le dernier mois de l’exercice.

4. Comparaison N-1

Question du DAF : « Combien avions-nous fait sur la même période l’an dernier ? »

Réponse courte : la mesure N-1 décale le contexte de dates d’un an avec SAMEPERIODLASTYEAR. Elle réutilise la mesure de chiffre d’affaires, et fonctionne aussi bien sur un mois, un trimestre que sur le cumul annuel.

CA N-1 =
CALCULATE (
    [Chiffre d'affaires],
    SAMEPERIODLASTYEAR ( 'Date'[Date] )
)

CA cumul annuel N-1 =
CALCULATE (
    [CA cumul annuel],
    SAMEPERIODLASTYEAR ( 'Date'[Date] )
)

Piège courant : comparer une année en cours incomplète à une année N-1 complète. Si la table de dates va jusqu’au 31 décembre alors que les écritures s’arrêtent fin septembre, le visuel au niveau « année » compare 9 mois à 12 mois. Filtrez le rapport sur les mois clôturés, ou comparez les cumuls annuels mois par mois.

5. Variation en pourcentage

Question du DAF : « De combien progressons-nous, ou reculons-nous, par rapport à l’an dernier ? »

Réponse courte : la variation est l’écart entre N et N-1, divisé par N-1. DIVIDE renvoie une valeur vide quand N-1 est nul ou vide, au lieu d’une erreur ou d’un pourcentage infini.

Variation CA % =
DIVIDE (
    [Chiffre d'affaires] - [CA N-1],
    [CA N-1]
)

Piège courant : diviser par N au lieu de N-1, ou utiliser l’opérateur /. Formatez aussi la mesure en pourcentage dans le modèle (et non dans chaque visuel), pour que tous les rapports l’affichent de la même façon. La même formule s’applique à la marge brute en remplaçant les deux mesures.

Erreurs transversales à éviter

  • Mesures implicites : glisser la colonne Credit dans un visuel crée une somme implicite, sans filtre sur les comptes ni signe. Créez une mesure explicite pour chaque indicateur et masquez les colonnes de montants.
  • Total qui ne correspond pas à la balance : avant de diffuser le rapport, rapprochez le chiffre d’affaires et les achats consommés de l’exercice des totaux de la balance générale. Un écart signale un filtre de comptes incomplet, un signe inversé ou une relation manquante avec la table de dates.
  • Formules non testées : validez chaque mesure sur un exercice connu (premier mois, dernier mois, total annuel) avant la mise en production.

Pour revoir les bases du langage avant d’écrire ces mesures, consultez aussi notre page formation DAX pour Power BI, et pour l’architecture complète du reporting, le guide construire son reporting financier avec Power BI.

Sources

Questions fréquentes

Quelles mesures DAX mettre en premier dans un reporting financier ?
Commencez par le chiffre d'affaires et les achats consommés, écrits comme mesures explicites sur vos écritures comptables : la marge brute, le cumul annuel, la comparaison N-1 et la variation en pourcentage se construisent ensuite à partir de ces deux mesures de base, sans réécrire de filtre.
Pourquoi mon cumul annuel DAX ne correspond pas à ma balance ?
Les causes les plus fréquentes sont une table de dates non marquée ou non reliée aux écritures, un exercice décalé alors que DATESYTD s'arrête par défaut au 31 décembre, ou un signe inversé entre débit et crédit. Rapprochez le cumul à fin d'exercice du total des comptes 70 de la balance pour le contrôler.
Faut-il utiliser DIVIDE ou l'opérateur / pour un taux de marge ou une variation ?
Utilisez DIVIDE : elle renvoie une valeur vide (ou la valeur de remplacement choisie) quand le dénominateur vaut zéro ou est vide, là où l'opérateur / produit une erreur ou un infini. C'est le cas typique d'une variation N-1 sur un mois sans chiffre d'affaires l'année précédente.

À lire aussi

Passez à la pratique : Formation Power BI éligible CPF : 3 jours pour les professionnels du chiffre

Formation Power BI de 3 jours éligible CPF (certification ENI RS7103) pour experts-comptables, DAF et contrôleurs de gestion. Reste à charge 300 €, Qualiopi.

Voir la formation