Utiliser les fonctions DAX

Effectué

La bibliothèque de fonctions DAX est constituée de centaines de fonctions, chacune conçue pour atteindre un objectif spécifique.

Étant donné que DAX est issu du complément Power Pivot pour Microsoft Excel 2010, plus de 80 de ces fonctions sont également disponibles dans Excel. Il s’agissait d’une stratégie de conception délibérée par Microsoft pour s’assurer que les utilisateurs d’Excel puissent rapidement devenir productifs avec DAX.

Toutefois, il existe de nombreuses fonctions que vous ne trouverez pas dans Excel, car elles sont spécifiques à la modélisation de données :

  • Fonctions de navigation entre les relations
  • Fonctions de modification du contexte de filtre
  • Fonctions d’itérateur
  • Fonctions d’intelligence temporelle
  • Fonctions Path

Conseil

Pour rechercher la documentation relative à une fonction DAX, faites une recherche Web avec le mot-clé DAX suivi du nom de la fonction.

Pour plus d'informations, consultez la référence de la fonction DAX.

Fonctions provenant d’Excel

Les sections suivantes étudient plusieurs fonctions utiles que vous connaissez peut-être déjà, car elles existent dans Excel.

La fonction DAX IF teste si une condition qui est fournie comme premier argument est remplie. Elle retourne une valeur si la condition est remplie (TRUE), et l’autre valeur si la condition n'est pas remplie (FALSE). La syntaxe de la fonction est la suivante :

IF(<logical_test>, <value_if_true>[, <value_if_false>])

Conseil

Un argument de fonction est facultatif quand la documentation l’indique entre crochets.

Si logical_test prend la valeur FALSE et que value_if_false n’est pas fourni, la fonction retourne la valeur BLANK.

De nombreuses fonctions de résumé Excel sont disponibles, dont SUM, COUNT, AVERAGE, MIN, MAX et bien d’autres. La seule différence est que, dans DAX, vous transmettez une référence de colonne, tandis que dans Excel, vous transmettez une plage de cellules.

De nombreuses fonctions mathématiques, logiques, de texte, de date et heure et d’information d’Excel sont également disponibles. Voici quelques exemples de fonctions Excel aussi disponibles dans DAX : ABS, ROUND, SQRT, LEN, LEFT, RIGHT, UPPER, DATE, YEAR, MONTH, NOW, ISNUMBER, TRUE, FALSE, AND, OR, NOT et IFERROR.

Fonctions qui ne proviennent pas d’Excel

Deux fonctions DAX utiles qui ne sont pas spécifiques à la modélisation et qui ne proviennent pas d’Excel sont DISTINCTCOUNT et DIVIDE.

Fonction DISTINCTCOUNT

Vous pouvez utiliser la fonction DAX DISTINCTCOUNT pour compter le nombre de valeurs distinctes dans une colonne. Cette fonction est particulièrement puissante dans une solution d’analyse. Supposons que le nombre de clients est différent du nombre de clients distincts. Ce dernier total ne compte pas les clients récurrents, donc la différence est le « nombre de clients » par rapport au « nombre de clients différents ».

Fonction DIVIDE

Vous pouvez utiliser la fonction DAX DIVIDE pour effectuer une division. Vous devez passer des expressions de numérateur et de dénominateur. Si vous le souhaitez, vous pouvez passer une valeur qui représente un résultat alternatif. La syntaxe de la fonction DIVIDE est la suivante :

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

La fonction DIVIDE gère automatiquement le cas de la division par zéro. Si un résultat alternatif n’est pas transmis et que le dénominateur est zéro ou vide, la fonction retourne une valeur vide. Lorsqu’un autre résultat est passé, il est retourné à la place de la valeur vide.

Cette fonction est pratique, car elle évite à votre expression d’avoir à commencer par tester la valeur du dénominateur. La fonction est également mieux optimisée pour tester la valeur de dénominateur que la fonction IF. Le gain de performance est significatif, car la vérification de la division par zéro est coûteuse. De plus, l’utilisation de la fonction DIVIDE offre une expression plus concise et élégante.

Conseil

Nous vous recommandons d’utiliser la fonction DIVIDE chaque fois que le dénominateur est une expression qui peut retourner zéro ou vide. Dans le cas où le dénominateur est une valeur constante, nous vous recommandons d’utiliser l’opérateur de division (/), qui est présenté plus loin dans ce module. Dans ce cas, le succès de la division est garanti et votre expression est plus performante, car elle évite les tests inutiles.