Nous allons utiliser VALUES ou SUMMARIZE après un REMOVEFILTERS, ALL ou ALLEXCEPT.
Contexte : Nous voulons calculer le % que représente les ventes d’un produit dans sa catégorie. Ici les “Montain Bikes” représentent 38,52 % des ventes de sa catégorie :
Si nous supprimons le champ Category du visuel, nous obtenons 33,19 %, ce qui représente le % sur le total des ventes, et non sur la catégorie. Notre colonne PercentCategory ne renvoie donc pas le bon résultat :
Nous avons utilisé ALLEXCEPT, qui supprime le filtre appliqué à la colonne Category. On aurait pu utiliser REMOFILTERS ou ALL, le résultat aurait été le même (pas bon donc) :
DEFINE
MEASURE Sales[PercentCategory] =
VAR TotalCategory = CALCULATE(
Sales[Total Sales],
ALLEXCEPT('Product', 'Product'[Category]),
)
RETURN
DIVIDE( Sales[Total Sales], TotalCategory)
Il nous faut ajouter un filtre avec VALUES :
DEFINE
MEASURE Sales[PercentCategory] =
VAR TotalCategory = CALCULATE(
Sales[Total Sales],
ALLEXCEPT('Product', 'Product'[Category]),
VALUES('Product'[Category])
)
RETURN
DIVIDE( Sales[Total Sales], TotalCategory)
CALCULATE supporte plusieurs filtres, chaque filtre étant appliqué SUCCESSIVEMENT : on enlève tous les filtres sur la colonne Category puis on filtre sur la liste des Category.
La colonne contient désormais le % des ventes par catégorie, quelques soit le filtre appliqué dans le visuel.