Quatre+ concepts de base
1 | Contexte d’évaluation implicite et explicite
Télécharger l’exemple
Filtres explicites
Introduits par des arguments de fonctions DAX.
Filtres implicites
Filtres du rapport (segments...)
Ordre de résolution
Explicites > Implicites.
Exemples
CALCULATE([Montant], DimTerritoires[Secteur]=1)
Le filtre de la fonction CALCULATE remplacele filtre implicite sur le rapport : dans une matrice, Secteur “2” affiche le montant du Secteur 1.
Secteur 1 : 123
Secteur 2 : 123
Sugar syntax de :
CALCULATE([Montant], FILTER(ALL(DimTerritoires), DimTerritoires[Secteur]=1))
Autre exemple :
CALCULATE([Montant], FILTER(DimTerritoires, DimTerritoires[Secteur]=1))
La fonction FILTER n’efface pas les filtres implicites mais ajoute des filtres : dans une matrice, secteur “2” affiche les montants dont le secteur = 2 (filtre implicite) ET le secteur=1 (filtre explicite), donc n’affiche rien.
Secteur 1 : 123
Secteur 2 : (blank)
Autre exemple :
CALCULATE([Montant], ALL(DimTerritoires))
La fonction ALL dans le filtre de CALCULATE ignore les filtres implicites et explicites : dans une matrice, secteur “1”, “2” et “3” affichent chacun le même total des 3 secteurs (le total général).
2 | Contexte de filtre, de ligne et transition de contexte
Le contexte de filtre est l’ensemble des filtres appliqués aux données source, avant que le calcul ne soit effectué.
Cf. Les contextes.
Contextes de lignes ou de filtres. Cf. Contexte dans les formules DAX [MS].
CALCULATE(expression, filtre) : remplace les filtres implicites.
CALCULATE(expression, FILTER()) : filtre la table mais ne remplace pas les filtres implicites.
CALCULATE(expression, FILTER(ALL())) : filtre la table puis ignore les filtres implicites.
https://www.lecfomasque.com/wp-content/uploads/2020/11/Filtres-implicites-2048x283.png
3 | Itérateurs
SUMX, FILTER
Procède sur chaque ligne de la table.
Cf. SUMX
4 | Tables étendues
5 | Autres
Autoexistence
Uniquement dans la fonction SUMMARIZECOLUMNS. ADDCOLUMNS / SUMMARIZE / SUMMARIZECOLUMNS
6 | Lineage
Et TREATAS.
7 | Sugar Syntax
=syntaxes alternatives, plus simples.
On peut écrire :
Total Sales Syntax Sugar = SUM(Sales[SalesAmount])ou aussi :
Total Sales Full Syntax = SUMX(Sales, Sales[SalesAmount])On peut écrire :
Total Sales Prior Year Syntax Sugar =
CALCULATE(
Sales[SalesAmount],
SAMEPERIODLASTYEAR('Calendar'[Date])
)ou aussi :
Total Sales Prior Year Full Syntax =
CALCULATE(
Sales[SalesAmount],
DATEADD('Calendar'[Date], -1, YEAR)
)https://exceleratorbi.com.au/simple-filters-and-syntax-sugar-in-dax/