« Si vous vous investissez, vous pouvez tout accomplir. » « Si le nombre est égal à 8, je gagne la partie ! » Les conditions font partie de notre quotidien. Nous les utilisons régulièrement pour décider d'une action à partir d'une évaluation logique :
- Est-ce que je m'investis (TRUE/FALSE) ? Dans ce cas, je peux tout accomplir.
- Le nombre est-il = 8 ? Si oui, je gagne la partie.
Dans Tableau, vous pouvez appliquer une logique conditionnelle pour reproduire ce raisonnement. Tableau propose une série de fonctions logiques qui facilitent les transformations conditionnelles des données à partir d'une évaluation logique, soit une expression booléenne (TRUE/FALSE), soit une correspondance exacte de valeur. Dans cet article, nous allons passer en revue les instructions conditionnelles les plus courantes dans Tableau et voir comment les utiliser pour analyser et visualiser des données.
Instructions IF dans Tableau
L'instruction IF est une condition de base dans Tableau. Elle permet d'évaluer une expression booléenne et de renvoyer une valeur si la condition est vraie, et une autre si elle est fausse. La syntaxe de base de IF est :
IF [condition] THEN [value1] ELSE [value2] END
Si le résultat final dépend de l'évaluation d'une autre expression booléenne, vous pouvez ajouter une clause ELSEIF comme ceci :
IF [condition1] THEN [value1]
ELSEIF [condition2] THEN [value2]
ELSE [value3]
END
Par exemple, pour distinguer les genres pop des autres en fonction de la présence du mot « pop » dans le nom, on peut utiliser l'instruction IF suivante :
IF CONTAINS([Top Genre], 'pop') THEN 'pop'
ELSE 'other genre'
END
Instructions IF imbriquées
Les instructions IF peuvent être imbriquées pour créer des conditions plus complexes et évaluer plusieurs critères pour des sous-groupes de vos données. Pour construire des IF imbriqués, utilisez la syntaxe suivante :
IF [condition1] THEN
IF [condition2] THEN [value1]
ELSE [value2]
END
ELSE [value3]
END
Supposons que nous souhaitions connaître la part de morceaux pop qui sont dansants (selon la mesure de « danceability » définie dans le Spotify Music Dataset). Nous pouvons utiliser l'instruction IF imbriquée suivante :
IF CONTAINS([Top Genre], 'pop') THEN
IF [Dnce] > 66 THEN 'danceable pop' // 66 is the median
ELSE 'less danceable pop'
END
ELSE 'not pop'
END

Les IF imbriqués sont très puissants, notamment lorsque plusieurs conditions doivent être satisfaites pour différents sous-ensembles de données.
Instructions IIF
La fonction IIF est une autre instruction conditionnelle dans Tableau qui permet de tester une condition et de renvoyer l'une des deux valeurs possibles. La syntaxe de IIF est :
IIF([condition], [value if true], [value if false])
Par exemple, pour créer un champ calculé identifiant les auteurs-compositeurs qui ont produit un morceau classé top hit entre 2017 et 2019, on peut utiliser :
IIF([Year] >= 2017 AND [Year] <= 2019, '2017-2019 Top Song', 'Not Top Song in 2017-2019')

Cela renverra « 2017-2019 Top Song » si le morceau a été un top hit entre 2017 et 2019 (selon Billboard) et « Not Top Song in 2017-2019 » dans le cas contraire.
Utiliser les fonctions d'agrégation de Tableau avec IF
Tableau propose un large éventail de fonctions prédéfinies à combiner avec des conditions pour réaliser des calculs avancés. Parmi les plus courantes : COUNTD, SUM, AVG, MIN et MAX. Les fonctions d'agrégation permettent de synthétiser efficacement les informations en créant de nouveaux indicateurs dans Tableau. Utilisez la syntaxe suivante :
<Aggregation>(IF [Condition] THEN [value] END)
Par exemple, comptons le nombre d'artistes uniques ayant eu un top hit entre 2017 et 2019 avec COUNTD :
COUNTD(IF [Year] >= 2017 and [Year] <= 2019 THEN [Artist] END)

L'instruction ci-dessus renverra le nombre distinct d'artistes qui ont eu un hit entre 2017 et 2019. Si un artiste a eu plusieurs hits sur ces années, son nom ne sera comptabilisé qu'une seule fois.
De même, on peut utiliser SUM et AVG avec une condition pour calculer des valeurs sur des sous-ensembles spécifiques de données.
Conseil : veillez à placer la condition à l'intérieur de l'agrégation. Sinon, vous obtiendrez le fameux message : « Cannot mix aggregate and non aggregate comparisons or results in 'IF' expressions. » Par exemple, l'instruction ci-dessous génère une erreur car elle tente d'agréger un point de donnée isolé, lui-même non agrégé.

Instructions CASE dans Tableau
Introduction
L'instruction CASE est une autre construction conditionnelle dans Tableau. Elle permet d'effectuer plusieurs tests sur un même champ et de renvoyer des valeurs différentes selon les résultats. Contrairement aux IF, qui reposent sur l'évaluation d'une expression booléenne, les CASE s'appuient sur des correspondances exactes de valeur. Si la clause WHEN utilise une logique booléenne, vous obtiendrez l'erreur suivante dans Tableau :

