Filtrer une période, par rapport à 2 dates d’une table

  • Filtrer une période, par rapport à 2 dates d’une table

    Posté par Magalie sur 28 mai 2024 à 17h50

    Bonjour,

    J’aimerais savoir si quelqu’un peut m’aider.

    J’ai une table avec des contrats clients, et une date de debut et une date de fin.

    un client peut avoir plusieurs contrats.

    J’aimerais pouvoir mettre un filtre de période dans mon rapport, qui permettrai d’afficher uniquement les contrats clients actifs dans cette période (qui pourrait etre sur 1 journée par exemple)

    Je vous remercie

    Magalie a répondu Il y a 3 mois, 2 semaines 3 Membres · 5 Réponses
  • 5 Réponses
  • micka

    Membre
    28 mai 2024 à 18h00

    Bonjour Magalie,

    Dispose-tu d’un calendrier distinct de ta table?

    Sinon, je te conseille d’abord d’en créer un. On trouve la méthode facilement sur le net,sinon je t’en joindrai une demain matin.

    Ensuite, il est possible de créer un segment sur une période.

    Je n’ai pas accès à PowerBI maintenant, mais je te fais un tuto rapide dès demain si personne n’a solutionné ton problème d’ici là.

    Bonne soirée.

    Micka

  • Magalie

    Membre
    28 mai 2024 à 18h01

    Merci je veux bien oui, je vais commencer par créer une table date spécifique alors, mais je veux bien plus de détail sur la suite 🙂

  • Jeremy

    Membre
    28 mai 2024 à 19h00

    Bonjour Magalie,

    Tout comme l’a précisé Micka, il faut en effet une table date. Il existe plusieurs façons de faire ensuite.

    En voici une :

    Je n’ai pas créé de relation avec la table Date mais j’ai juste créé une mesure qui va vérifier si le contrat est bien dans la période. Voici la mesure :

    contrats actifs =
    CALCULATE(
    COUNTROWS(Contrats),
    FILTER(
    Contrats,
    Contrats[debut] >= MIN(Temps[Date])
    && Contrats[fin] <= MAX(Temps[Date])
    )
    )

    <div>
    <div> </div>
    <div>Mon modèle :</div>
    <div></div>
    </div>

    J’ai créé un Power BI pour le cas. Voici la copie d’écran des visuels :

    Pour filtrer le tableau de droite, j’ai ajouté le filtre suivant :

    Ainsi, dès que je modifie le segment, il se met automatiquement à jour.

  • micka

    Membre
    29 mai 2024 à 8h50

    Bonjour Magalie,

    Comme promis, voici comment ajouter un calendrier à ton powerBI (nota: ne tiens pas compte des <div> qui apparaissent, je sais pas pourquoi le forum ajoute ça quand je publie):

    Il faut créer une nouvelle table et renseigner la formule suivante: Calendrier DAX = ADDCOLUMNS(CALENDAR(MIN(‘Dates DAX'[Dates referentiel]),MAX(‘Dates DAX'[Dates referentiel])),”Année”, YEAR([Date]),”Année-mois” , FORMAT([Date], “MM-YYYY”),”Num Semaine” , WEEKNUM([Date],21),”Num Mois”, MONTH([Date]),”Mois”, FORMAT([Date],”MMM”),”Trimestre” , QUARTER([Date]))

    <div>
    <div>j’aime bien celui-ci parce qu’il permet de faire des graphiques ou des filtres sur différentes périodes (semaines, mois/année, trimestre…)</div>
    <div>Entre les parenthèses MIN, tu dois remplacer Dates DAX par le nom de ta table et [Dates referentiel] par ta colonne de date de début/création. de même pour MAX sauf que tu prends la colonne date de fin/clôture. L’objectif ici est de générer une plage de dates qui couvre l’ensemble des dates de ta table de la plus ancienne à la plus lointaine.</div>
    <div>Tu peux aussi utiliser un fichier référentiel excel ou csv avec une colonne dans laquelle tu mets une date ancienne (01/01/2000 par exemple) et tu copies cette date sur les lignes en-dessous pour aller jusqu’à une date lointaine (01/01/2030 par exemple). Dans la formule, ma source pour le MIN MAX est un fichier csv appelé Dates DAX avec une colonne Dates referentiel.</div>
    <div>Cette notion de table référentielle est utile si tu as plusieurs powerBI avec plusieurs référentiels communs (dates, fournisseurs, départements…). Ca permet de croiser plusieurs tables à partir de ces mêmes référentiels.</div>
    <div>ca c’est pour le calendrier.</div>
    <div>Pour pouvoir faire tes filtres, il faut lier correctement les tables :</div>
    <div></div>
    <div>Il faut donc lier la date de ton calendrier à une date de ta table (en général la date de début ou de création, car il y en a toujours une. il ne faut pas choisir une date qui peut avoir des lignes vides). Il faut que ta relation soit de un à plusieurs (voir capture ci-dessus).</div>
    <div> </div>
    <div>Maintenant, tu peux créer un segment à partir de ta date de calendrier DAX pour couvrir la période qui t’intéresse :</div>
    <div></div>
    <div>le segment est paramétré comme suit pour couvrir une période :</div>
    <div></div>
    <div>Comme je ne sais pas exactement ce que tu veux faire, tu peux aussi créer deux segments, un sur ta date de début et un sur ta date de fin pour pouvoir ajuster ces deux filtres indépendamment.</div>
    <div>Autre chose : tu peux limiter l’action de ton segment à certains graphiques en gérant les interactions :</div>
    <div></div>
    <div>Ci-dessus, mon segment date agit sur mon graphique. Si je coche le symbole interdit, le filtre du segment date n’agira plus dessus.</div>
    <div>Enfin, si les filtres que tu veux appliquer ne sont pas susceptibles de changer régulièrement, il vaut mieux faire un filtre sur tes dates à partir de la colonne filtres :</div>
    <div></div>
    <div>Tu peux filtrer uniquement sur un graphique (un visuel), sur toute la page ou tout ton powerBI selon tes besoins.</div>
    <div>J’espère avoir répondu à ton besoin. N’hésite à apporter des précisions sur le filtrage que tu désires si tout ça ne répond pas à tes attentes.</div>
    <div>Bonne journée.</div>
    <div>Micka.</div>
    <div> </div>
    </div>

    • Cette réponse a été modifiée Il y a 3 mois, 2 semaines par  micka. Raison: apparition de à la publication
  • Magalie

    Membre
    30 mai 2024 à 13h15

    Merci, je vais tester les différentes choses et je vous dirai ce qui fonctionne pour mon cas 🙂

    C’est très gentil !

Connectez-vous pour répondre.