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

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

Power BI: Présenter un état des 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 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. Je crois donc que ça pourrait en intéresser plus d’un.

 

Données de départ

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 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.

 

Deuxième étape: Créer une mesure SWITCH

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

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

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

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.

 

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 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 :

Edith Lemay
Écrit il y a 2 semaines
Explications claires et bien structurées.

Super intéressant! Les exercices pratiques aide beaucoup à assimiler la matière.

Nicolas Grandclaude
Écrit il y a 2 mois
Je recommande vivement cette formation.

Une formation indispensable pour la mise en place d'un modèle de données automatique et performant.

David Bansard
Écrit il y a 2 mois
De nombreuses portes se sont ouvertes

Etant, moi-même, dans le métier de la formation, j'avais besoin d'un apprentissage beaucoup plus pertinent et professionnel que se débrouiller tout seul chez soi. De nombreuses portes se sont ouvertes sur la manière de comprendre l'outil Power BI et donc de correctement l'utiliser.

Remi Martinato
Écrit il y a 3 mois
Superbe formation même si le langage Dax est très complexe à comprendre.

Cette formation clôture mon parcours « Excel tableaux de bord » qui a été pour moi extrêmement enrichissant. Cela m a permis de découvrir des fonctions d Excel, de prendre plaisir à les utiliser et de développer ma créativité afin de produire des tableaux de bord encore plus percutants. La formatrice maîtrise sur le bout des ongles les différents outils.

CFO-Masque_Formations-en-ligne_FB Le CFO masqué offre un vaste choix de formations en informatique décisionnelle avec Excel et Power BI, via un portail en ligne et à distance en temps réel, selon un calendrier. Si vous désirez organiser des formations privées, faites nous simplement parvenir un courriel à info@lecfomasque.com . Des certificats convenant aux normes de formation continue des divers ordres professionnels du Québec sont offerts pour l'ensemble des formations.  

Découvrez quelles formations vous conviennent

 

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 *

Scroll to Top