Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Tchapeto
Frequent Visitor

Problème de Mesure DAX pour Compter les 'Yes' Basé sur une Date Sélectionnée

Bonjour à tous,

 

Je rencontre un problème dans Power BI avec une mesure DAX que j'essaie de créer, et j'apprécierais beaucoup votre aide pour le résoudre.

 

Objectif :

Mon objectif est de compter le nombre d'enregistrements dans ma table 'Requête1' où la colonne Passed est égale à "Yes" pour une date spécifique, qui est toujours 7 jours avant une date sélectionnée dans un slicer de mon rapport.

 

Structure de la Table :

La table 'Requête1' contient une colonne DATE (au format JOUR/MOIS/ANNEE sans composant de temps) et une colonne Passed qui peut prendre les valeurs "Yes" ou "No".

 

Problème :

J'ai créé une mesure pour calculer le nombre de "Yes" pour la date qui est 7 jours avant la date sélectionnée. Cependant, cette mesure ne retourne que des résultats vide.

 

Mesure Testée :

 

VAR PreviousDateYesCount = 
VAR SelectedDate = SELECTEDVALUE('Requête1'[DATE]) 
VAR PreviousDate = SelectedDate - 7 
RETURN CALCULATE( 
COUNTROWS('Requête1'), 
'Requête1'[Passed] = "Yes", 
'Requête1'[DATE] = PreviousDate 
)

 

 

Diagnostic :

J'ai vérifié que la colonne DATE n'inclut pas de composant de temps.

J'ai utilisé SELECTEDVALUE pour obtenir la date du slicer et soustrait 7 pour obtenir la PreviousDate.

 

Question :

Pourquoi cette mesure ne retourne-t-elle des valeurs que lorsque le slicer est réglé sur la date spécifique, et comment puis-je m'assurer qu'elle utilise la date codée en dur ou calculée plutôt que celle du slicer ?

 

Je suis ouvert à toutes suggestions ou corrections. Merci beaucoup pour votre aide !

1 ACCEPTED SOLUTION

J'ai finalement trouvé la solution :

 

VAR PreviousDateYesCount = 
VAR SelectedDate = SELECTEDVALUE('Requête1'[DATE]) 
VAR PreviousDate = SelectedDate - 7
RETURN 
CALCULATE( 
    COUNTROWS('Requête1'), 
    FILTER(
        ALLEXCEPT('Requête1', 'Requête1'[Business Unit]), 
        'Requête1'[Date] = PreviousDate && 'Requête1'[Passed] = "Yes"
    )
)

View solution in original post

8 REPLIES 8
v-kaiyue-msft
Community Support
Community Support

Hi @Tchapeto ,
Do you want the number of "yes" from the selected date in the slicer to the first 7 days of the selected date? If so, you can write the measure:

Measure = 
VAR SelectedDate = SELECTEDVALUE('Table'[DATE]) 
VAR PreviousDate = SelectedDate - 7 
RETURN 
COUNTX(
    FILTER(ALL('Table'),
'Table'[Passed] = "yes"&&'Table'[date] >= PreviousDate && 'Table'[date] <= SelectedDate),[date])

If this result still does not meet your expectation, please show the expected result in the form of a picture so that I can better help you solve the problem.

 

Best Regards,

Clara Gong

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hello,

Non je ne souhaite pas obtenir le nombre de "Yes" sur une période qui s'étend du jour sélectionné à 7 jours avant. Je souhaite obtenir le nombre de "Yes" à la date qui est 7 jours avant la date sélectionnée.

Par exemple, imaginons les informations suivantes :

DateNombre de "Yes"

13/02

6
14/0216
15/028
16/0217
17/029
18/0218
19/0214
20/0212

 

Si dans mon slicer, je selectionne la date du 20/02, je souhaite que ma variable PREVIOUSDATEYESCOUNT me retourne 6 (car 6 correspond au nombre de "Yes" pour le 13/02 qui est 7 jours avant la date sélectionnée (20/02)).

 

J'espère que cela est plus claire. Si ce n'est pas le cas, n'hésite pas à me dire comment je peux te fournir plus d'informations.

 

Merci à toi !

Hi @Tchapeto ,

 

You could try this expression. 

