FILTER

S’applique à :Colonne calculéeTable calculéeMesureCalcul visuel

Retourne une table qui représente un sous-ensemble d’une autre table ou expression.

Syntaxe

FILTER(<table>,<filter>)  

Paramètres

Terme Définition
tableau Table à filtrer. La table peut également être une expression produisant une table.
filter Expression booléenne à évaluer pour chaque ligne de la table. Par exemple, [Amount] > 0 ou [Region] = "France".

Valeur de retour

Table contenant uniquement les lignes filtrées.

Remarques

  • Vous pouvez utiliser FILTER pour réduire le nombre de lignes dans la table avec laquelle vous travaillez et utiliser uniquement des données spécifiques dans les calculs. La fonction FILTER n’étant pas indépendante, elle doit être utilisée en tant que fonction incorporée dans d’autres fonctions nécessitant une table comme argument.

  • Pour connaître les meilleures pratiques lors de l’utilisation d’un filtre, consultez Éviter d’utiliser le filtre en tant qu’argument de filtre.

Utiliser COUNTROWS à la place de COUNT dans DAX

  • 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).

Exemple

L’exemple suivant crée un rapport des ventes sur Internet hors États-Unis à l’aide d’une mesure qui exclut par filtrage les ventes réalisées aux États-Unis, puis découpe les ventes par année civile et catégorie de produit. Pour créer cette mesure, filtrez la table InternetSales_USD à l’aide du secteur de vente (SalesTerritory), puis utilisez la table filtrée dans une fonction SUMX.

Dans cet exemple, l’expression :

FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

Retourne une table qui est un sous-ensemble des ventes sur Internet, moins toutes les lignes appartenant au secteur de vente États-Unis. La fonction RELATED est ce qui lie la clé Territory dans la table InternetSales à SalesTerritoryCountry dans la table SalesTerritory.

La table suivante démontre le bien-fondé de la mesure Ventes sur Internet hors États-Unis dont la formule est indiquée dans la section de code ci-dessous. La table compare toutes les ventes sur Internet aux ventes sur Internet hors États-Unis pour montrer que l’expression de filtre fonctionne (les ventes des États-Unis sont exclues du calcul).

Pour recréer cette table, ajoutez le champ SalesTerritoryCountry à la zone Étiquettes de ligne d’un rapport ou tableau croisé dynamique.

Tableau 1. Comparaison des ventes totales réalisées aux États-Unis et dans toutes les autres régions

Étiquettes de ligne Internet Sales Ventes sur Internet hors États-Unis
Australie 4 999 021,84 $ 4 999 021,84 $
Canada 1,343,109.10 $ 1,343,109.10 $
France 2 490 944,57 $ 2 490 944,57 $
Allemagne 2 775 195,60 $ 2 775 195,60 $
Royaume-Uni 5 057 076,55 $ 5 057 076,55 $
États-Unis 9 389 479,79 $
Total général 26 054 827,45 $ 16 665 347,67 $

La table du rapport final montre les résultats quand vous créez un tableau croisé dynamique à l’aide de la mesure Ventes sur Internet hors États-Unis. Ajoutez le champ CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique, puis ajoutez le champ ProductCategoryName à la zone Étiquettes de colonne.

Tableau 2. Comparaison des ventes hors États-Unis par catégorie de produit

Étiquettes de ligne Accessories Bikes Clothing Total général
2005 1 526 481,95 $ 1 526 481,95 $
2006 3 554 744,04 $ 3 554 744,04 $
2007 156 480,18 $ 5 640 106,05 $ 70 142,77 $ 5 866 729,00 $
2008 228 159,45 $ 5 386 558,19 $ 102 675,04 $ 5 717 392,68 $
Total général 384 639,63 $ 16 107 890,23 $ 172 817,81 $ 16 665 347,67 $
SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")  
     ,'InternetSales_USD'[SalesAmount_USD])  

Fonctions de filtrage
ALL, fonction
ALLEXCEPT, fonction