Fonction ISFILTERED (DAX)
Retourne TRUE lorsque columnName est filtré directement. S'il n'y a aucun filtre sur la colonne ou si le filtrage se produit parce qu'une autre colonne de la même table ou d'une table associée est filtrée, la fonction retourne FALSE.
Syntaxe
ISFILTERED(<columnName>)
Paramètres
- columnName
Nom d'une colonne existante, dans la syntaxe DAX standard. Il ne peut pas s'agir d'une expression.
Valeur de retour
TRUE lorsque columnName est filtré directement.
Notes
La colonne columnName est dite filtrée directement lorsque le ou les filtres s'appliquent à la colonne ; une colonne est dite colonne de filtrage croisé lorsqu'un filtre est appliqué à une autre colonne de la même table ou d'une table associée, et qu'il affecte la colonne columnName en la filtrant également.
La fonction associée Fonction ISCROSSFILTERED (DAX) retourne TRUE lorsque columnName ou une autre colonne de la même table ou d'une table associée est filtrée.
Exemple
L'exemple suivant crée une mesure, puis présente différents scénarios pour expliquer le comportement de ISFILTERED(). Il est possible de suivre les scénarios en téléchargeant la feuille de calcul des exemples de données DAX (Data Analysis Expressions).
En premier lieu, créez la mesure suivante [Is ProductName Filtered directly] dans la table [Product].
=ISFILTERED(Product[ProductName])
Fonctionnement de ISFILTERED() :
Une fois que vous avez créé la mesure, le tableau croisé dynamique doit montrer que [Is ProductName Filtered directly] est FALSE, car l'expression n'est pas du tout filtrée. À présent, vous devez obtenir quelque chose qui ressemble à ceci :
Is ProductName Filtered directly
FALSE
Si rien ne s'affiche dans le tableau croisé dynamique, faites glisser [Is ProductName Filtered directly] vers la zone Valeurs.
Faites glisser ProductCategory[ProductCategoryName] vers la zone Étiquettes de ligne ; toutes les valeurs doivent être encore FALSE et votre table doit ressembler à ce qui suit :
Étiquettes de ligne
Is ProductName Filtered directly
Accessories
FALSE
Bikes
FALSE
Clothing
FALSE
Components
FALSE
FALSE
Total général
FALSE
La raison pour laquelle la table contient des valeurs FALSE est due au fait que ProductCategory[ProductCategoryName] effectue un filtrage indirect ou un filtrage croisé de Product[ProductName], mais qu'il ne s'agit pas d'un filtre direct sur la colonne.
Faites glisser Product[Status] vers la zone Étiquettes de colonne ; toutes les valeurs doivent être encore FALSE et votre table doit ressembler à ce qui suit :
Is ProductName Filtered directly
Étiquettes de colonne
Étiquettes de ligne
Current
Total général
Accessories
FALSE
FALSE
FALSE
Bikes
FALSE
FALSE
FALSE
Clothing
FALSE
FALSE
FALSE
Components
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Total général
FALSE
FALSE
FALSE
La table a encore de nombreuses valeurs FALSE, car Product[Status] ne filtre pas Product[Name] directement.
La dernière étape de ce processus consiste à faire glisser Product[Name] vers la zone Filtre de rapport. À ce stade, rien n'a changé ; toutefois, dès que vous sélectionnez un nom de produit, les valeurs de la table doivent devenir TRUE. Selon le produit que vous avez sélectionné, votre table doit ressembler à ceci :
ProductName
Mountain-400-W Silver, 38
Is ProductName Filtered directly
Étiquettes de colonne
Étiquettes de ligne
Current
Total général
Accessories
TRUE
TRUE
Bikes
TRUE
TRUE
Clothing
TRUE
TRUE
Components
TRUE
TRUE
TRUE
TRUE
Total général
TRUE
TRUE
En conclusion, ISFILTERED() vous permet de déterminer si columnName est filtré directement dans le contexte où votre expression est évaluée.
Cet exemple utilise l'exemple de modèle de feuille de calcul DAX_AdventureWorks.