La syntaxe de CASE est :
CASE [expression]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
ELSE [default result]
END
Par exemple, réécrivons la logique pour identifier les auteurs-compositeurs ayant produit un morceau classé top hit entre 2017 et 2019 :
CASE [Year]
WHEN IN (2017, 2018, 2019) THEN '2017-2019 Top Songs'
ELSE 'Not Top Song in 2017-2019'
END

Dans l'exemple ci-dessus, nous utilisons la construction WHEN IN pour lister les années d'intérêt (2017, 2018 et 2019). Tableau utilise ensuite cet ensemble pour rechercher une correspondance exacte dans les données. Si aucune correspondance n'est trouvée et qu'aucune valeur par défaut n'est spécifiée, une valeur nulle est renvoyée.
Instructions CASE imbriquées
Comme pour les IF imbriqués, vous pouvez utiliser des CASE imbriqués dans Tableau pour exposer une logique complexe via un champ calculé. Utilisez la syntaxe ci-dessous pour renvoyer une logique imbriquée avec CASE :
CASE [expression1]
WHEN [value1] THEN
(CASE [expression2]
WHEN [value2] THEN [result1]
WHEN [value3] THEN [result2]
…
ELSE [default result]
END)
WHEN [value4] THEN
(CASE [expression2]
WHEN [value5] THEN [result3]
WHEN [value6] THEN [result4]
…
ELSE [default result]
END)
ELSE [default result]
END
Bien que les CASE ne puissent pas évaluer des expressions booléennes et ne soient pas adaptées à l'identification de motifs complexes, elles sont plus lisibles et souvent plus performantes que les IF. Si vos données se prêtent à des transformations simples ne nécessitant pas d'évaluations TRUE/FALSE complexes, préférez CASE. Dans certains cas, vous pouvez combiner IF et CASE pour des analyses encore plus puissantes.
Conclusion
Les instructions conditionnelles, comme IF et CASE, sont des leviers efficaces pour faire progresser vos compétences Tableau en tant que praticien des données. Pour passer de débutant à confirmé, consultez nos ressources, comme le parcours carrière Data Analyst in Tableau ou le cours Analyzing Data in Tableau.
Une fois les fondamentaux acquis, entraînez-vous à la visualisation dans Tableau avec les datasets disponibles sur DataLab. Les instructions IF, IIF et CASE WHEN deviendront vite un réflexe. Bonne chance !
Devenez analyste de données Tableau
FAQ sur CASE et IF dans Tableau
Comment savoir quand utiliser IF vs CASE ?
La fonction à utiliser dépend du type de tâche à réaliser. Alors qu'une instruction IF évalue une expression booléenne, une instruction CASE se base strictement sur la valeur d'un champ. Souvent, une instruction CASE peut être convertie en instruction IF. L'inverse est moins probable, car les instructions IF servent à réaliser des évaluations plus complexes que les CASE ne peuvent généralement pas prendre en charge.
Quelle est la différence entre IF et CASE ?
Les instructions IF peuvent évaluer une logique booléenne sur des dimensions désagrégées ou des mesures agrégées, tandis que les CASE évaluent uniquement des correspondances exactes. Pour cette raison, les IF offrent plus de flexibilité que les CASE et permettent de mettre en œuvre des logiques plus complexes. Cependant, les CASE sont plus lisibles et plus performantes que les IF. Elles conviennent parfaitement lorsque les données ne nécessitent que des transformations simples.
Dois-je mettre en forme la fonction conditionnelle ?
Même si Tableau ne propose pas (encore !) de mise en forme automatique dans la boîte de dialogue des champs calculés, il est utile d'améliorer la lisibilité en ajoutant :
- Des commentaires : vous pouvez utiliser // pour un commentaire sur une ligne et /* <...> */ pour un commentaire multi-lignes ;
- Sauts de ligne et indentations : ajoutez des retours à la ligne et des retraits pour que toute personne consultant le classeur comprenne facilement les différents niveaux de logique de la visualisation.
Quelle est la différence entre IF et IIF ?
La principale différence entre l'instruction IF et la fonction IIF est que la première peut tester plusieurs conditions et renvoyer des valeurs différentes selon les résultats, tandis que la seconde ne teste qu'une seule condition à la fois et renvoie l'une des deux valeurs. Si les instructions IF permettent de gérer une logique plus complexe, la fonction IIF est idéale pour des conditions simples, lorsque la clarté et la concision priment.
Pourquoi ne pas simplement utiliser les paramètres et filtres intégrés de Tableau ?
Dans certains cas, les filtres et les paramètres ne suffisent pas pour analyser les données. Comme expliqué dans notre tutoriel Calculating Fields in Tableau, vous aurez parfois besoin de créer de nouvelles variables pour combler des manques avant l'analyse. Le plus souvent, les transformations à réaliser entrent dans les cinq catégories suivantes :
- Segmenter vos données
- Convertir le type d'un champ, par exemple transformer une chaîne en date ou un entier en nombre décimal
- Agréger des données
- Filtrer des résultats
- Calculer des ratios
