Power BI : Présenter un état des résultats

Publié le 15 octobre 2019
par Sophie Marchand M.Sc.
Données départ état résultats

Récemment, un lecteur a posé une question dans le forum concernant Power BI. Le titre de sa question était: Sous-total personnalisé. Je souligne le titre de la question puisque ceci met en relief une certaine mécompréhension du langage DAX. La question semble suggérer qu’il puisse y avoir une fonctionnalité à activer pour présenter des sous-totaux alors que la réalité est beaucoup plus complexe. Je rappelle donc ici, encore une fois, à quel point il est essentiel, pour les créateurs de rapports de Power BI, d’apprendre l’art de la modélisation de données et le langage DAX. En effet, dans l’article qui suit, vous constaterez que nous devons franchir de nombreuses étapes avant d’obtenir le résultat recherché. Et à chacune des étapes, on doit se poser certaines questions. De plus, dans cet exemple, nous sommes confrontés à une réalité propre à la présentation d’états financiers. On cherche à présenter un état de résultats dans Power BI. Je crois donc que cet article pourra en intéresser plus d’un.

 

Attention : Pour récupérer un modèle d’état des résultats complet, je vous invite à consulter notre article Power BI : Comment produire un état des résultats ?

 

Données de départ pour construire l’état des résutlats dans Power BI

Notre lecteur a fourni un fichier .pbix et une visualisation de départ (une matrice) avec deux segments (année et mois), tel que présenté ci-dessous.

 

Il faut savoir ici que la matrice est réalisée à partir d’une seule mesure, soit la mesure Données Réel Mois, définie ci-dessous.

 

Et le modèle de données ne comprend qu’une seule table de dimension, soit une table de dates.

 

Dans la table de faits, on retrouve une colonne intitulée Libelle_Rubrique1. C’est cette colonne qui est utilisée dans la matrice, au niveau des lignes.

 

Première étape : Créer les mesures en DAX pour les différents postes

Ci-dessous, vous verrez que j’ai commencé par créer des mesures permettant d’ajuster la mesure Données Réel Mois en fonction de chaque libellé. Par exemple, pour la mesure 01-02 Production, j’ai utilisé la fonction CALCULATE avec un filtre sur la colonne Libelle_Rubrique1, comme suit:

 

 

J’ai répété la même approche pour l’ensemble des libellés.

 

La problématique ici, c’est que si on s’arrêtait là, il faudrait alors remplacer la mesure Données Réel Mois de notre matrice par chacune des mesures individuelles, ce qui produirait le résultat suivant:

Mesures DAX

 

Ou encore, en retirant les libellés sur les lignes de la matrice, on obtiendrait ce qui suit:

Mesures DAX

 

Et il n’y a pas de fonctionnalité qui permettrait, par exemple, de présenter les valeurs de la matrice en colonne, ce qui est le résultat souhaité dans le cas de la présentation d’un état financier.

 

Vous devez analyser de grandes quantités de données et les présenter dans des rapports et tableaux de bord, avec des indicateurs de performance pertinents ? Développez vos compétences avec nos formations en Power BI.

Formations Power BI disponibles en anglais

 

Deuxième étape : Créer une mesure SWITCH en langage DAX

Pour parvenir à nos fins, il faut donc utiliser une fonction SWITCH (pensez à une fonction SI imbriquée dans Excel), telle que présentée ci-dessous. Cette fonction permet de ramener une mesure, en fonction du filtre sélectionné.

 

À présent, nous pouvons, utiliser cette nouvelle mesure dans notre matrice afin d’obtenir le résultat suivant:

Mais ce n’est pas encore ce que l’on souhaite, n’est-ce pas?

 

Troisième étape : Créer les mesures de sous-totaux pour notre état des résultats dans Power BI

En effet, il nous manque nos deux mesures de sous-totaux, soit la mesure Marge brute et la mesure Résultat d’exploitation. Au premier essai, vous pourriez être tenté de produire les deux mesures suivantes:

 

C’est d’ailleurs ce que nous utiliserons pour le moment.

 

Quatrième étape : Créer une table de dimension pour les libellés de notre état des résultats dans Power BI

Autre constat, il vous faudra un libellé de Marge brute et un libellé de Résultat d’exploitation. Mais malheureusement, vous ne pouvez pas modifier la table de faits… Donc, que faire? Et bien, dans ce cas, il nous faudrait une table de dimensions de libellés. J’ai donc utilisé la fonctionnalité Entrer des données pour créer la table DimLibellés:

 

 

Note: Si ces données avaient été les miennes, j’aurais plutôt utilisé Power Query pour créer une liste unique de libellés à partir de la table de faits et j’aurais ajouté cette requête au bout d’une autre requête avec les libellés de Marge brute et de Résultat d’exploitation.

 

Cinquième étape : Ajuster le modèle de données et la mesure SWITCH

Pour intégrer cette nouvelle table de dimension, j’ai ajusté mon modèle de données comme suit:

 

 

Et j’ai ajusté ma mesure SWITCH, en remplaçant d’abord la référence à la colonne de libellés de ma table de faits à la colonne de libellés de ma nouvelle table de dimensions.

 

Et j’ai ensuite ajouté mes deux nouvelles conditions, pour afficher la Marge brute et le Résultat d’exploitation.

 

Sixième étape : Ordonner les libellés de notre état des résultats dans Power BI

