Power BI : Sparkline dynamique affichant les valeurs des x derniers mois

Publié le 30 septembre 2018
par Sophie Marchand M.Sc.
x derniers mois sparkline

Il y a quelques temps, j’ai rédigé l’article Fan de Stephen Few? Reproduisez aisément sa plus célèbre visualisation où je vous invitais à télécharger un fichier Excel vous permettant de reproduire le tableau de bord ci-dessous. En ce moment, je suis en train de créer l’équivalent dans Power BI, à partir d’un modèle de données, plutôt complexe. Tout allait pour le mieux jusqu’à ce que j’en arrive à la portion qui permet d’afficher les 12 derniers mois sur un graphique sparkline. Dans mon rapport Power BI, il faut préciser que l’usager peut choisir de regarder le rapport selon l’année et le mois qu’il désire. La tendance des 12 derniers mois doit donc être dynamique. Après quelques essais et erreurs et quelques recherches, j’ai finalement découvert comment montrer l’évolution des x derniers mois dans Power BI. C’est ce que je vous présente dans cet article. J’espère que cette démarche vous sera utile!

 

Stephen Few

 

Afficher l’évolution des x derniers mois dans Power BI

L’objectif est donc de laisser l’usager choisir un mois et une année et afficher dans le rapport, la tendance des 12 derniers mois dans un graphique sparkline (et j’ai aussi ajouté un graphique en colonnes pour vous aider à comparer les valeurs obtenues).

évolution des x derniers mois dans Power BI

Bien sûr, il est possible d’écrire aisément une formule qui permet d’obtenir la somme des ventes cumulées des 12 derniers mois, par le biais de la fonction de Time Intelligence DATESINPERIOD ci-dessous. Toutefois, ceci ne permet pas d’obtenir le résultat recherché. Si vous placez cette mesure dans une tuile de carte, vous verrez le montant cumulé des 12 derniers mois. J’ai d’ailleurs inséré une telle carte dans mon rapport, ci-dessus. Mais si vous placez cette mesure dans un graphique en colonnes, vous n’obtiendrez qu’une seule colonne. C’est normal. Les filtres de mois et d’année influencent la tuile. Et si vous modifiez les interactions pour ne pas que les mois et les années filtrent la tuile et bien, vous verrez alors toutes les données de tous les mois, en tout temps.

 

évolution des x derniers mois dans Power BI

 

Dans le rapport ci-dessus, j’ai inséré cette mesure dans une table qui n’est pas influencée par les segments de mois et d’année. On peut donc voir en tout temps les ventes nettes mensuelles. J’ai inséré cette table pour fins de validation de ma démarche.

 

Pour obtenir le résultat recherché, j’ai donc plutôt utilisé la mesure suivante:

évolution des x derniers mois dans Power BI

 

Description des variables

  • MaxDateAct : Calcule la date max de ma table de faits, sans égard aux filtres de dates du rapport
  • DernierJourSelect : Calcule le dernier jour du mois sélectionné dans les filtres du rapport
  • DernierJourSelect12MTH: Calculer le dernier jour du mois, 12 mois précédent le mois sélectionné dans les filtres du rapport

À noter que j’ai utilisé -12 dans ma fonction EDATE. Toutefois, il aurait été possible de définir un paramètre flexible et laisser l’usager choisir la période désirée.

 

Description de la formule pour montrer l’évolution des x derniers mois dans Power BI

  • J’utilise une fonction IF où le test logique vérifie que:
    • La date max de ma table de faits est à la fois
      • Plus petite ou égale à la date sélectionnée
      • Plus grande que le dernier jours du mois, 12 mois précédent le mois sélectionné
      • Elle vérifie donc qu’elle se trouve dans l’intervalle demandé par l’usager
  • Si la condition est rencontrée, on retourne la mesure, pour toutes les dates citées en condition (et on ignore les filtres de dates sur la table de faits)
  • Sinon, on retourne 0

 

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

 

Les conditions sont là pour définir le bon intervalle temporel et empêcher d’obtenir des erreurs pour des valeurs non existantes. Dans mon exemple, ci-dessous, mes données de ma table de faits commencent au 1er janvier 2017 et se terminent au 30 juin 2018. Ce faisant, quand l’usager sélectionne JUIN 2018, il voit 12 données dans le graphique sparkline et le graphique en colonnes. Toutefois, lorsqu’il sélectionne JUIN 2017, il voit seulement 6 données.

 

