DAX pour Power BI & Excel

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é.

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

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/