Accéder au contenu principal

Maîtriser SWITCH dans DAX pour Power BI : Un guide complet

Découvrez la fonction SWITCH de Power BI, ce qu'elle est, comment l'utiliser, ainsi que certains pièges courants et les meilleures pratiques.
Actualisé 14 nov. 2024  · 10 min de lecture

La fonction SWITCH() dans Power BI est une fonction DAX logique qui offre un moyen plus structuré et plus lisible de traiter des conditions multiples que les instructions IF() imbriquées.

Dans ce tutoriel, nous examinerons en détail la fonction SWITCH(). Nous verrons ce que c'est, comment l'utiliser, ainsi que les pièges les plus courants et les meilleures pratiques pour utiliser cette fonction.

Pour débuter avec Power BI et DAX, consultez notre piste de compétences Power BI Fundamentals et gardez notre DAX Cheat Sheet à portée de main pour une référence rapide sur la plupart des fonctions DAX les plus utiles que vous rencontrerez.

image2.png

Qu'est-ce que la fonction SWITCH dans Power BI ?

La fonction SWITCH() de DAX pour Power BI facilite la rédaction d'instructions conditionnelles. Il évalue une expression et la compare à une série de valeurs, en renvoyant le premier résultat correspondant.

SWITCH() peut remplacer plusieurs instructions IF() imbriquées en condensant plusieurs conditions en une seule fonction. Cela permet d'obtenir des expressions DAX plus propres et plus simples, plus faciles à lire et à maintenir. Il améliore également la lisibilité de vos formules, ce qui vous permet, ainsi qu'à d'autres, de comprendre et de modifier plus facilement vos calculs.

Syntaxe de base et utilisation

La syntaxe de base de la fonction SWITCH() est la suivante :

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
  • Expression : L'expression qui est évaluée.
  • Valeur : Les valeurs qui sont comparées à l'expression.
  • Résultat : Les résultats renvoyés si l'expression correspond à la valeur correspondante.
  • Autre : Un résultat facultatif qui est renvoyé si aucune des valeurs ne correspond à l'expression.

Voici une astuce rapide pour lire les énoncés de syntaxe de base (comme celui ci-dessus) que vous trouverez couramment dans les didacticiels et dans la documentation officielle de Microsoft Power BI. L'énoncé ci-dessus présente deux jeux de paramètres et , le second étant placé entre crochets. Cela signifie qu'il peut y avoir plus d'un ensemble de valeurs et de résultats qui sont facultatifs pour la fonction SWITCH(). De même, la partie de la fonction est également placée entre crochets, ce qui signifie qu'elle est également facultative.

Comparaison avec les instructions IF imbriquées

La manière traditionnelle de gérer des conditions multiples dans DAX implique des instructions IF imbriquées, qui peuvent rapidement devenir complexes et difficiles à lire. Par exemple, le traitement de quatre conditions nécessiterait trois fonctions IF imbriquées. En revanche, la fonction SWITCH() rationalise ce processus en permettant l'établissement d'une liste directe de paires condition-résultat, ce qui améliore à la fois la lisibilité et la maintenabilité.

Bien que plusieurs instructions IF imbriquées permettent d'obtenir le même résultat que SWITCH(), SWITCH() est toujours préféré parce qu'il est plus facile à écrire et moins sujet aux erreurs. De nombreux appels IF() peuvent également avoir un impact négatif sur la performance d'un rapport. Cependant, il est bon de se rappeler que la fonction SWITCH() peut également avoir un impact sur les performances du rapport. C'est pourquoi nous aborderons les stratégies d'optimisation de vos fonctions SWITCH() ainsi que quelques bonnes pratiques plus loin dans ce tutoriel.

Aptitude à effectuer des calculs complexes

SWITCH() est particulièrement adapté aux scénarios dans lesquels vous disposez d'un ensemble défini de valeurs possibles pour une expression et d'un résultat correspondant à chacune d'entre elles.

