Partager via


Fonction FILTER (DAX)

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

Syntaxe

FILTER(<table>,<filter>)

Paramètres

Terme

Définition

table

Table à filtrer. La table peut également être une expression qui donne une table.

filter

Expression booléenne qui doit être évaluée pour chaque ligne de la table. Par exemple, [Amount] > 0 ou [Region] = "France"

Valeur de retour

Table contenant uniquement les lignes filtrées.

Notes

Vous pouvez utiliser FILTER pour réduire le nombre de lignes de la table avec laquelle vous travaillez et n'utiliser que des données spécifiques dans les calculs. FILTER ne s'utilise pas de façon indépendante, mais comme une fonction incorporée dans d'autres fonctions qui requièrent une table comme argument.

Exemple

L'exemple suivant crée un rapport des ventes réalisées sur Internet en dehors des États-Unis en utilisant une mesure qui élimine par filtrage les ventes réalisées aux États-Unis, puis en segmentant par année civile (Calendar Year) et catégories de produits (Product Categories). Pour créer cette mesure, vous filtrez la table, Internet Sales USD, en utilisant Sales Territory, 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 réalisées sur Internet moins toutes les lignes qui appartiennent au secteur de vente États-Unis. La fonction RELATED fait le lien entre la clé Territory de la table Internet Sales et SalesTerritoryCountry dans la table SalesTerritory.

Le tableau ci-dessous illustre la preuve de concept pour la mesure, NON USA Internet Sales, dont la formule est fournie dans la section de code ci-dessous. Le tableau compare toutes les ventes réalisées sur Internet avec les ventes réalisées sur Internet en dehors des États-Unis, pour montrer que l'expression de filtre fonctionne, en excluant du calcul les ventes aux États-Unis.

Pour recréer cette table, ajoutez le champ, SalesTerritoryCountry, à la zone Étiquettes de ligne du tableau croisé dynamique.

Tableau 1. Comparaison entre le total des ventes aux États-Unis et dans toutes les autres régions

Étiquettes de ligne

Internet Sales

Non USA Internet Sales

Australia

$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

Germany

$2,775,195.60

$2,775,195.60

United Kingdom

$5,057,076.55

$5,057,076.55

United States

$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 lorsque vous créez un tableau croisé dynamique en utilisant la mesure, NON USA Internet Sales. Ajoutez le champ CalendarYear à la zone Étiquettes de ligne du tableau croisé dynamique et le champ ProductCategoryName à la zone Étiquettes de colonne.

Tableau 2. Comparaison des ventes réalisées en dehors des États-Unis par catégories de produits

Non USA Internet Sales

Étiquettes de colonne

 

 

 

Étiquettes de ligne

Accessories

Bikes

Clothing

Total général

2001

 

$1,526,481.95

 

$1,526,481.95

2002

 

$3,554,744.04

 

$3,554,744.04

2003

$156,480.18

$5,640,106.05

$70,142.77

$5,866,729.00

2004

$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])