Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Cette section explique comment créer des filtres dans les formules DAX (Data Analysis Expressions). Vous pouvez créer des filtres dans les formules afin de limiter les valeurs des données sources utilisées dans les calculs. Pour ce faire, vous devez spécifier une table comme entrée de la formule, puis définir une expression de filtre. L’expression de filtre que vous fournissez sert à interroger les données et à renvoyer uniquement un sous-ensemble des données sources. Le filtre est appliqué de façon dynamique chaque fois que vous mettez à jour les résultats de la formule, selon le contexte actuel de vos données.

Contenu de cet article

Création d’un filtre sur un tableau utilisé dans une formule

Vous pouvez appliquer des filtres dans des formules qui prennent une table comme entrée. Au lieu d’entrer un nom de tableau, vous utilisez la fonction FILTRE pour définir un sous-ensemble de lignes du tableau spécifié. Ce sous-ensemble est ensuite transmis à une autre fonction, pour des opérations telles que des agrégations personnalisées.

Par exemple, supposons que vous avez une table de données contenant des informations sur les commandes relatives aux revendeurs et que vous souhaitez calculer le montant des revendeurs vendus. Toutefois, vous souhaitez afficher le montant des ventes uniquement pour les revendeurs qui ont vendu plusieurs unités de vos produits à valeur supérieure. La formule suivante, basée sur l’exemple de workbook DAX, montre un exemple de la façon dont vous pouvez créer ce calcul à l’aide d’un filtre :

=SOMME.X(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[VentesAmt]
     )

  • La première partie de la formule spécifie l’une Power Pivot d’agrégation, qui prend une table comme argument. SOMME.X calcule une somme sur une table.

  • La deuxième partie de la formule FILTER(table, expression),indique SUMX données à utiliser. SUMX nécessite une table ou une expression qui en résulte une table. Dans ce cas, au lieu d’utiliser toutes les données d’un tableau, vous utilisez la fonction FILTER pour spécifier les lignes du tableau qui sont utilisées.

    L’expression de filtre se présente en deux parties : la première partie nomme la table à laquelle s’applique le filtre. La seconde partie définit une expression à utiliser comme condition de filtre. Dans ce cas, vous filtrez sur les revendeurs qui ont vendu plus de 5 unités et les produits dont le coût est supérieur à 100 $. L’opérateur, &&, est un opérateur ET logique, ce qui indique que les deux parties de la condition doivent être vraies pour que la ligne appartienne au sous-ensemble filtré.

  • La troisième partie de la formule indique à SUMX fonction quelles valeurs doivent être additionées. Dans ce cas, vous utilisez uniquement le montant des ventes.

    Notez que les fonctions telles que FILTRE, qui retournent une table, ne retournent jamais le tableau ou les lignes directement, mais sont toujours incorporées dans une autre fonction. Pour plus d’informations sur FILTER et d’autres fonctions utilisées pour le filtrage, notamment d’autres exemples, voir Filter Functions (DAX).

    Remarque : L’expression de filtre est affectée par le contexte dans lequel elle est utilisée. Par exemple, si vous utilisez un filtre dans une mesure et que la mesure est utilisée dans un tableau croisé dynamique ou un PivotChart, le sous-ensemble de données renvoyé peut être affecté par des filtres ou des slicers supplémentaires que l’utilisateur a appliqués dans le tableau croisé dynamique. Pour plus d’informations sur le contexte, voir Contexte dans les formules DAX.

Filtres qui suppriment les doublons

En plus de filtrer des valeurs spécifiques, vous pouvez renvoyer un ensemble unique de valeurs à partir d’une autre table ou colonne. Cela peut être utile lorsque vous voulez compter le nombre de valeurs uniques dans une colonne ou utiliser une liste de valeurs uniques pour d’autres opérations. DAX fournit deux fonctions pour renvoyer des valeurs distinctes : fonction DISTINCT et fonction VALUES.

  • La fonction DISTINCT examine une seule colonne que vous spécifiez comme argument de la fonction et renvoie une nouvelle colonne contenant uniquement les valeurs distinctes.

  • La fonction VALEURS renvoie également une liste de valeurs uniques, mais renvoie également le membre inconnu. Cela est utile lorsque vous utilisez des valeurs de deux tables jointes par une relation, et qu’une valeur est manquante dans une table et présente dans l’autre. Pour plus d’informations sur le membre inconnu, voir Contexte dans les formules DAX.

