Question DAX

  • Question DAX

    Posté par LAURENCE sur 30 septembre 2024 à 16h18

    Bonjour,

    J’ai un jeu de données par “cohortes” avec une mesure “Cnt” et je voudrais calculer par cohorte la valeur de cnt pour delta=1 (1000 pour la cahorte a et 500 pour la cohorte b dans l’exemple ci-dessous)

    J’ai créé la mesure

    <div>
    <div>SumCNT_Delta1 =</div>
    <div> CALCULATE(</div>
    <div> SUMX(test,test[Cnt]) </div>
    <div> ,test[Delta]=1 </div>
    <div> ,REMOVEFILTERS(test[date])</div>
    <div> </div>
    <div> )</div>
    <div> </div>
    <div> </div>

    <div>

    Mais quand cnt n’est pas renseigné (par exemple pour delta=6 et cohrt=b; je voudrais qu’elle affiche 1000 et pas 1500. Je ne sais pas comment le faire en dax.

    Merci d’avance pour votre aide

    </div>
    </div>

    • Cette discussion a été modifiée Il y a 1 mois, 3 semaines par  LAURENCE.
    ypicot a répondu Il y a 4 semaines, 1 jour 2 Membres · 1 Réponse
  • 1 Réponse
  • ypicot

    Membre
    24 octobre 2024 à 13h42

    Bonjour

    Si tu n’as pas trop de cohortes, une solution peut être d’utiliser une première mesure simple :

    SumCnt = SUM(Test[cnt])

    Puis une formule qui, pour chaque cohorte, détermine s’il y a ou non un résultat, avant de faire la synthèse.

    SumCNT_Delta1 =
    VAR __CntDelta_1a = CALCULATE( [SumCnt], Test[delta]=1 && Test[cohort]=”a” )
    VAR __CntDelta_1b = CALCULATE( [SumCnt], Test[delta]=1 && Test[cohort]=”b” )
    VAR __CntDelta_Xa = NOT(ISBLANK(CALCULATE( [SumCnt], Test[cohort]=”a” ))) + 0
    VAR __CntDelta_Xb = NOT(ISBLANK(CALCULATE( [SumCnt], Test[cohort]=”b” ))) + 0
    VAR __CntDelta_1 =
    __CntDelta_Xa * __CntDelta_1a +
    __CntDelta_Xb * __CntDelta_1b
    RETURN __CntDelta_1

    En espérant que cela réponde à ta question

Connectez-vous pour répondre.