Cette méthode est plus propre et plus efficace que l'utilisation de plusieurs instructions IF() imbriquées, en particulier lorsque le nombre de conditions augmente. Cela fait de SWITCH() un excellent choix pour les calculs complexes où la lisibilité et la performance sont des préoccupations.

Toutefois, si SWITCH() peut améliorer la lisibilité, ses avantages en termes de performances par rapport aux instructions IF() imbriquées dépendent largement du cas d'utilisation spécifique et du modèle de données sous-jacent.

Comment utiliser la fonction SWITCH dans Power BI

Ces exemples illustrent la polyvalence de la fonction SWITCH() pour répondre à divers scénarios commerciaux dans Power BI. En remplaçant les instructions complexes imbriquées IF() par SWITCH(), vous pouvez obtenir des formules DAX plus claires et plus faciles à gérer.

Exemple 1 : Analyse des catégories de vente

Imaginez qu'une entreprise veuille classer ses ventes en différents niveaux sur la base du montant total des ventes afin d'analyser plus efficacement ses performances commerciales.

Dans la formule DAX ci-dessous, nous utilisons la fonction SWITCH() pour attribuer une catégorie de vente sur la base du montant total des ventes. Vous remarquerez que nous utilisons la fonction logique TRUE() comme expression dans notre formule. En effet, SWITCH() ne recherche que les correspondances exactes, et nous voulons utiliser des opérateurs tels que plus grand que et moins que dans notre formule. Ainsi, en attribuant la valeur TRUE() à l'expression, SWITCH() évaluera chaque condition jusqu'à ce qu'une correspondance soit trouvée (c'est-à-dire lorsque le résultat est vrai).

Sales Category =
SWITCH(
    TRUE(),
    [Total Sales] < 10000, "Low Sales",
    [Total Sales] < 50000, "Medium Sales",
    [Total Sales] >= 50000, "High Sales",
    "Unknown")

Voici le résultat dans Power BI :

image3.png

Exemple 2 : Stratégie de rabais sur les produits

Supposons qu'une chaîne de magasins applique différents pourcentages de remise aux produits en fonction de leur prix de vente net afin de maximiser la rentabilité. Ils souhaitent calculer la valeur totale des ventes à prix réduit dans leur magasin.

Dans la formule DAX ci-dessous, nous utilisons la fonction SWITCH() à l'intérieur d'une variable. Comme nous n'aurons pas besoin d'utiliser la formule du pourcentage de remise ailleurs dans notre rapport, nous pouvons réduire les calculs répétés et ne l'évaluer que dans le cadre de cette formule pour les ventes avec remise.

DiscountedSales =
    VAR DiscountPct = SWITCH(
        TRUE,
        Sales[Net Price] <= 150, 0.15,
        Sales[Net Price] <= 500, 0.2,
        Sales[Net Price] <= 1000, 0.3,
        0
    )
    VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
    RETURN
    DiscountAmount

Voici le résultat dans Power BI :

image1.png

Les pièges les plus courants et comment les éviter

Cette section passe en revue certains pièges courants lors de l'utilisation de la fonction SWITCH() et propose des recommandations pour les éviter.

1. Surutilisation pour des affections simples

L'utilisation de SWITCH() pour des scénarios où une simple instruction IF suffirait peut compliquer inutilement vos formules DAX.

Réservez plutôt le site SWITCH() aux cas présentant des pathologies multiples. Pour une ou deux conditions, envisagez d'utiliser IF par souci de simplicité.

2. Impact sur les performances avec les grands ensembles de données

L'utilisation intensive de la fonction SWITCH(), en particulier avec des expressions complexes, peut ralentir les performances du rapport dans les grands ensembles de données.

Optimisez les expressions dans SWITCH() en pré-calculant les parties complexes à l'aide de variables. Les variables rendent l'expression SWITCH() plus propre et plus facile à comprendre, contribuant indirectement à l'optimisation en réduisant le risque de calculs redondants ou inutiles.

Calculez les expressions courantes ou les parties complexes de vos conditions une seule fois et stockez-les dans des variables. Cela évite de recalculer la même expression plusieurs fois dans la fonction SWITCH().

