Il y a des cas, dans votre création de rapport, ou vous aller vouloir être en capacité de compter des choses qui sont réparties selon plusieurs champs de dates. Voyons ensemble comment gérer plusieurs dates avec Power BI.
Dans l’exemple qui va être utilisé ici, nous aurons une table de projets. Chaque ID de projet est décrit avec sa date de début et sa date de fin s’il est terminé.
Nous voulons donc pouvoir présenter le nombre de projets créés et le nombre de projets terminés à travers le temps.
Pour cela, nous allons lier la table projets avec une table de dates. Seulement nous ne pourrons effectuer qu’une seule relation active.
Avec une mesure DAX nous pourrons compter le nombre d’ID de Projets et ainsi afficher le nombre de créations par date.
Nombre de projets = COUNT(Projets[ID])
Maintenant, si nous souhaitons compter le nombre de projets terminés nous avons plusieurs options. Celle que j’utilisais jusqu’il y a peu, à savoir, créer une table de projets dupliquée et filtrée avec une date de fin non null et celle que je vous propose de partager avec vous aujourd’hui, la création d’une relation inactive entre Calendrier[Date] et Projets[Date de fin] pour l’utiliser dans une mesure DAX.
La table dupliquée.
Nous pouvons créer cette table dans l’éditeur de requête en faisant une table référence et en appliquant un filtre.
Ou alors faire cela en DAX dans la vue rapport.
Projets terminés = FILTER(Projets, NOT(ISBLANK(Projets[Date de fin])))
Maintenant, notre modèle a évolué.
Et nous pouvons ajouter une mesure :
Projets terminés = COUNT('Projets terminés'[ID])
Dans le rapport, nous pouvons afficher une table avec les quantités de projets selon leur date et état :
Cette manipulation, simple, est couteuse en termes de maintenance. Il faut créer des tables filtrées et cela complexifie le modèle, surtout si on veut analyser plusieurs types de dates (date de commande, date d’envoi, date de livraison, etc).
Utiliser une relation inactive pour gérer plusieurs dates avec Power BI
Pour simplifier notre modélisation de données, nous allons procéder à la création d’une relation inactive entre la table de calendrier et la table de projets.
Avec la commande DAX :
Nombre de projets terminés (USERELATION) = CALCULATE(COUNT('Projets terminés'[Date de fin]),USERELATIONSHIP(CALENDRIER[Date],Projets[Date de fin]))
Nous allons compter le nombre de lignes avec une date de fin en alignant la table de calendrier sur la table de projets selon la date de fin avec l’utilisation de la commande USERELATIONSHIP.
N’hésiter pas à partager cet article et à utiliser la rubrique commentaires pour interagir !
Retrouver mes autres articles sur Power BI.
Comments:
Salut Jeremy, article intéressant ! si tu es intéressé pour découvrir autour de la data, je te conseille de découvrir TimeTonic (www.timetonic.com) ; la société dans laquelle je suis. C’est une plateforme de gestion de données et de collaboration autour de la data sous environnement développement no-code ; c’est vraiment génial pour développer des outils - solutions web et mobile native. n’hésites pas si tu veux une démo, j’aurai plaisir à te présenter. Tu peux tester pendant 15 jours sur toute la plateforme.. au plaisir !