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.
Syntaxe
ISCROSSFILTERED(<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 ou une autre colonne de la même table ou d'une table associée est filtrée. Sinon, retourne FALSE.
Notes
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. Une colonne est dite filtrée directement lorsque le ou les filtres s'appliquent à la colonne.
La fonction associée Fonction ISFILTERED (DAX) retourne TRUE lorsque columnName est filtré directement.
Exemple
L'exemple suivant crée une mesure, puis présente différents scénarios pour expliquer le comportement de ISCROSSFILTERED(). Il est possible de suivre les scénarios en téléchargeant la feuille de calcul DAX_AdventureWorks.
En premier lieu, créez la mesure suivante [Is ProductName Cross Filtered] dans la table [Product].
=ISCROSSFILTERED(Product[ProductName])
Fonctionnement de ISCROSSFILTERED() :
Une fois que vous avez créé la mesure, le tableau croisé dynamique doit montrer que [Is ProductName Cross Filtered] est FALSE, car l'expression n'est pas du tout filtrée. À présent, vous devez obtenir quelque chose qui ressemble à ceci :
Is ProductName Cross Filtered
FALSE
Si rien ne s'affiche dans le tableau croisé dynamique, faites glisser la colonne [Is ProductName Cross Filtered] vers la zone Valeurs.
Faites glisser DateTime[CalendarYear] vers la zone Étiquettes de colonne et faites glisser SalesTerritory[SalesTerritoryGroup] vers la zone Étiquettes de ligne ; toutes les valeurs doivent s'afficher comme étant FALSE. À présent, vous devez obtenir quelque chose qui ressemble à ceci :
Is Product Name CrossFiltered
Étiquettes de colonne
Étiquettes de ligne
2005
2006
2007
2008
Total général
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
N/A
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Amérique du Nord
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Total général
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Vous voyez la valeur FALSE dans toutes les cellules, car ni DateTime[CalendarYear], ni SalesTerritory[SalesTerritoryGroup], n'a d'effet en matière de filtrage sur Product[ProductName].
Faites glisser la colonne ProductCategory[ProductCategoryName] vers la zone Segments horizontaux et ProductSubCategory[ProductSubCategoryName] vers la zone Segments verticaux. Toutes les valeurs doivent encore s'afficher comme étant FALSE, car lorsque vous ajoutez une colonne à la zone de segments, vous n'avez pas encore sélectionné de jeu de segments. Par conséquent, vous devez obtenir quelque chose qui ressemble à ceci :
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Étiquettes de colonne
Bib-Shorts
Étiquettes de ligne
2005
2006
2007
2008
Total général
Bike-Racks
Europe
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bike-Stands
N/A
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottles and Cages
Amérique du Nord
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Bottom Brackets
Pacific
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Brakes
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Caps
Total général
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Sélectionnez un élément dans les segments et toutes les cellules de votre table prennent la valeur TRUE, car vous filtrez à présent la colonne Product[ProductName] via les tables associées ProductCategory et ProductSubcategory. Vos résultats doivent ressembler à ceci :
ProductCategoryName
Accessories
Bikes
Clothing
Components
ProductSubcategoryName
Is Product Name CrossFiltered
Étiquettes de colonne
Bib-Shorts
Étiquettes de ligne
2005
2006
2007
2008
Total général
Bike-Racks
Europe
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bike-Stands
N/A
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottles and Cages
Amérique du Nord
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Bottom Brackets
Pacific
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Brakes
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Caps
Total général
TRUE
TRUE
TRUE
TRUE
TRUE
TRUE
Chains
Cleaners
Cranksets
Derailleurs
Fenders
Forks
Gloves
Handlebars
Headsets
Vous pouvez maintenant remplacer les segments par Product[ProductName] et Product[ModelName]. Tant que vous ne sélectionnez pas d'élément dans un segment, la mesure retourne FALSE ; toutefois, dès que vous sélectionnez un élément dans le segment, la mesure retourne TRUE, car vous filtrez Product[ProductName] sur lui-même ou en sélectionnant Product[ModelName].
En conclusion, ISCROSSFILTERED() vous permet de déterminer si columnName est filtré dans le contexte où votre expression DAX est évaluée.
Cet exemple utilise l'exemple de modèle de feuille de calcul DAX_AdventureWorks.