Filtrer des données dans des formules DAX

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

Cette section décrit comment créer des filtres dans les formules Expressions DAX (Data Analysis). Vous pouvez créer des filtres dans les formules, pour limiter les valeurs à partir des données source qui sont utilisées dans les calculs. Pour cela, spécifier une table comme entrée à la formule, puis définissez une expression de filtre. L'expression de filtre que vous avez défini est utilisée pour les données de la requête et retourner uniquement un sous-ensemble de la source de données. Le filtre est appliqué dynamiquement 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 une table utilisée dans une formule

Filtres qui suppriment des doublons

Incidence du contexte sur les filtres

Suppression de filtres

Remplacement de tous les filtres par la fonction ALL

Remplacement de filtres spécifiques par la fonction ALLEXCEPT

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

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

Par exemple, supposons que vous ayez une table des données contenant des informations de commande pour les revendeurs, et que vous souhaitiez calculer le montant des ventes de chaque revendeur. Toutefois, vous souhaitez afficher le montant des ventes uniquement pour les revendeurs qui ont vendu plusieurs unités de vos produits les plus chers. La formule suivante, reposant sur l’exemple de classeur DAX, illustre une façon de créer ce calcul à l’aide d’un filtre :

= SUMX (
filtre ('ResellerSales_USD', 'ResellerSales_USD' [Quantité] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

  • La première partie de la formule spécifie une des fonctions d'agrégation Power Pivot, qui prend une table en tant qu'argument. SUMX calcule une somme sur une table.

  • La deuxième partie de la formule, FILTER(table, expression),indique SUMX les données à utiliser. SUMX requiert une table ou une expression qui crée une table. Ici, au lieu d'utiliser toutes les données dans un tableau, vous utilisez la fonction FILTER pour spécifier les lignes de la table sont utilisés.

    L'expression de filtre comporte deux parties : la première partie nom de la table à laquelle s'applique le filtre. La deuxième partie définit une expression à utiliser en tant que la condition de filtre. Dans ce cas, vous filtrez revendeurs qui a vendu plus de 5 unités et les produits dont le coût plus de 100 euros. L'opérateur, & &, est un opérateur AND logique, qui indique que les deux parties de la condition doivent être vraies pour la ligne doit appartenir le sous-ensemble filtré.

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

    Notez que les fonctions telles que FILTER, qui retournent une table, ne retournent jamais directement la table ni les lignes, 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 des exemples, voir Fonctions de filtrage (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 cette mesure est utilisée dans un tableau croisé dynamique ou un graphique croisé dynamique, le sous-ensemble de données retourné peut être affecté par des filtres supplémentaires ou des segments appliqués par l’utilisateur dans le tableau croisé dynamique. Pour plus d’informations sur le contexte, voir Contexte dans les formules DAX.

Filtres qui suppriment des doublons

Outre le filtrage visant à obtenir des valeurs spécifiques, vous pouvez retourner un jeu unique de valeurs d’une autre table ou colonne. Cela peut être utile lorsque vous souhaitez 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 retourner des valeurs distinctes : la fonction DISTINCT et la fonction VALUES.

  • La fonction DISTINCT examine une colonne unique que vous spécifiez comme argument de la fonction et retourne une nouvelle colonne ne contenant que les valeurs distinctes.

  • La fonction valeurs également renvoie une liste de valeurs uniques, mais également renvoie le membre inconnu. Ceci est utile lorsque vous utilisez les valeurs de deux tables liées par une relation et une valeur est manquant dans une table et présents dans l'autre. Pour plus d'informations sur le membre inconnu, consultez contexte dans les formules DAX.

Ces deux fonctions retournent une colonne entière de valeurs. Par conséquent, vous utilisez ces fonctions pour obtenir une liste de valeurs qui est ensuite passée à une autre fonction. Par exemple, vous pouvez utiliser la formule suivante pour obtenir une liste des différents produits vendus par un revendeur particulier, en utilisant 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

Incidence du contexte sur les filtres

Lorsque vous ajoutez une formule DAX dans un tableau croisé dynamique ou graphique croisé dynamique, les résultats de la formule peuvent être affectés par le contexte. S'il s'agit d'une table Power Pivot, le contexte est la ligne active et ses valeurs. Si vous travaillez dans un tableau croisé dynamique ou graphique croisé dynamique, le contexte signifie que l'ensemble ou un sous-ensemble de données défini par les opérations, telles que le découpage ou filtrer des données. La conception du tableau croisé dynamique ou graphique croisé dynamique impose également son propre contexte. Par exemple, si vous créez un tableau croisé dynamique qui regroupe les ventes par région et par année, uniquement les données qui s'applique à ces régions et les 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 de tous les filtres de la formule de mesure ainsi que les en-têtes de colonne et de ligne.

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

Haut de la page

Suppression de filtres

Lorsque vous utilisez des formules complexes, vous pouvez avoir besoin de connaître exactement les filtres actuels ou de modifier la partie filtre de la formule. DAX fournit plusieurs fonctions qui vous permettent de supprimer des filtres et de contrôler les colonnes à conserver dans le cadre du contexte de filtre actuel. Cette section propose une vue d’ensemble de l’incidence de ces fonctions sur les résultats d’une formule.

Remplacement de tous les filtres par la fonction ALL

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

Remarque : Si vous connaissez la terminologie des bases de données relationnelles, vous pouvez considérer que la fonction ALL génère la jointure externe gauche naturelle de toutes les tables.

Par exemple, supposons que vous disposiez des tables Ventes et Produits, et que vous souhaitiez créer une formule qui calcule la somme des ventes réalisées pour le produit actuel, divisée par les ventes réalisées pour 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 segment pour effectuer un filtrage en fonction d’un produit spécifique, 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 segments appliqués, vous devez ajouter la fonction ALL pour remplacer tous les filtres. La formule suivante est un exemple d’utilisation de ALL pour remplacer les effets des filtres précédents :

= Somme (ventes [Quantité]) / SUMX (ventes [Quantité], filtre (ventes, ALL(Products)))

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

  • La somme prend en considération le contexte actuel, ce qui signifie que si vous ajoutez la formule dans une colonne calculée, le contexte de ligne est appliqué, et que si vous ajoutez la formule dans un tableau croisé dynamique en tant que mesure, tous 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ées à la table Products .

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

Remplacement de filtres spécifiques par la fonction ALLEXCEPT

La fonction ALLEXCEPT remplace également des filtres existants, mais vous permet de spécifier que certains doivent être conservés. Les colonnes que vous transmettez en tant qu’arguments à la fonction ALLEXCEPT spécifient les colonnes qui resteront filtrées. Si vous souhaitez remplacer les filtres de la plupart des colonnes mais pas tous, ALLEXCEPT est plus pratique que ALL. La fonction ALLEXCEPT se révèle particulièrement utile lorsque vous créez des tableaux croisés dynamiques qui peuvent être filtrés sur de nombreuses colonnes, et que vous souhaitez contrôler les valeurs utilisées dans la formule. Pour plus d’informations et un exemple détaillé sur l’utilisation de ALLEXCEPT dans un tableau croisé dynamique, voir Fonction ALLEXCEPT.

Haut de la page

Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×