Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
s’applique à :colonne calculéetable calculéemesurecalcul visuel
Évalue une expression dans un contexte de filtre modifié.
Notes
Il existe également la fonction CALCULATETABLE. Il effectue exactement la même fonctionnalité, sauf qu’il modifie le contexte de filtre appliqué à une expression qui retourne un objet table .
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
Terme | Définition |
---|---|
expression |
Expression à évaluer. |
filter1, filter2,… |
(Facultatif) Expressions booléennes ou expressions de table qui définissent des filtres ou des fonctions de modificateur de filtre. |
L’expression utilisée comme premier paramètre est essentiellement la même qu’une mesure.
Les filtres peuvent être les suivants :
Lorsqu’il existe plusieurs filtres, ils peuvent être évalués à l’aide de l’opérateur logique AND (&&
) , ce qui signifie que toutes les conditions doivent être TRUE
, ou par l’opérateur logique OR (||
), ce qui signifie que l’une ou l’autre condition peut être vraie.
Un filtre d’expression booléen est une expression qui prend la valeur TRUE
ou FALSE
. Il existe plusieurs règles qu’elles doivent respecter :
À compter de la version de septembre 2021 de Power BI Desktop, les éléments suivants s’appliquent également :
Total sales on the last selected date =
CALCULATE (
SUM ( Sales[Sales Amount] ),
'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] )
)
Un filtre d’expression de table applique un objet table en tant que filtre. Il peut s’agir d’une référence à une table de modèles, mais il est plus probable qu’il s’agit d’une fonction qui retourne un objet table. Vous pouvez utiliser la fonction FILTER pour appliquer des conditions de filtre complexes, y compris celles qui ne peuvent pas être définies par une expression de filtre booléenne.
Les fonctions de modificateur de filtre vous permettent d’ajouter plus que simplement des filtres. Ils vous fournissent un contrôle supplémentaire lors de la modification du contexte de filtre.
Fonction | But |
---|---|
REMOVEFILTERS | Supprimez tous les filtres ou filtres d’une ou plusieurs colonnes d’une table ou de toutes les colonnes d’une seule table. |
ALL1, ALLEXCEPT, ALLNOBLANKROW | Supprimez les filtres d’une ou plusieurs colonnes ou de toutes les colonnes d’une seule table. |
KEEPFILTERS | Ajoutez un filtre sans supprimer les filtres existants sur les mêmes colonnes. |
USERELATIONSHIP | Engagez une relation inactive entre les colonnes associées, auquel cas la relation active deviendra automatiquement inactive. |
CROSSFILTER | Modifiez la direction du filtre (des deux à un, ou d’un seul à la fois) ou désactivez une relation. |
1 La fonction ALL et ses variantes se comportent comme modificateurs de filtre et comme fonctions qui retournent des objets de table. Si la fonction REMOVEFILTERS est prise en charge par votre outil, il est préférable de l’utiliser pour supprimer des filtres.
Valeur qui est le résultat de l’expression.
Lorsque des expressions de filtre sont fournies, la fonction CALCULATE modifie le contexte de filtre pour évaluer l’expression. Pour chaque expression de filtre, il existe deux résultats standard possibles lorsque l’expression de filtre n’est pas encapsulée dans la fonction KEEPFILTERS :
La fonction CALCULATE utilisée sans filtres atteint une exigence spécifique. Il fait passer le contexte de ligne au contexte de filtre. Il est nécessaire lorsqu’une expression (et non une mesure de modèle) qui résume les données du modèle doit être évaluée dans le contexte de ligne. Ce scénario peut se produire dans une formule de colonne calculée ou lorsqu’une expression dans une fonction d’itérateur est évaluée. Notez que lorsqu’une mesure de modèle est utilisée dans le contexte de ligne, la transition de contexte est automatique.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les règles de sécurité au niveau des lignes (RLS).
La définition de mesure de table sales suivante
Les exemples de cet article peuvent être utilisés avec l’exemple de modèle Adventure Works DW 2020 Power BI Desktop. Pour obtenir le modèle, consultez exemple de modèle DAX.
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
Catégorie | Montant des ventes | Blue Revenue |
---|---|---|
Accessoires | 1 272 057,89 $ | 165 406,62 $ |
Vélos | 94 620 526,21 $ | 8 374 313,88 $ |
Vêtement | 2 117 613,45 $ | 259 488,37 $ |
Composants | 11 799 076,66 $ | 803 642,10 $ |
total | 109 809 274,20 $ | 9 602 850,97 $ |
La fonction CALCULATE évalue la somme de la table SalesSales Amount colonne dans un contexte de filtre modifié. Un nouveau filtre est ajouté à la table Product
La définition de mesure de table sales suivante
Canal | Montant des ventes | Chiffre d’affaires % Canal total |
---|---|---|
Internet | 29 358 677,22 $ | 26.74% |
Revendeur | 80 450 596,98 $ | 73.26% |
total | 109 809 274,20 $ | 100.00% |
Revenue % Total Channel =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
REMOVEFILTERS('Sales Order'[Channel])
)
)
La fonction
L'Customer table calculée ci-dessous classe les clients en classe de fidélité. C’est un scénario très simple : lorsque le chiffre d’affaires produit par le client est inférieur à 2500 $, il est classé comme faible; sinon, ils sont High.
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
Dans cet exemple, le contexte de ligne est converti en contexte de filtre. Il est appelé transition de contexte. La fonction ALLEXCEPT supprime les filtres de toutes les colonnes de table customer Customer, à l’exception de la colonne CustomerKey.
contexte de filtre
contexte ligne
fonction CALCULATETABLE
fonctions de filtre
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’hui