Skip to content
Support Formation DAX
  • Pages
    • Présentation du support
      • Organisation des formations Power BI
      • Ressources
      • Bonnes pratiques
        • DAX pour la présentation
        • Rapport dynamique avec des segments déconnectés
        • Conserver un filtre même absent du visuel
        • Optimisation
      • Leçons [WIP]
    • Principes du DAX
      • Formalisme
      • Saisir du DAX (Excel, Power BI)
      • Trois modalités de création de formules DAX
      • Quatre+ concepts de base
      • Les contextes
      • Modèle de données & DAX
    • Fonctions de filtres
      • CALCULATE
        • Bonnes pratiques de filtre avec CALCULATE
        • Résumé des modificateurs de filtre
      • REMOVEFILTERS / KEEPFILTERS
        • ALL
      • icon picker
        FILTER
      • ALLSELECTED
      • ALLEXCEPT
      • VALUES / DISTINCT
      • CALCULATETABLE / RELATEDTABLE
      • SELECTCOLUMNS
      • SELECTEDVALUE
      • EARLIER
    • Fonctions d'informations
      • HASONEVALUE / ISINSCOPE
      • ISFILTERED (Titre dynamique)
    • Fonctions de regroupements
      • ADDCOLUMNS / SUMMARIZE / SUMMARIZECOLUMNS
      • GROUPBY / CURRENTGROUP
      • GENERATE / ROW
    • Fonctions de relations
      • Sans relation dans le modèle
        • TREATAS
        • INTERSECT (avant Fév. 2017)
        • CROSSJOIN
        • USERELATIONSHIP
      • Avec relation dans le modèle
        • CROSSFILTER
        • LOOKUPVALUE
        • RELATED [WIP]
        • RELATEDTABLE
    • Fonctions d'agrégation
      • SUMX
      • MAXX
      • RANKX
      • TOPN
    • Gestion des dates
      • Tables de dates
        • Marquer les tables de type Calendrier en table de date
      • DATEADD vs PARALLELPERIOD vs SAMEPERIODELASTYEAR
      • DATESINPERIOD vs DATEBETWEEN
      • Moyenne mobile
      • Cumul (TotalYTD)
      • DateYTD
      • Année fiscale
      • Dates précédentes
    • Fonctions de texte
      • CONCATENATEX
    • Fonctions de math
      • MROUND
    • Outils complémentaires
      • DAX Studio
      • Groupes de calculs
    • Bonnes pratiques
      • Performance
      • Lisibilité et maintenabilité

FILTER

Retourne une table qui représente un sous-ensemble d’une autre table ou expression.
FILTER(<table>, <filter>)

Exemple

Sales2007_FILTER =
CALCULATE (
Sales[SalesAmount],
FILTER (
OrderDate,
OrderDate[Year] = 2007
)
)
Résultat de FILTER
Year
Sales2007
2006
2007
600
2008
There are no rows in this table

Fonction qui n’est pas indépendante (doit être incorporée à CALCULATE et CALCULATETABLE par exemple).
Est une expression de table, qui est filtrée sur une expression appliquée sur chaque ligne.
Commence par supprimer tous les filtres appliqués à <table>.
Fonction de type “Itérateur”, donc évalue chaque ligne individuellement.
Le filtre doit porter sur les colonnes du premier argument (les arguments Filtre de CALCULATE peuvent porter sur la totalité du modèle)

Limites de la fonction

Ici on utilise FILTER comme expression de table pour l’argument <filters> de CALCULATE.
Red Sales =
CALCULATE(
[Sales],
FILTER('Product', 'Product'[Color] = "Red")
)

On préfèrera utiliser une expression booléenne (plutôt qu’une expression de table), qui est plus efficace (s’assure que tous les filtres existants appliqués à la colonne sont conservés et ne sont pas remplacés.)
Red Sales =
CALCULATE(
[Sales],
KEEPFILTERS('Product'[Color] = "Red")
)
Une expression booléenne a ces limites :
Ne permet pas de comparer des colonnes entre elles
Ne peut pas référencer une mesure.
Ne peut pas utiliser des fonctions CALCULATE imbriquées.
Ne peut pas utiliser des fonctions qui analysent ou retournent une table.
Donc on devra utiliser FILTER au lieu de KEEPFILTER ; on cherche les produits à marges élevées - prix dépasse 2 fois le coût standard :
High Margin Product Sales =
CALCULATE(
[Sales],
FILTER(
'Product',
'Product'[ListPrice] > 'Product'[StandardCost] * 2
)
)

Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.