Afin de présenter la marge brute et le résultat d’exploitation dans le bon ordre, j’ai aussi ajouté une colonne Ordre (pour trier ensuite la colonne Libellés).

 

 

L’option de tri se trouve dans le menu Modélisation. Il s’agit de trier la colonne Libellés par la colonne Ordre.

 

 

J’ai ensuite testé ma nouvelle colonne dans une matrice et j’ai obtenu le résultat suivant:

À cette étape-ci, j’ai rencontré un problème. Un problème de contexte de filtres. En effet, lorsque je plaçais ma nouvelle mesure dans ma table, je ne voyais ni la mesure Marge brute, ni la mesure Résultat d’exploitation. Pourquoi, d’après vous?

Et bien, c’est encore et toujours une question de contexte de filtres. Ces deux mesures ne s’affichaient pas car elles retournaient un résultat de 0. En effet, quand on demande de calculer la différence entre la mesure 01-02: Production et la mesure 03: Coûts de production et que le filtre (la dimension en ligne de la matrice) est Marge brute, et bien, la mesure 01-02: Production, tout comme la mesure 03: Coûts de production ramèneront 0 comme valeur. Et la somme des deux retournera aussi 0. On doit donc recourir au DAX pour ajuster ces mesures.

 

Septième étape : Ajuster les mesures de sous-totaux pour le contexte

Pour corriger le tir, j’ai ajusté mes deux mesures avec la fonction ALL, comme suit:

Marge brute calcul révisé

Résultat d'exploitation calcul révisé

 

Rappelons que la fonction ALL permet d’ignorer tous les filtres apposés, dans ce cas-ci, au niveau des libellés. Ceci ma finalement permis de présenter les résultats demandés par l’usager.

État des résultats Power BI

 

Les plus attentifs me diront que les calculs de Marge brute et de Résultat d’exploitation balancent mais que le résultat financier est curieux. Et bien, j’ai utilisé les données de l’individu qui a posé la question sur le forum. Je ne peux pas expliquer comment le résultat financier et le résultat exceptionnel sont calculés (valeurs fixes) mais je peux par contre vous dire qu’on pourrait utiliser la même approche pour les recalculer.

 

Quelques commentaires sur la fonction SWITCH au niveau de la performance

Au moment d’écrire cet article, les matrices ne permettent pas de présenter les mesures en colonne. Elles permettent simplement de les placer côte à côte, donc en ligne. C’est pourquoi ici j’ai eu recours à la fonction SWITCH. Mais cette fonction n’est pas très performante, surtout sur une volumétrie de données importante. Il faut donc être vigilant. Si vous avez des problèmes de performance avec cette approche, vous pourriez opter pour d’autres approches, moins conventionnelles. Par exemple, vous pourriez faire un peu de bricolage et montrer vos 8 mesures dans 8 visualisations de tables différentes et vous arranger pour qu’au coût d’oeil, le tout ressemble à une seule et même table. Ce serait beaucoup de travail au niveau artistique mais ce serait quand même sans doute plus performant que la fonction SWITCH.

 


Fichier d’accompagnement VIP à télécharger

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

Formation complémentaire

Pour une introduction au langage DAX (Data Analysis Expression), utilisé par Power Pivot et par Power BI Desktop, suivez la formation Introduction au langage DAX (Power BI et Power Pivot) qui vous permettra de créer des tableaux de bord flexibles et faciles à mettre à jour en plus de créer des visualisations de données évoluées et pertinentes.

 

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Le-CFO-masque_Commentaires-Introduction-langage-DAX
CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

3 réflexions sur “Power BI : Présenter un état des résultats”

  1. Bonjour Sophie,
    Très bon article comme d’habitude.
    Mais qui me fait poser une question : comment gérer les totaux et sous totaux dérivés de ce SWITCH.
    On a souvent au moins un niveau de libellé en plus lorsque l’on veut pouvoir forer et un vrai Total Général.
    Faudrait-il imbriquer un certain nombre de IF de COUNTROWS VALUES=1 et de SUMX avec pour la dernière condition un ALLEXCEPT ?

    J’espère avoir été assez clair

    1. Bonjour,

      Il est possible de faire des choses très complexes pour présenter des états financiers indentés. Je considère personnellement que tous ces efforts n’en valent pas la chandelle. Donc, personnellement, je considère que les sous-totaux devraient être inclus tels que présentés dans cet article. Par exemple, dans cet article, le calcul de marge brute, est un sous-total et il est intégré comme toutes les autres mesures dans la fonction SWITCH.

      Au plaisir,

      Sophie

  2. Bonjour Sophie,

    UN GRAND MERCI pour cet article !
    Je n’arrive pas à faire apparaître sur le deuxième niveau de ma matrice les bons libellés.

    Je souhaite par exemple qu’au niveau 2 de la VALEUR AJOUTÉE, il y ait :
    . Marge commerciale
    . Production de l’exercice
    . et Consommation de l’exercice en provenance des tiers
    et non les 5 lignes comme actuellement.

    Ceci s’applique pour les autres SIG tels que l’Excédent brut d’exploitation…
    Comment puis-je faire cela ? Merci beaucoup pour vos conseils.

    Si besoin voici mes docs : https://bit.ly/32RgbUJ

    Au plaisir
    Alexandre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut