Contexte de filtre sur les statuts et date de création

  • Contexte de filtre sur les statuts et date de création

    Posté par RANDRIATAHINA Charles sur 9 février 2024 at 15h12

    Bonjour,

    J’ai une table de fait “Fct_ITOP” comportant la liste des tickets Ouverts, résolus, fermés avec toutes les références nécéssaires. La dite table de fait est liée avec deux tables de Dim : Dim_Date, Dim_Statut.

    Les 3 statuts de tickets à analyser sont : tickets actives, Tickets résolus, Tickets fermés.

    Maintenant, j’ai créée les 3 mesures ( Actives, Résolus, Fermés). Je les ai representés dans les visuels “cards” pour les mettre en avant.

    Une fois affiché et que j’applique des filtres au niveau de date, les mesures prennent en compte uniquement les tickets ayant une date de début correspondant à la période séléctionné. Pourtant, j’aimerais afficher par exemple : les cumulés de Tickets qui sont toujours actives sans prendre en compte sa date de début. Car un ticket NON RESOLUS ou NON FERMES sur une période précédant la période séléctionnée devrait être compté comme étant toujours actifs.

    Voici ma formule, par exemple pour les tickets actifs:

    <pre class=”language-css”>#Tickets en cours = CALCULATE ( [Total des tickets], Fct_ITOP[Statut] ="Affectée" || Fct_ITOP[Statut] = "En attente" || Fct_ITOP[Statut] = "En Attente d'approbation
    " || Fct_ITOP[Statut] ="En attente jusqu'à une date" || Fct_ITOP[Statut] ="Assignée" || Fct_ITOP[Statut] ="Réaffectée")

    Quelqu’un pourrait me donner une idée par rapport au contexte de filtre que je devrais appliquer au DAX pour obtenir le bon résultat ?
    Merci.

    Jonathan a répondu 1 year, 2 months ago 3 Membres · 7 Réponses
  • 7 Réponses
  • David

    Member
    9 février 2024 at 15h33

    Bonjour Charles,

    Je pense à quelque chose comme ça

    <pre class=”language-markup”>VAR __selectedDate = SELECTEDVALUE(Dim_Date[Date])
    VAR __filtre_Fct_ITOP = TREATAS (
    {
    "Affectée",
    "En attente",
    "En Attente d'approbation",
    "En attente jusqu'à une date",
    "Assignée",
    "Réaffectée"
    }, Fct_ITOP[Statut]
    )
    RETURN
    CALCULATE (
    [Total des tickets],
    __filtre_Fct_ITOP,
    Dim_Date[Date] < __selectedDate
    )

  • RANDRIATAHINA Charles

    Member
    12 février 2024 at 10h40

    Bonjour David,

    Merci beaucoup pour ta réponse.
    J’ai testé la formule et j’ai obtenu le résultat suivant :

    Elle m’a malheureusement pas fournie le bon résultat

  • David

    Member
    12 février 2024 at 10h55

    Bonjour Charles

    Aurais-tu la possibilité de mettre à disposition un fichier avec quelques données exemples ?

  • RANDRIATAHINA Charles

    Member
    12 février 2024 at 12h08

    Bonjour David,

    Désolé je n’arrive pas à joindre un fichier pbix ici.

    En fait, j’ai essayé tout simplement aussi d’exclure tous les filtres sur mon calcul à l’exception du filtre sur l’équipe affectée comme suit:

    Test_Actifs = CALCULATE(COUNT(Fct_ITOP[Référence Demande]),ALLEXCEPT(Dim_Equipe,Dim_Equipe[Equipe affectée]))

    On me donne un résultat proche (13 au lieu de 14) : 13 est le nombre de tickets actifs en 2024 et 1 en 2023. Donc je n’arrive toujours pas à exclure le filtre sur l’année avec ma formule car je souhaite que tous les tickets actifs soient calculés de façon globale sans tenir compte de l’année mais garder uniquement le filtre sur l’équipe

    Merci

  • David

    Member
    12 février 2024 at 13h55

    Regarde dans la requête suivante ce qui pourrait t’intéresser et ce que tu pourrais adapter à tes besoins et à ton modèle

  • RANDRIATAHINA Charles

    Member
    13 février 2024 at 11h59

    Bonjour David,

    Merci beaucoup. J’ai pu m’inspirer de ta formule.

  • Jonathan

    Member
    25 février 2024 at 19h20

    Bonjour,

    J’ai compris que vous aviez trouvé une solution.

    Juste une remarque concernant l’écriture de la formule du départ :

    #Tickets en cours = CALCULATE ( [Total des tickets], Fct_ITOP[Statut] =”Affectée” || Fct_ITOP[Statut] = “En attente” || Fct_ITOP[Statut] = “En Attente d’approbation
    ” || Fct_ITOP[Statut] =”En attente jusqu’à une date” || Fct_ITOP[Statut] =”Assignée” || Fct_ITOP[Statut] =”Réaffectée”)

    On peut simplifier largement et rendre plus lisible en utilisant l’opérateur IN :

    CALCULATE (
    [Total des tickets],
    Fct_ITOP[Statut] — On peut rajouter KEEPFILTERS ici si les filtres doivent être conservés KEEPFILTERS(Fct_ITOP[Statut]…)
    IN {
    “Affectée”,
    “En attente”,
    “En Attente d’approbation”,
    “En attente jusqu’à une date”,
    “Assignée”,
    “Réaffectée”
    }
    )
    👍

    • This reply was modified 1 year, 2 months ago by  Jonathan.

Connectez-vous pour répondre.