Afficher 6 derniers mois

 

Attention! pour que le tout fonctionne, vous devez absolument utiliser le champ temporel (ici année-mois) de la table de faits dans votre visualisation, puisque c’est sur cette table qu’on demande d’ignorer les filtres de dates.

évolution des x derniers mois dans Power BI

 


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

Afin d’approfondir vos connaissances en visualisations de données, vous pouvez vous inscrire à l’atelier – Visualisations de données dans Power BI si vous avez déjà de bonnes bases en Power BI. Si ce n’est pas le cas, il est recommandé de débuter avec la formation Power BI (Niveau 1).

 

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Le CFO masqué - Commentaires d'apprenants ayant suivi la formation : Power BI - Niveau 1

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

9 réflexions sur “Power BI : Sparkline dynamique affichant les valeurs des x derniers mois”

  1. Bonjour,

    Merci beaucoup pour vos explications et la qualité de vos articles.

    J’essaye de reproduire vos explications dans mes propres rapports et cela fonctionne bien pour les données mensuelles mais je n’arrive pas à obtenir le cumul depuis le début de l’année.
    J’ai essayé avec une fonction de ce type TOTALYTD( [VentesTotalAprèsRabais] ; DimDates[Date] ; all(DimDates) )
    Le résultat obtenu est décevant car les données affichées ne sont pas cumulées depuis le début de l’année et correspondent à la données du mois.

    Pourriez vous, s’il vous plait, m’éclairer sur mon erreur ?

    Merci

    1. Bonjour,

      Je vous invite à soumettre votre fichier sur notre forum ou un exemple réduit de celui-ci afin de pouvoir mieux comprendre ce que vous tentez de faire et ce qui pose problème.

      Merci.

      Sophie

  2. Bonjour,
    Merci pour votre description, mais je n’arrive pas à faire lien entre le filtre choisi et le calcul. J’ai crée ma table de date DimDate et je l’ai liée à ma table des faits. J’ai crée l’histogramme avec la mesure en valeurs et la date (de la table des faits) en axe.
    J’ai crée les segments de filtres avec la Date de DimDate, mais quand je clique sur un jour en janvier 2020 pour voir toutes les valeurs entre Janvier 2019 et Janvier 2020 sur l’histogramme, il n’apparaît uniquement Janvier 2020.
    Auriez-vous une idée du problème ? Ou pourriez vous m’envoyer votre fichier d’origine ?
    Merci

    1. Bonjour,

      Vous pouvez poser votre question sur le forum et y insérer votre fichier. Nous pourrons examiner quelle est votre erreur.

      Au plaisir,

      Sophie

  3. Bonjour,
    Je souhaite créer un graphique montrant l’évolution du nombre de personnes dans un service. Il y a des entrées et des sorties. Comment pourrais-je procéder ?
    Merci

  4. Bonjour,
    je souhaite effectuer un graphique montrant l’évolution de la masse salarial en prenant en compte les entrées et sorties par date. J’ai dans dans mes données les dates d’entrées et de de sorties, nom/prénom, service.
    Comment procederiez-vous ?
    merci

    1. Bonjour,

      Vous pouvez simplement créer une mesure qui fait la somme des entrées et des sorties, disons la mesure MASSESALARIALE et ensuite, vous pouvez simplement créer une mesure MASSESALARIALECUM = CALCULATE([MASSESALARIALE],DATESYTD(DimDates[Date])).

      Sophie

  5. Bonjour, j’ai une table calendrier dans mon modèle et et je eux afficher des quantités seon les mois mais il se troue que les valeur de certains mois n’affichent mais la quantité compte dans le total.
    Je sais pas trop cela est dû à quoi

    1. Bonjour,

      Il serait plus facile de vous répondre via le forum, si vous uploadez votre fichier .pbix.

      Forum: https://www.lecfomasque.com/forum/.

      Mais dans tous les cas, un visuel ne fait jamais la somme des lignes qu’il présente. La ligne de total retourne plutôt le résultat d’une mesure qui n’est pas filtrée pour le contexte de lignes du visuel en question.

      Maintenant, il faudrait comprendre pourquoi certaines valeurs ne s’affichent pas. Est-ce que vous les avez filtrées ou est-ce pour une autre raison?

      Bref, si vous nous partagez votre fichier sur le forum, il sera plus facile de comprendre et de vous aider.

      Merci.

      Sophie

Laisser un commentaire

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

Retour en haut