15 avril 2019

|

par : jeremy

|

Catégories: En mode expert, Power BI

Simulation et scénario avec Power BI

Power BI est un outil décisionnel de visualisation interactive des données. Une fonctionnalité très puissante est la création de simulations. A travers un exemple simple, nous allons voir comment faire.

Présentation du cas et des données

Nous vous proposons de créer des simulations dans Power BI. Le cas utilisé est volontairement simple pour bien comprendre les tenants et aboutissants de simulations en utilisant des paramètres de scénarios.

Nous avons principalement deux tables :

  • Les transactions comprenant une date, le produit, le pays, la quantité, le prix unitaire et le coût. Nous n’avons que deux produits (P1 et P2), deux pays (France et Espagne) et deux dates (01/01/2018 et 01/01/2019).
  • Les pays avec notamment le taux de remise par pays et le lien vers une image.

Le troisième tableau est un tableau de travail pour la création d’un graphique en cascade utilisant plusieurs mesures. Cela pourra faire l’objet d’un article à part entière.

L’objectif de ce modèle est de pouvoir simuler une variation du taux de remise pour chaque pays et de voir l’impact sur les ventes nettes ainsi que sur la marge.

données simulation

Création et présentation du modèle

Notre modèle comprend donc les trois requêtes présentées ci-dessus. Il comprend également une requête “DimDate” (classique pour un modèle Power BI). Pour simplifier, vous pourrez voir sur certaines images une table nommée “_Indicateurs” qui reprend l’ensemble des mesures créées.

Tables importées

Modélisation et relations

Les relations sont assez simples puisque la table de fait est donc la table Transaction et nous avons deux tables de dimensions : DimDate (la clé étant la date) et Remises (la clé étant le pays). Les deux autres tables visibles, à savoir Waterfall et _Indicateurs n’ont pas besoin d’être mises en relation. Elles servent uniquement pour les calculs.

Modélisation

Mesures

La majorité des mesures est standard par rapport à ce qu’on peut trouver sur Power BI. Toutefois, nous allons faire un petit zoom sur deux mesures en particuliers :

  • Waterfall value car elle est utilisée pour créer le graphique en cascade. Vous trouverez ci-dessous la formule utilisée. le sujet étant ici la simulation, nous nous attarderons seulement sur le principe de fonctionnement de cette mesure.
  • Remise valeur.

Nous revenons sur cette mesure. Pour la créer rapidement, nous avons d’abord ajouté une colonne dans la table transaction :

remise = RELATED(remises[Remise])
Puis nous avons créé la mesure:
Remise valeur = SUMX(transactions;transactions[Quantité] * transactions[Prix unitaire] * transactions[remise])
Nous vous la montrons dès à présent car pour les besoins de la simulation, nous verrons qu’il faudra la faire évoluer.
Mesures

Voici la mesure Waterfall value si vous souhaitez l’utiliser :

Mesure waterfall

Visualisation

Après avoir créé les relations puis l’ensemble des mesures, voici à quoi peut ressembler le tableau de bord avant mise en oeuvre de la partie simulation :

Visualisation

Que souhaite t-on simuler ?

L’objectif est de simuler une variation de la remise pour chaque pays. Ensuite nous devrons pouvoir visualiser directement l’impact sur le graphique en cascade. Les filtres sur les pays ou les produits devront toujours être fonctionnels.

Création de la simulation

Avant de créer la simulation, nous devons nous préparer au mieux. Pour cela, il est important de savoir si nos paramètres de scénarios seront fonctionnels. Nous allons donc préparer ce qu’il faut pour comparer et donc vérifier nos résultats.

Préambule : préparer la comparaison avec l’existant (ou le réel)

La première étape est de créer deux mesures. L’idée est d’avoir deux étiquettes visuelles contenant le taux de remise réel pour la France et celui de l’Espagne. Ils ne devront pas être modifiés afin que nous les ayons toujours visuellement. Cela nous permettra de comparer.

Voici les deux mesures à créer :

Remise FR = CALCULATE(VALUES(remises[Remise]);remises[Pays]="France")
Remise ES = CALCULATE(VALUES(remises[Remise]);remises[Pays]="Espagne")

Ensuite nous créons les étiquettes avec pour chacune la mesure créée.

Remises avant simulation

Nouveaux paramètres

Nous pouvons à présent nous lancer dans la création des simulation. Pour cela, il faut tout d’abord aller dans le ruban, onglet “Modélisation” et cliquer sur le bouton paramètres de scénarios comme présenté ci-dessous.

bouton nouveaux paramètres