3. Utilisation inefficace des défauts

L'utilisation abusive du cas par défaut dans SWITCH() pour gérer des erreurs ou des valeurs inattendues sans considération appropriée peut conduire à des résultats incorrects.

Définir clairement les conditions et traiter explicitement les scénarios connus. Utilisez des fonctions telles que IFERROR ou ISBLANK pour gérer les valeurs inattendues ou manquantes.

4. Incompréhension du contexte

Oublier que SWITCH() s'évalue dans le contexte actuel peut conduire à des résultats inattendus, en particulier lorsqu'il est utilisé dans des contextes de lignes ou de filtres. Consultez notre cours Introduction à DAX, où nous abordons les contextes de manière plus détaillée.

Lorsque vous concevez vos expressions SWITCH(), tenez toujours compte du contexte de la ligne ou du filtre en cours. Utilisez judicieusement les fonctions de transition de contexte telles que CALCULATE() pour adapter le contexte en fonction des besoins.

5. Ordre des opérations

Ne pas tenir compte de l'ordre des conditions dans la déclaration SWITCH() peut conduire à des résultats inattendus, car la fonction SWITCH() évalue les conditions dans l'ordre où elles sont définies et utilise la première condition correspondante.

Veillez à ce que chaque cas apparaisse dans l'ordre correct, comme vous le feriez avec les instructions imbriquées IF().

Meilleures pratiques SWITCH

Voici quelques bonnes pratiques pour utiliser efficacement le site SWITCH():

  • Utilisation pour des conditions multiples : SWITCH() est idéal lorsque vous avez plus de deux contrôles conditionnels. Elle rend votre formule plus facile à lire et à gérer que les instructions IF() imbriquées.

  • Définissez clairement tous les cas : Votre fonction SWITCH() doit couvrir tous les scénarios possibles, y compris un cas par défaut pour gérer les valeurs inattendues. Cela garantit que vos calculs sont robustes et moins sujets aux erreurs.

  • Optimisez les performances : Gardez les expressions dans SWITCH() aussi simples que possible pour éviter les problèmes de performance lorsque vous travaillez avec de grands ensembles de données. L'utilisation de variables pour stocker les résultats intermédiaires peut contribuer à minimiser la charge de calcul.

  • Effectuez un test approfondi : En particulier lorsque vous utilisez SWITCH() pour une logique complexe, veillez à tester minutieusement vos résultats dans différents scénarios. Cela permet de détecter les erreurs de logique ou les cas que vous n'avez pas vus.

Conclusion

Si vous cherchez un moyen plus efficace et plus polyvalent de gérer plusieurs conditions dans Power BI, SWITCH() est la solution. Contrairement aux instructions IF imbriquées, la fonction SWITCH() condense plusieurs conditions en une seule fonction, ce qui permet d'obtenir des expressions DAX plus propres et plus simples, plus faciles à lire et à gérer. En outre, il améliore la lisibilité de vos formules, ce qui vous permet, ainsi qu'à d'autres, de comprendre et de modifier plus facilement vos calculs.

Cependant, évitez de commettre certaines erreurs courantes lorsque vous utilisez la fonction SWITCH() et suivez les meilleures pratiques décrites dans ce tutoriel.

Si vous souhaitez vraiment commencer une carrière de développeur Power BI, consultez notre guide pas à pas pour devenir développeur BI ainsi que le cursus complet d'analyste de données dans Power BI, qui vous apprendra tout ce que vous devez savoir pour commencer à utiliser Power BI dans la pratique.

Devenez un analyste de données Power BI

Maîtrisez l'outil de veille stratégique le plus populaire au monde.

Commencez À Apprendre Gratuitement

Photo of Joleen Bothma
Author
Joleen Bothma
LinkedIn
Sujets

Commencez votre voyage Power BI dès aujourd'hui !

Certification disponible

cours

Introduction à Power BI

4 hr
361.1K
Maîtrisez les bases de Power BI et apprenez à utiliser le logiciel de visualisation de données pour construire des rapports percutants.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow