Partager via


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() :

  1. 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.

  2. 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].

  3. 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

  4. 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

  5. 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].

  6. 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.

Voir aussi

Référence

Fonction ISFILTERED (DAX)

Fonction FILTERS (DAX)

Fonction HASONEFILTER (DAX)

Fonction HASONEVALUE (DAX)