Remplissons ensuite le formulaire :

  • Nom : Remise FR (puis Remise ES pour le paramètre suivant)
  • Type de données : Entier (nous diviserons ensuite la valeur par 100 pour avoir un pourcentage)
  • Minimum : 0
  • Maximum : 100 (pourcentage de remise allant de 0% à 100%)
  • Incrément : 5. L’image présente “1” mais il est préférable de mettre “5”. Si vous souhaitez modifier manuellement pour avoir une valeur non divisible par 5, vous pourrez saisir manuellement dans une zone texte.
  • Par défaut : 0. J’ai mis “0” mais vous pouvez choisir les valeurs que vous souhaitez. Par exemple, mettez “25” pour la France et “40” pour l’Espagne pour utiliser les valeurs réelles.
  • Cochez la case “Ajouter un segment à cette page”. C’est très important car cela va nous permettre de modifier ensuite graphiquement la valeur.

Refaites la même chose ensuite avec l’Espagne.

Création paramètre scénario

Lorsque vous aurez validé, vous allez voir deux changements :

  1. Un segment a été ajouté sur l’écran de visualisation
  2. Dans les champs, vous pouvez voir deux nouvelles tables contenant un champs et une mesure.
Tables scénarios

Nouvelle mesures : Remise valeur simulée

Nous avons créé de nouveaux paramètres mais si vous modifiez les segments, il ne se passe rien. Pour cela, il faudrait modifier la mesure “Remise valeur”. Mais avant, nous allons vérifier que les calculs sont justes en créant une mesure intermédiaire :

Simu Remise val = SUMX(transactions;transactions[Quantité] * transactions[Prix unitaire] * IF(transactions[Pays]="France";'Remise FR'[Valeur Remise FR];'Remise ES'[Valeur Remise ES]) / 100)
Cette mesure calcule la remise en valeur en fonction du pays de chaque ligne. Si la transaction est en France, nous récupérons le paramètre scénario “Remise FR'[Valeur Remise FR]”. Ensuite nous divisons par 100 afin d’avoir un pourcentage.

Comparer pour bien contrôler

Afin de vérifier que nos mesures sont justes, nous allons tout d’abord modifier nos segments de simulations. Pour cela, si ce n’est déjà fait, les aligner avec les données réelles :

  • France : 25%
  • Espagne : 40%

Ensuite, dans le tableau de valeur, ajoutez la mesure “Simu Remise valeur” à côté de la mesure “Remise valeur”. Jouez avec les différents filtres (sauf ceux de simulations). Les valeurs doivent être les même pour les deux mesures.

Enfin, modifier les segments de simulations, en les mettant tout d’abord à 0 tout les deux. Vérifiez le résultat sur le graphique : il n’y a plus de remise. Passez ensuite les deux valeurs à 100. Dans le tableau, le CA net est désormais à 0.

Segments simulation
Comparer

Mise à jour de la mesure Remise valeur

Puisque les contrôles ont été effectués et validés, nous allons pouvoir modifier la mesure “Remise valeur” puis supprimer la mesure “Simu remise valeur”.

Remise valeur = SUMX(transactions;transactions[Quantité] * transactions[Prix unitaire] * if(transactions[Pays]="France";'Remise FR'[Valeur Remise FR];'Remise ES'[Valeur Remise ES]) / 100)
Nous pourrions également créer un autre segment permettant de choisir entre “Réel” et “Simulation” et la valeur de cette mesure serait soit basée sur les données réelles (ancienne formule), soit sur les données de simulation (nouvelle formule). Nous ne le faisons pas là car cela n’apporte rien de plus mais n’hésitez pas à le faire si vous en avez besoin.

Mise en forme de la visualisation

Il ne reste plus qu’à mettre en forme en faisant un peu de Dataviz, chacun avec sa part artistique 🎨 pour utiliser le modèle. Ci-dessous, vous trouverez ma version.

visu générale finale

Présentation du résultat

Voici le tableau de bord directement incorporé à cet article. Il est interactif, vous pouvez facilement le manipuler pour voir comment les segments de simulation impactent le graphique en cascade.

Conclusion

Nous avons donc vu comment créer des paramètres de simulation pour voir l’impact sur d’autres mesures. Lors de la création de simulations, le but est souvent de mettre en exergue des scénarios afin de prendre les meilleures décisions. La création d’un scénario s’apparente à du storytelling en s’appuyant sur les paramètres de simulations et la dataviz. Il est ainsi possible de créer des scénarios tout prêts pour des présentations, réunions et ainsi décider de façon collaborative.