Affichage partiel des résultats de ma mesure DAX

  • Affichage partiel des résultats de ma mesure DAX

    Posté par StevannS sur 6 février 2024 à 16h19

    Bonjour la communauté, je rencontre un souci de formule DAX.

    • Objectif : calculer une alerte de dépassement journalier de consommation par point de consommation
    • J’ai un slicer qui filtre ma table ‘Plan CPT’ sur le champ CPTDésignation
    • Je calcule la mesure suivante (seuil limite de normalité) :

    <pre class=”language-markup”>PAS CentileX SEM =
    VAR _maxDate = [Maximum Date]
    VAR _minDate = [Maximum Date] - [Seuil Centiles jours] // Définition de la borne mini de ma plage de dates
    RETURN
    PERCENTILEX.INC(
    CALCULATETABLE( // Création d'une table avec les dates qui ont un sens
    FILTER(
    VALUES( Dates[Date] ),
    [SUM conso 2 A] <> BLANK()
    ),
    Dates[Date] < _maxDate && Dates[Date] >= _minDate && Dates[Day of Week Number] < 6,
    'Plan CPT'[Type NRJ] = "EDV"
    ),
    [SUM conso 2 A],
    0.9
    )

    • je détermine la mesure suivante qui filtre la mesure précédente par point de consommation :

    <pre class=”language-markup”>

    <pre class=”language-markup”>CORB TEST centiles =
    CALCULATE(
    [PAS CentileX SEM],
    FILTER(
    ALL('Plan CPT'),
    'Plan CPT'[Clé Répar.] = "x"
    )
    )

    • Ensuite, je calcule la mesure suivante qui me calcule la somme globale de la consommation

    <pre class=”language-markup”>

    <pre class=”language-markup”>CORB Water Cons. =
    SUMX(
    FILTER(
    ALL('Plan CPT'),
    'Plan CPT'[Clé Répar.] = "x"
    ),
    [SUM conso 2 A]
    )

    • Lorsque je place le tout dans une table, j’obtiens le résultat suivant, sans influence du slicer

    <pre class=”language-markup”>

    <pre class=”language-markup”>

    Mais le résultat correspond au total consommé, et je veux afficher la consommation uniquement pour [Maximum Date] : c’est là que ça coince…

    <pre class=”language-markup”>

    • Si je calcule la mesure suivante, j’obtiens un total correct mais la valeur de la mesure est filtrée par le slicer… ce qui ne me convient pas…

    <pre class=”language-markup”>

    <pre class=”language-markup”>CORB Water Cons. Max Date =
    VAR _maxDate = [Maximum Date]
    RETURN
    SUMX(
    FILTER(
    ALL(Dates),
    Dates[Date] = _maxDate
    ),
    [CORB Water Cons.]
    )

    <pre class=”language-markup”>

    Je tourne désespérement en rond pour afficher toutes les valeurs… Quelqu’un aurait une idée salvatrice ? Peut-être que me méthode n’est pas la bonne ? Merci de votre aide

    <pre class=”language-markup”>

    https://1drv.ms/u/s!An2aQoxg76Kv8wY1hDNeg1vi8fZ9?e=bPZ6tV

    <pre class=”language-markup”>

    • Cette discussion a été modifiée Il y a 5 mois, 3 semaines par  StevannS.
    David a répondu Il y a 5 mois, 2 semaines 2 Membres · 7 Réponses
  • 7 Réponses
  • David

    Membre
    6 février 2024 à 21h51

    Bonjour Stevann

    Tu cherches à obtenir ce résultat mais sans pour autant désactiver l’interaction entre visuel ?

    • David

      Membre
      6 février 2024 à 22h02

      Comme ça ?

      • Cette réponse a été modifiée Il y a 5 mois, 3 semaines par  David.
  • StevannS

    Membre
    7 février 2024 à 9h40

    Bonjour David et merci pour ton temps ! En effet, c’est ça.

    L’idée est de créer une alerte sur dépassement de valeur, par point d’usage, à chaque rafraichissement du dataset. C’est pourcela que je souhaite obtenir cette liste indépendamment du filtre. Restera, après, la méthode pour déclencher l’alerte : je pensais à une metrics ? Je suis preneur d’idée en la matière…

  • StevannS

    Membre
    7 février 2024 à 9h47

    Bonjour David et merci pour ton temps ! En effet, c’est ça.

    Je vois que tu as modifié le calcul de MaxDate avec un calculate + ALL(). Cela fonctionne ! Je n’aurais pas penser que cela pouvait venir de ma variable _MaxDate… Qu’est ce qui t’as mis sur la voie ?

    L’idée est de créer une alerte sur dépassement de valeur, par point d’usage, à chaque rafraichissement du dataset. C’est pour cela que je souhaite obtenir cette liste indépendamment du filtre. Restera, après, la méthode pour déclencher l’alerte : je pensais à une metrics ? Je suis preneur d’idée en la matière…

  • David

    Membre
    7 février 2024 à 9h48

    Voici la mesure dans la deuxième capture d’écran qui fonctionne sans désactiver l’interactivité des visuels

    <pre class=”language-markup”>CORB Water Cons. Max Date =
    VAR _maxDate = CALCULATE(MAX(EDV_View2[Date_1]), ALL())
    RETURN
    SUMX(
    FILTER(
    ALL(Dates),
    Dates[Date] = _maxDate
    ),
    [CORB Water Cons.]
    )

    • Cette réponse a été modifiée Il y a 5 mois, 2 semaines par  David.
  • StevannS

    Membre
    7 février 2024 à 9h58

    Bonjour David et merci pour ton temps ! En effet, c’est ça.

    Je vois que tu as modifié le calcul de MaxDate avec un calculate + ALL(). Cela fonctionne, TOP ! Je n’aurais pas penser que cela pouvait venir de ma variable _MaxDate… Qu’est ce qui t’as mis sur la voie ?

    L’idée est de créer une alerte sur dépassement de valeur, par point d’usage, à chaque rafraichissement du dataset. C’est pour cela que je souhaite obtenir cette liste indépendamment du filtre. Restera, après, la méthode pour déclencher l’alerte : je pensais à une metrics ? Je suis preneur d’idée en la matière…

  • David

    Membre
    7 février 2024 à 14h43

    J’ai rencontré un problème similaire il y a peu de temps.

    J’irais aussi du côté des métriques pour créer une alerte

Connectez-vous pour répondre.