É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
Spécifie la direction du filtrage croisé à utiliser dans un calcul pour une relation existant entre deux colonnes.
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Terme | Définition |
---|---|
columnName1 | Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il représente généralement le côté « plusieurs » de la relation à utiliser. Si les arguments sont fournis dans l’ordre inverse, la fonction les permute avant de les utiliser. Cet argument ne peut pas être une expression. |
columnName2 | Nom complet d’une colonne existante spécifié avec la syntaxe DAX standard. Il représente généralement le côté « un » ou le côté de la recherche de la relation à utiliser. Si les arguments sont fournis dans l’ordre inverse, la fonction les permute avant de les utiliser. Cet argument ne peut pas être une expression. |
Direction | Direction du filtre croisé à utiliser. Doit prendre l'une des valeurs suivantes : None : Aucun filtrage croisé n’est effectué sur cette relation. Both : Les filtres sur les deux côtés filtrent l’autre côté. OneWay : Les filtres sur un côté ou le côté de la recherche d’une relation filtrent l’autre côté. Cette option ne peut pas être utilisée avec une relation un-à-un. N’utilisez pas cette option sur une relation plusieurs-à-plusieurs, car il est impossible de déterminer le côté de la recherche. Utilisez plutôt OneWay_LeftFiltersRight ou OneWay_RightFiltersLeft. OneWay_LeftFiltersRight : les filtres sur le côté de <columnName1> filtrent le côté de <columnName2>. Cette option ne peut pas être utilisée avec une relation un-à-un ou plusieurs-à-un. OneWay_RightFiltersLeft : les filtres sur le côté de <columnName2> filtrent le côté de <columnName1>. Cette option ne peut pas être utilisée avec une relation un-à-un ou plusieurs-à-un. |
La fonction ne retourne aucune valeur. Elle définit uniquement la direction du filtrage croisé pour la relation indiquée et pour la durée de la requête.
Dans le cas d’une relation 1:1, il n’y a pas de différence entre les directions one et both.
CROSSFILTER peut être utilisé uniquement dans les fonctions qui utilisent un filtre comme argument, par exemple : CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD et TOTALYTD.
CROSSFILTER utilise les relations existantes du modèle en identifiant les relations par leurs colonnes de fin.
Avec la fonction CROSSFILTER, la définition du filtrage croisé d’une relation n’a pas d’importance. Le fait de définir la relation pour filtrer sur une ou deux directions dans le modèle n’affecte pas l’utilisation de la fonction. La fonction CROSSFILTER remplace toute définition de filtrage croisé existante.
Une erreur est retournée si l’une des colonnes nommées comme argument ne fait pas partie d’une relation ou si les arguments appartiennent à des relations différentes.
Si des expressions CALCULATE sont imbriquées et que plusieurs expressions CALCULATE contiennent une fonction CROSSFILTER, c’est la fonction CROSSFILTER la plus intérieure qui prévaut en cas de conflit ou d’ambiguïté.
Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).
Dans le modèle de diagramme suivant, DimProduct et DimDate présentent une relation de direction unique avec FactInternetSales.
On ne peut obtenir, par défaut, le nombre de produits vendus par année :
Il existe deux façons d’obtenir le nombre de produits par année :
Activez le filtrage croisé bidirectionnel sur la relation. Cela modifiera la façon dont fonctionnent les filtres pour toutes les données entre ces deux tables.
Utilisez la fonction CROSSFILTER pour modifier la façon dont fonctionnent les relations pour cette mesure uniquement.
Avec DAX, vous pouvez utiliser la fonction CROSSFILTER pour modifier le comportement de la direction du filtre croisé entre deux colonnes définies par une relation. Dans ce cas, l’expression DAX se présente comme suit :
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
En utilisant la fonction CROSSFILTER dans notre expression de mesure, nous obtenons les résultats attendus :
É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