DAX
Share
Explore
Ajoute, supprime et modifie le contexte de filtre.
Name_Color_Transport.xlsx
128.2 kB
CALCULATE (
<expression>,
<filter1>,
...
<filterN>
)
<filter> peut être :
une valeur logique (= qui renvoi Vrai ou Faux)
une expression de table, qui supprime les filtres déjà appliqués sur les colonnes retournées par l’expression de table.
Sales2007=
CALCULATE (
SUM ( Sales[Sales Amount] ),
OrderDate[Year] = 2007
)
CALCULATE réalise 4 actions :
Supprime le filtre appliqué sur la colonne Year de la table OrderDate.
Conserve tous les autres filtres qui seraient appliqués (sur la table Sales ou la table OrderDate ou toutes les autres tables qui filtreraient la mesure)
Filtre la table OrderDate quand la colonne Year = 2007
Somme la colonne SalesAmount

Ce qui donne :
Résultat de CALCULATE
0
Year
Sales2007
1
2005
600
2
2006
600
3
2007
600
There are no rows in this table

/!\ CALCULATE résout l’argument 2 avant de l’appliquer au 1, contrairement aux autres fonctions)
Avec FILTER, ALL et VALUES
0
1
CALCULATE(
COUNTROWS(‘Demo’),
FILTER( ALL(‘Demo'[Color]), ‘Demo'[Color] = "Green" ) )
Ignore/remplace les filtres de couleur existants Définit un filtre sur vert
2
CALCULATE(
COUNTROWS(‘Demo’),
FILTER( VALUES(‘Demo'[Color]), ‘Demo'[Color] = "Green" ) )
Conserve les filtres de couleur existants Ajoute un filtre supplémentaire sur le vert
3
CALCULATE(
COUNTROWS(‘Demo’),
FILTER( ALL(‘Demo'[Color]),
‘Demo'[Color] = “Green” ),
VALUES(‘Demo'[Color]) )
Identique à l’expression précédente (conserve les filtres de couleur existants) REMARQUE : le premier filtre prendrait en compte toutes les couleurs, mais la seconde expression (VALUES) ne considère que la sélection actuelle et les deux filtres seront considérés à l’aide d’une condition ET.
4
= CALCULATE(
COUNTROWS(‘Demo’),
FILTER( ALL(‘Demo’), ‘Demo'[Color] = "Green" ) )
Ignore/remplace les filtres sur toutes les colonnes de la table Demo, Définit un filtre sur toutes les colonnes (Nom, Transport, etc., pas seulement Couleur) Avec des lignes qui remplissent la condition.
There are no rows in this table

CALCULATE imbriquées

externes > internes.
CALCULATE (
CALCULATE (
[Measure],
ALL ( Customer[Country] )
),
KEEPFILTERS ( Customer[Country] = "Italy" )
)
C’est d’abord le CALCULATE externe (qui contient KEEPFILTERS ( Customer[Country] = "Italy" ) qui est d’abord exécuté).
Sinon dans les autres fonctions de filtre DAX : internes > externes .

Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.