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])
Voir aussi