Bonjour Laurent,
Il s'agit d'une syntaxe smplifiée (Sugar Syntax). En réalité, ce que le code fait en arrière plan c'est un FILTER ALLSELECTED. FILTER étant une fonction itérative, c'est ce qui explique le contexte de lignes utilisé (ALLSELECTED fait tomber le filtre de date).
Je pense que la bonne façon de l'écrire, c'est d'itérer sur la table des dates et non sur une table de faits :
Total Montant Cumulé =
CALCULATE (
[Total Ventes],
FILTER (
ALLSELECTED ( Date[Date] ),
Date[Date]
<= MAX ( Date[Date] )
)
)
------------------------------
Jonathan CHANAL
Power BI Consultant/Formateur
MCSA Power BI & Excel
------------------------------
Original Message:
Sent: Mar 21, 2022 12:10 PM
From: LAURENT SANCHEZ
Subject: question sur CALCULATE et le contexte
Bonjour à tous,
j'ai du mal à comprendre (même si cela fonctionne correctement ;) la syntaxe DAX suivante qui permet de cumuler des ventes sur toutes les années :

Total Montant Cumulé =
CALCULATE
(
[Total Ventes],
ALLSELECTED(Ventes),
Ventes[Date commande]<=MAX( Ventes[Date commande])
)
Pourquoi MAX(Ventes[Date commande]) tient-il compte du contexte (il retourne sur chaque ligne la date max du mois),
alors que Ventes[Date commande] ne tient pas compte du contexte ? (on a toutes les dates depuis le début grâce à ALLSELECTED)
Merci de votre éclairage ;)
------------------------------
LAURENT SANCHEZ
Formateur Consultant
laurent@sanchezconsultant.com
LE HAVRE
662527022
------------------------------