Ces deux fonctions retournent une colonne entière de valeurs ; par conséquent, vous utilisez les fonctions pour obtenir une liste de valeurs qui sont ensuite transmises à une autre fonction. Par exemple, vous pouvez utiliser la formule suivante pour obtenir une liste des différents produits vendus par un revendeur particulier, à l’aide de la clé de produit unique, puis compter les produits de cette liste à l’aide de la fonction COUNTROWS :

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Haut de la page

Comment le contexte affecte les filtres

Lorsque vous ajoutez une formule DAX à un tableau croisé dynamique ou PivotChart, les résultats de la formule peuvent être affectés par le contexte. Si vous travaillez dans une table Power Pivot, le contexte est la ligne actuelle et ses valeurs. Si vous travaillez dans un tableau croisé dynamique ou un PivotChart, le contexte signifie l’ensemble ou le sous-ensemble de données définis par des opérations telles que la slication ou le filtrage. La conception du tableau croisé dynamique ou PivotChart impose également son propre contexte. Par exemple, si vous créez un tableau croisé dynamique qui groupe les ventes par région et par année, seules les données qui s’appliquent à ces régions et années apparaissent dans le tableau croisé dynamique. Par conséquent, toutes les mesures que vous ajoutez au tableau croisé dynamique sont calculées dans le contexte des en-tête de colonne et de ligne ainsi que des filtres dans la formule de mesure.

Pour plus d’informations, consultez Contexte dans les formules DAX.

Haut de la page

Suppression de filtres

Lorsque vous travaillez avec des formules complexes, vous souhaitez peut-être connaître précisément les filtres actuels ou modifier la partie filtre de la formule. DAX fournit plusieurs fonctions qui vous permettent de supprimer des filtres et de contrôler les colonnes qui sont conservées dans le contexte de filtre actuel. Cette section fournit une vue d’ensemble de la façon dont ces fonctions affectent les résultats d’une formule.

Remplacement de tous les filtres par la fonction ALL

Vous pouvez utiliser la fonction ALL pour remplacer tous les filtres précédemment appliqués et renvoyer toutes les lignes de la table à la fonction qui effectue l’agrégation ou une autre opération. Si vous utilisez une ou plusieurs colonnes, au lieu d’une table, en tant qu’arguments de ALL, la fonction ALL renvoie toutes les lignes, en ignorant les filtres de contexte.

Remarque : Si vous êtes familiarisé avec la terminologie de base de données relationnelle, vous pouvez avoir l' ALL comme générant la jointie externe gauche naturelle de toutes les tables.

Par exemple, supposons que vous avez les tables, Ventes et Produits et que vous voulez créer une formule qui calcule la somme des ventes du produit actuel divisé par les ventes de tous les produits. Vous devez tenir compte du fait que, si la formule est utilisée dans une mesure, l’utilisateur du tableau croisé dynamique peut utiliser un slicer pour filtrer un produit particulier, avec le nom du produit sur les lignes. Par conséquent, pour obtenir la valeur réelle du dénominateur, quels que soient les filtres ou les slicers, vous devez ajouter la fonction ALL pour remplacer tous les filtres. La formule suivante illustre comment utiliser ALL pour remplacer les effets des filtres précédents :

=SOMME (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products))

  • La première partie de la formule, SUM (Sales[Amount]), calcule le numérateur.

  • La somme tient compte du contexte actuel: si vous ajoutez la formule dans une colonne calculée, le contexte de ligne est appliqué et, si vous ajoutez la formule dans un tableau croisé dynamique par mesure, les filtres appliqués dans le tableau croisé dynamique (contexte de filtre) sont appliqués.

  • La deuxième partie de la formule calcule le dénominateur. La fonction ALL remplace tous les filtres qui peuvent être appliqués à Products table.

Pour plus d’informations, y compris des exemples détaillés, voir ALL, fonction.

Remplacement de filtres spécifiques avec la fonction ALLEXCEPT

La fonction ALLEXCEPT remplace également les filtres existants, mais vous pouvez spécifier que certains filtres existants doivent être conservés. Les colonnes que vous nommez comme arguments pour la fonction ALLEXCEPT spécifient les colonnes qui continueront à être filtrées. Si vous souhaitez remplacer les filtres de la plupart des colonnes, mais pas de la plupart des colonnes, ALLEXCEPT est plus pratique que ALL. La fonction ALLEXCEPT est particulièrement utile lorsque vous créez des tableaux croisés dynamiques qui peuvent être filtrés sur de nombreuses colonnes différentes et que vous voulez contrôler les valeurs utilisées dans la formule. Pour plus d’informations, notamment un exemple détaillé de l’utilisation de ALLEXCEPT dans un tableau croisé dynamique, voir FONCTION ALLEXCEPT.

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×