DAX pour Power BI & Excel

REMOVEFILTERS / KEEPFILTERS

REMOVEFILTERS

Cf. aussi ALLEXCEPT.

“Sugar syntax” de ALL comme filtre dans CALCULATE. Ces 2 formules renvoient le même résultat :

Total Sales All Products = CALCULATE([Total Sales], REMOVEFILTERS(Products))
Total Sales All Products = CALCULATE([Total Sales], ALL(Products))

ALL peut renvoyer une table OU opérer comme filtre selon le contexte. C’est pour simplifier le comportement que ces fonctions REMOVEFILTERS / KEEPFILTERS ont été ajoutées : elles renvoient TOUJOURS une table.

Ne peuvent être utilisées comme table dans une mesure de table, seulement comme suppresseur de filtre.

Syntaxes

REMOVEFILTERS <table>
REMOVEFILTERS <column>
REMOVEFILTERS

Exemples

Supprime tous les filtres appliqués à la table Products :

Total Sales All Products = 
CALCULATE(
    [Total Sales],
    REMOVEFILTERS(Products)
)

Supprime le filtre appliqué à la colonne Color de la table Products :

Total Sales All Coloured Products = 
CALCULATE(
    [Total Sales],
    REMOVEFILTERS(Products[Color])
)

Supprime les filtres des colonnes Color et Category de la table Products :

Total Sales All Colours and Category Products =
CALCULATE(
    [Total Sales],
    REMOVEFILTERS(Products[Color], Products[Category])
)

Supprime tous les filtres :

Total Sales of Everything =
CALCULATE(
    [Total Sales],
    REMOVEFILTERS()
)

KEEPFILTERS

Conserve le filtre dans un filtre de CALCULATE.

Syntaxes

KEEPFILTERS <table>
KEEPFILTERS <column>

Exemples

Conserve le filtre sur la colonne Color de la table Products.

Black or Red Sales with KEEPFILTERS = 
CALCULATE(
    Sales[SalesAmount],
    KEEPFILTERS(Products[Color] IN {"Black", "Red"})
)

Voici l’équivalent avec VALUES :

Black or Red Sales  =
CALCULATE (
    Sales[SalesAmount],
    FILTER(
        VALUES( Product[Color] ),
        Product[Color]= "Black" || Product[Color]= "Red"
    )
)