Depuis quelques temps, sur le forum, nous recevons de nombreuses questions concernant la présentation de données dans Power BI. Les questions posées, qui semblent à la base anodines, sont dans les faits très complexes. Pour les résoudre, il faut une maîtrise exceptionnelle du langage DAX et plus précisément, une compréhension approfondie des contextes d’évaluation. Au départ, je répondais aux questions en fournissant le détail des calculs de la mesure ou des mesures nécessaires à la résolution de la problématique en DAX. Mais avec le temps, je constate que les mêmes personnes posent à nouveau des questions où la problématique, bien que différente, repose sur les mêmes concepts. Force est de conclure que de fournir des calculs de mesures n’est pas la solution optimale pour aider ces lecteurs à cheminer dans leur apprentissage. C’est pourquoi aujourd’hui, je vous propose un article, qui répondra à plusieurs questions posées sur le forum récemment, en empruntant une voie de contournement qui est à mon avis, plus accessible. Plus précisément, voici comment calculer et présenter des valeurs cumulatives dans Power BI.
Nature des questions posées sur le forum
Plusieurs questions posées récemment sur le forum concernent la présentation de valeurs cumulatives dans des visualisations et la présentation d’écarts de valeurs. Certaines concernent des calendriers réguliers et d’autres des calendriers fiscaux. Les prochaines suggestions vont donc dans ce sens.
Présenter des valeurs cumulatives dans Power BI sur une période spécifique
Une des problématiques rencontrées par les usagers qui veulent présenter des valeurs cumulées dans un graphique est liée aux filtres de leurs rapports. Par exemple, un usager souhaite que le graphique ci-dessous montre les données cumulatives (YTD) de janvier à avril, en cliquant sur le mois d’avril. De base, s’il ne modifie pas l’interaction entre le segment de mois et la tuile, cette dernière ne présentera que les données YTD du mois d’avril (voir la première visualisation sur l’image ci-dessous). À l’inverse, s’il demande de ne pas filtrer la tuile, cette dernière montrera les ventes cumulées de janvier à décembre (voir la deuxième visualisation sur l’image ci-dessous), ce qui n’est pas non plus le but recherché..
Si vous travaillez avec des valeurs fiscales, le principe demeure le même.
Il existe bel et bien des façons de présenter exactement ce que l’usager souhaite voir ici. L’une de ces techniques repose sur l’écriture d’une mesure en DAX, dont j’ai exposé les rouages dans l’article Power BI: Sparkline dynamique affichant les valeurs des x derniers mois. Toutefois, ces concepts sont assez ardus à comprendre et demandent d’altérer (à mon sens), l’intégrité du modèle de données. En effet, dans ce scénario, on doit rendre accessibles les segments de dates en provenance de la table de faits pour les utiliser sur l’axe des x. On se retrouve donc avec des champs de dates accessibles liés à la table de faits et des champs de dates accessibles liés à la table de dates. Si le modèle est ensuite rendu disponible à d’autres usagers, ceux-ci pourraient aisément utiliser les mauvais segments dans d’autres visualisations. De plus, quand il s’agit de présenter une valeur cumulée, dans ce scénario, le contexte de filtres du rapport (notamment les mois sur l’axe des x) rendront la tâche encore plus ardue.
Emprunter une voie de contournement pour présenter des valeurs cumulatives dans Power BI
Une façon simple de contourner cette difficulté serait d’utiliser le segment de dates qui permet de sélectionner une date de début et une date de fin. Notons que le même type de segment existe aussi dans Excel si vous utilisez Power Pivot. Il s’agit du segment temporel.
Dans l’exemple ci-dessous, j’ai créé une mesure qui se nomme Ventes$Cumulatives. Cette dernière est utilisée dans la 3ième visualisation des deux pages de rapports ci-dessous.
Ce faisant, si l’usager filtre les dates à partir de janvier (date du premier mois calendrier), la première visualisation montrera en janvier, les ventes de janvier, en février, les ventes de janvier et février et ainsi de suite. Toutefois, si l’usager regarde une tuile avec les valeurs fiscales, en janvier, il verra la somme cumulée de mai à janvier (voir la deuxième visualisation ci-dessous). À noter que la troisième visualisation utilise la mesure Ventes$Cumulatives définie ci-dessus et dans ce cas-ci, montrera toujours les ventes cumulatives, à partir du premier mois sélectionné dans le segment.
Parallèlement, si l’usager choisit une date de début qui correspond au début d’année fiscale, dans ce cas-ci, le mois de mai, les ventes YTD de la première visualisation, créée avec la mesure YTD régulière montrera le montant cumulatif de janvier à mai pour le mois de mai. La deuxième visualisation, qui utilise la mesure de ventes YTD fiscales, montrera le total de mai seulement. Ici aussi, utiliser la mesure Ventes$Cumulatives règlerait la situation.
Donc, si vous utilisez ce type de segment, assurez-vous d’avoir une mesure qui présente exactement ce que vous recherchez. La mesure Ventes$Cumulatives présentée ci-dessus est à notre avis la plus appropriée. De plus, notez que l’usager peut décider de sa date de début et de sa date de fin. Il a aussi accès à un calendrier déroulant. C’est intéressant mais personnellement, je préfèrerais simplement que l’usager choisisse un mois de départ et un mois de fin.
Deuxième voie de contournement pour présenter des valeurs cumulatives dans Power BI
Bien qu’il serait possible d’insérer deux segments de mois et d’en nommer un date de début et l’autre date de fin, personnellement, j’aime beaucoup le visuel personnalisé Timeline sur la place de marché de Microsoft. Il est très flexible. Par exemple, ci-dessous, je peux décider de montrer ce segment en années, en trimestres, en mois, en semaines ou en jours… Je peux aussi le jumeler avec un segment d’années régulier, si désiré. J’obtiens ici les ventes cumulatives entre janvier et mai 2018.
Je peux aussi personnaliser ce segment afin de tenir compte d’une année fiscale qui se terminerait par exemple, au 30 avril. Ci-dessous, vous voyez sur le segment que Q1 commence en mai. Ce faisant, je n’ai plus qu’à ajouter mes ventes YTD fiscales.
À noter que dans toutes les visualisations ci-dessus, quand je réfère la mesure YTD fiscal, cette dernière a été calculée avec la fonction DATESYTD imbriquée dans une fonction CALCULATE.
Calculer des écarts vs un mois fixe
Dans un même ordre d’idée, un autre usager a demandé sur le forum, comment comparer ses ventes mensuelles à ses ventes de septembre. Et bien, encore une fois, on pourrait utiliser une des visualisations présentées ci-dessus pour montrer “l’évolution” des ventes de septembre au mois x.
Si ce que l’on souhaite, c’est plutôt présenter chaque écart mensuel (valeur du mois en cours – valeur du mois de septembre) et bien dans ce cas, il faudrait simplement créer une mesure comme la suivante pour calculer les ventes de septembre:
Il faudrait ensuite créer une mesure qui fait l’écart des ventes avec les ventes de septembre. Ça nous permettrait notamment de remplir le tableau ci-dessous.
Maintenant, si on veut calculer cet écart avec le mois de septembre de chacune des années (et non seulement vs l’année 2013), il s’agirait alors d’inclure une fonction IF qui mentionnerait, dans ce cas-ci que si le numéro de mois est supérieur ou égal à 9, on veut utiliser l’année du contexte de filtres, sinon, on veut utiliser l’année du contexte de filtres moins 1.
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Envie d’en savoir plus sur le DAX et les contextes d’évaluation?
Nul doute, pour créer des rapports performants et pertinents, les usagers doivent maîtriser le DAX et pour maîtriser le DAX, il faut maîtriser les contextes d’évaluation. Pourquoi ne pas suivre notre formation Introduction au langage DAX (Power BI et Power Pivot)? On y expliquera tout ces concepts. La formation Power BI (niveau 3) traite également du langage DAX.
Merci pour votre analyse sur les sommes cumulées. Juste une précision : Si on utilise votre formule de somme cumulée dans le cadre d’un suivi du solde d’emprunts restant dû, les versements initiaux étant positifs et les remboursements négatifs, la somme cumulée doit tenir compte des dates antérieures à la première sélectionnées dans le segment. La partie de la formule « Filter(Allselected (…) » sera juste à remplacer par « Filter(All(…) ».
Bonjour, la fonction Allselected prendra en considération les dates sélectionnées dans le segment alors que la fonction All viendra enlever complètement les filtres sur la table de dates.
Bonjour,
Comment faire des calculs de valeurs cumulées par heure, quart d’heure avec une table de fait décrivant les évènements par minute ?
Bonjour M. Hazo,
Je vous invite à déposer votre question sur nos forums, un usager de la communauté pourra vous répondre et ainsi consolider ses apprentissages avec Power BI 🙂