Question DAX

  • Question DAX

    Posté par LAURENCE sur 30 septembre 2024 at 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>

    • This discussion was modified 6 months, 4 weeks ago by  LAURENCE.
    ypicot a répondu 6 months ago 2 Membres · 1 Réponse
  • 1 Réponse
  • ypicot

    Member
    24 octobre 2024 at 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.