Measure 2 = 
VAR SelectedDate = SELECTEDVALUE('Table2'[DATE]) 
VAR PreviousDate = SelectedDate - 7
RETURN 
CALCULATE( 
COUNTROWS(Table2),FILTER(ALL(Table2),'Table2'[Date] = PreviousDate && 'Table2'[Passed] = "Yes"))

 

Best Regards,

Clara Gong

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

Merci pour ta proposition ! J'ai l'impression que cela se rapproche de ce que je souhaite obtenir !

 

Ce que je n'ai pas précisé c'est que j'ai un autre slicer (je ne pensais pas que cela aurait un impact mais à première vu oui).

 

Mon autre slicer me permet de choisir une catégorie. 

 

Actuellement, lorsque je sélectionne une date (par ex : 20/02) et que je ne choisis pas de catégorie en particulier, ma variable PreviousDateYesCount me retourne la bonne valeur (ex : 1087 (nombre de "Yes")). Cependant lorsque j'ajoute au premier filtre de date, le second filtre de catégorie, ma variable PreviousDateYesCount n'évolue pas dynamiquement et reste sur 1087.

 

Comment cela se fait-il que la variable s'adapte à mon slicer de date et pas à celui de la catégorie ?

Voici le code actuel de la variable 

 

VAR PreviousDateYesCount = 
VAR SelectedDate = SELECTEDVALUE('Requête1'[DATE]) 
VAR PreviousDate = SelectedDate - 7
RETURN 
CALCULATE( 
COUNTROWS('Requête1'),FILTER(ALL('Requête1'),'Requête1'[Date] = PreviousDate && 'Requête1'[Passed] = "Yes"))

 

J'ai finalement trouvé la solution :

 

VAR PreviousDateYesCount = 
VAR SelectedDate = SELECTEDVALUE('Requête1'[DATE]) 
VAR PreviousDate = SelectedDate - 7
RETURN 
CALCULATE( 
    COUNTROWS('Requête1'), 
    FILTER(
        ALLEXCEPT('Requête1', 'Requête1'[Business Unit]), 
        'Requête1'[Date] = PreviousDate && 'Requête1'[Passed] = "Yes"
    )
)
Tchapeto
Frequent Visitor

Hello v-kaiyue-msft,

Je m'excuse si mon explication n'a pas été assez claire. Ce que je souhaite c'est utiliser la date indiquée dans le slicer comme date de "référence", à laquelle je soustrais 7 jours afin d'obtenir le nombre de "Yes" de ma colonne "Passed" pour cette date (date de référence - 7 jours). De mon point de vue, je pense donc avoir besoin d'utiliser la fonction SELECTEDVALUE afin d'obtenir ma date "référence" depuis mon slicer.

Hello amitchandak,

J'ai tenté de copier ton code à la place du miens mais j'ai l'erreur suivante : Trop d'arguments ont été passés à la fonction FILTER. Le nombre maximal d'arguments de la fonction est 2.

v-kaiyue-msft
Community Support
Community Support

Hi @Tchapeto ,

 

1.SELECTEDVALUE is used to retrieve values from the filter context, so the results returned by the metric are related to your choice of slicer. More information about slicers can be found in the documentation: Slicers in Power BI - Power BI | Microsoft Learn and more information about the SELECTEDVALUE function can be found in the documentation: SELECTEDVALUE function - DAX | Microsoft Learn.

 

2.To ignore the slicer's dates, select edit interactions in format and click the disable button for visual objects that you don't want to be filtered.

vkaiyuemsft_0-1708572267957.png

 

vkaiyuemsft_1-1708572267958.png

 

Because the fields in your visual object are the same as the slicer fields, the slicer is bound to affect the presentation of the visual object. You can also create a table of calculations unrelated to the original table to use as a slicer, and then use the measure to calculate the data in the original table will no longer be affected by the slicer.

 

If these suggestions didn't help you solve your problem, perhaps you can provide the pbix file to better help you solve your problem. It is also recommended that you change your language to English so that I can better understand your problem.

 

Best Regards,

Clara Gong

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

amitchandak
Super User
Super User

@Tchapeto , Try like

 

VAR PreviousDateYesCount =
VAR SelectedDate = maxx(allselected('Requête1'),'Requête1' [DATE])
VAR PreviousDate = SelectedDate - 7
RETURN CALCULATE(
COUNTROWS('Requête1'), filter(all('Requête1'),
'Requête1'[Passed] = "Yes",
'Requête1'[DATE] = PreviousDate
) )

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.