Comment utiliser la fonction SWITCH en DAX ?

3 février 2022

Aujourd’hui nous allons nous intéresser à une fonction très importante dans Power BI Desktop : la fonction Switch. Elle a pour but d’évaluer une expression par rapport à une liste de valeur et de retourner un résultat en fonction de cette valeur. C’est une fonction assez proche de la fonction IF.

Pour commencer, n'hésitez pas à consulter notre vidéo afin d'avoir un premier exemple.

Prenons un exemple concret. Imaginons que nous avons une requête contenant 2 colonnes : la colonne « ID_étudiant » et la colonne « Moyenne ». On souhaite ainsi créer une colonne attribuant une mention à l’étudiant en fonction de sa note.

Pour ce faire, nous pouvons utiliser la fonction IF. Ainsi, il vous suffit de vous rendre dans le menu « Modélisation » et cliquez sur « Nouvelle colonne » puis d'insèrer la fonction DAX suivante :

Fonction_IF = IF(sum(Examen[Moyenne])>=16,"Félicitation",IF(sum(Examen[Moyenne])>=13,"Mention bien",IF(sum(Examen[Moyenne])>=10,"Passable","Non admis")))

Cette mesure s'inteprete de la manière suivante :

Si la colonne « Moyenne » de la table examen est supérieure ou égale à 16 alors on ressort la mention « Félicitation ». Sinon si la colonne « Moyenne » de la table examen est supérieure ou égale à 13 alors on ressort la mention « Mention bien ». Sinon si la colonne « Moyenne » de la table examen est supérieure ou égale à 10 alors on ressort la mention « Passable ». Sinon, dans tous les autres cas on ressort la mention « Non admis ».

On constate que cette mesure fonctionne très bien. En effet, chaque étudiant se voit attribuer une mention en fonction de sa moyenne. Nous allons maintenant effectuer la même opération avec la fonction SWITCH.

Dans le menu « Modélisation » cliquez sur « Nouvelle colonne » puis insérez la fonction DAX suivante :

 

Fonction_SWITCH = SWITCH(TRUE(), SUM(Examen[Moyenne])>=16,"Félicitation", SUM(Examen[Moyenne])>=13,"Mention bien", SUM(Examen[Moyenne])>=10,"Passable", SUM(Examen[Moyenne])<10, "Non admis")

 

Cette mesure prend en premier paramètre l’expression sur laquelle on veut travailler. Ici, il se trouve que c'est la fonction TRUE. Autrement dit on va contrôler si les conditions entrées dans les paramètres suivants sont vérifiées.

En deuxième paramètre l’expression vérifie: « Examen[Moyenne]>=16 ».

En troisième paramètre le résultat ressort « Félicitation » si le deuxième paramètre est vérifié.

Enfin, on continue à entrer de nouvelles conditions en alternant le 2ème et 3ème paramètres : « Examen[Moyenne]>=13 », « Mention bien » …

On retrouve le même résultat. Les deux mesures utilisent des expressions conditionnelles différentes mais donnent le même résultat.

On constate que les expressions conditionnelles sont très variées en DAX. Si le IF est très plus populaire, l'écriture du code peut toutefois devenir très difficile à gérer.

En utilisant la fonction SWITCH, on peut obtenir un résultat plus simple à lire, écrire, et maintenir.

Dans la poursuite de notre exemple vous pouvez maintenant insérer notre colonne calculée « Fonction_SWITCH » dans un visuel de type « Segment » et insérer la colonne « ID_Etudiant » dans un visuel de type « Table ».

Nous espérons que cet article vous a permis de bien comprendre cette fonction.

Plus d'exercices dans nos formations Power BI.

Articles en relation

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram