Fonctions logiques

Cet article présente les fonctions logiques et leurs utilisations dans Tableau. Il montre également comment créer un calcul logique en se basant sur un exemple.

Pourquoi utiliser des calculs logiques

Les calculs logiques vous aident à déterminer si une certaine condition est vraie ou fausse (logique booléenne). Par exemple, vous pouvez vouloir classer les valeurs en fonction de certains seuils.

Un calcul logique peut se présenter comme suit :

IF [Profit] > 0 
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END

Fonctions logiques et opérateurs disponibles dans Tableau

AND

Syntaxe<expr1> AND <expr2>
DéfinitionConjonction logique entre deux expressions. (Si les deux expressions sont définies sur vrai, le test logique renvoie un résultat positif.)
RésultatBooléen(vrai ou faux)
Exemple
IF [Season] = "Spring" AND "[Season] = "Fall" 
THEN "It's the apocalypse and footwear doesn't matter"
END

« Si les expressions (Saison = Printemps) et (Saison = Automne) sont simultanément vraies, C’est l’apocalypse et les chaussures n’ont pas d’importance est retournée. »

Remarques

Souvent utilisé avec IF et IIF. Voir également NOT et OU.

Si les deux expressions sont TRUE (c’est-à-dire qu’elles ne sont pas FALSE ou NULL), le résultat est TRUE. Si l’une des expressions est NULL, le résultat est NULL. Dans tous les autres cas, le résultat obtenu est FALSE.

Si vous créez un calcul dans lequel le résultat d’une comparaison AND s’affiche dans une feuille de calcul, Tableau affiche les valeurs TRUE et FALSE. Si vous voulez modifier cela, utilisez la zone de mise en forme dans la boîte de dialogue Mettre en forme.

Remarque : L’opérateur AND utilise l’évaluation de court-circuit. Cela signifie que si la première expression est évaluée comme étant FALSE, la seconde expression n’est pas du tout évaluée. Cela peut être utile si la seconde expression renvoie une erreur lorsque la première expression est FALSE, car dans ce cas-là, la seconde expression n’est jamais évaluée.

CASE

SyntaxeCASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
RésultatDépend du type de données des valeurs <then>.
Définition

Évalue l’expression et la compare aux options spécifiées (<value1>, <value2>, etc.). Lorsqu’une value correspondant à l’expression est appliquée, CASE renvoie la valeur de return correspondante. Si aucune correspondance n’est trouvée, la valeur par défaut (facultative) est retournée. Si aucune valeur par défaut ni aucune valeur ne correspond, la valeur nulle est renvoyée.

Exemple
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

« Regardez le champ Saison. Si la valeur est Été, Sandales est retourné. Si la valeur est Hiver, Bottes est retourné. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Saison, chaussures de sport est retourné. »

Remarques

Voir également IF et IIF.

Utilisé avec les expressions WHEN, THEN, ELSE et END.

Conseil : Il est souvent possible d’utiliser un groupe pour obtenir les mêmes résultats qu’une fonction CASE complexe, ou d’utiliser CASE pour remplacer la fonctionnalité de regroupement native, comme dans l’exemple précédent. Vous voudrez peut-être tester lequel est le plus performant pour votre scénario.

ELSE

SyntaxeCASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
DéfinitionÉlément facultatif d’une expression IF ou CASE utilisée pour préciser une valeur par défaut à renvoyer si aucune des expressions testées n’est vraie.
Exemple
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END
Remarques

Utilisé avec les expressions CASE, WHEN, IF, ELSEIF, THEN et END

ELSE est facultatif avec CASE et IF. Dans un calcul où ELSE n’est pas précisé, si aucune valeur <test> n’est true, le calcul global renvoie une valeur nulle.

ELSE ne requiert aucune condition (par exemple, [Season] = "Winter") et peut être considéré comme une forme de traitement des valeurs nulles.

ELSEIF

Syntaxe[ELSEIF <test2> THEN <then2>]
DéfinitionÉlément facultatif d’une expression IF utilisée pour préciser des conditions supplémentaires au-delà de l’expression IF initiale.
Exemple
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSEIF [Season] = "Spring" THEN 'Sneakers'
ELSEIF [Season] = "Autumn" THEN 'Sneakers'
ELSE 'Bare feet'
END
Remarques

Utilisé avec les expressions IF, THEN, ELSE et END

ELSEIF peut être considéré comme une clause IF supplémentaire. ELSEIF est facultatif et peut être répété de nombreuses fois.

Contrairement à ELSE, ELSEIF requiert une condition (par exemple, [Season] = "Winter").

END

DéfinitionUtilisé pour fermer une expression IF ou CASE.
Exemple
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

« Si Saison = Été, Sandales est retourné. Sinon, regardez l’expression suivante. Si Saison = Hiver, Bottes est retourné. Si aucune des expressions n’est vraie, Chaussures de sport est retourné. »

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

« Regardez le champ Saison. Si la valeur est Été, Sandales est retourné. Si la valeur est Hiver, Bottes est retourné. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Saison, chaussures de sport est retourné. »

Remarques

Utilisé avec les expressions CASE, WHEN, IF, ELSEIF, THEN et ELSE

IF

SyntaxeIF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
RésultatDépend du type de données des valeurs <then>.
Définition

Teste une série d’expressions et renvoie la valeur <then> pour le premier <test> positif.

Exemple
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

« Si Saison = Été, Sandales est retourné. Sinon, regardez l’expression suivante. Si Saison = Hiver, Bottes est retourné. Si aucune des expressions n’est vraie, Chaussures de sport est retourné. »

Remarques

Voir également IF et IIF.

Utilisé avec les expressions ELSEIF, THEN, ELSE et END

IFNULL

SyntaxeIFNULL(expr1, expr2)
RésultatDépend du type de données des valeurs <expr>.
Définition

Renvoie <expr1> si celle-ci n’est pas nulle, sinon renvoie <expr2>.

Exemple
IFNULL([Assigned Room], "TBD")

« Si le champ Salle assignée n’est pas une valeur nulle, renvoie sa valeur. Si le champ Salle assignée est une valeur nulle, renvoie plutôt TBD. »

Remarques

Comparez avec ISNULL. IFNULL renvoie toujours une valeur. ISNULL renvoie un booléen (vrai ou faux).

Voir également ZN.

IIF

SyntaxeIIF(<test>, <then>, <else>, [<unknown>])
RésultatDépend du type de données des valeurs de l’expression.
DéfinitionVérifie si une condition est remplie (<test>), et renvoie <then>si le test est positif, <else> si le test est négatif, et une valeur facultative pour <unknown> si le test est une valeur nulle. Si la valeur inconnue facultative n’est pas précisée, IIF renvoie une valeur nulle.
Exemple
IIF([Season] = 'Summer', 'Sandals', 'Other footwear')

« Si Saison = Été, Sandales est retourné. Dans le cas contraire, renvoie Autres chaussures »

IIF([Season] = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots', 'Other footwear')
)

« Si Saison = Été, Sandales est retourné. Sinon, regardez l’expression suivante. Si Saison = Hiver, Bottes est retourné. Si aucune n’est vraie, Chaussures de sport est retourné. »

IIF('Season' = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots',
IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')
)
)

« Si Saison = Été, Sandales est retourné. Sinon, regardez l’expression suivante. Si Saison = Hiver, Bottes est retourné. Si aucune des expressions n’est vraie, Chaussures de sport est retourné. »

Remarques

Voir également IF etCASE.

IIF n’a pas d’équivalent à ELSEIF (comme IF) ou aux clauses WHEN répétées (comme CASE). Au lieu de cela, plusieurs tests peuvent être évalués de manière séquentielle en imbriquant des instructions IIF sous la forme de l’élément <unknown>. La première valeur positive (la plus extrême) est renvoyée.

Autrement dit, dans le calcul ci-dessous, le résultat sera Rouge, et non Orange, car l’expression cesse d’être évaluée dès que A=A est évaluée comme étant positif :

IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange', IIF('C' = 'D', 'Yellow', 'Green')))

IN

Syntaxe<expr1> IN <expr2>
RésultatBooléen(vrai ou faux)
DéfinitionRenvoie TRUE si une valeur dans <expr1> correspond à une valeur dans <expr2>.
Exemple
SUM([Cost]) IN (1000, 15, 200)

« La valeur du champ Coût est-elle 1 000, 15 ou 200? »

[Field] IN [Set]

« La valeur du champ est-elle présente dans l’ensemble? »

Remarques

Les valeurs dans <expr2> peuvent être un ensemble, une liste de valeurs littérales ou un champ combiné.

Voir également WHEN.

ISDATE

SyntaxeISDATE(string)
RésultatBooléen(vrai ou faux)
DéfinitionRenvoie la valeur true si une <string> est une date valide. L’expression d’entrée doit être un champ de chaîne (texte).
Exemple
ISDATE("2018-09-22")

« La chaîne 2018-09-22 est-elle une date correctement mise en forme? »

Remarques

Une date sera considérée comme valide en fonction des paramètres régionaux(Le lien s’ouvre dans une nouvelle fenêtre) du système qui évalue le calcul. Par exemple :

Aux États-Unis :

  • ISDATE("2018-09-22") = TRUE
  • ISDATE("2018-22-09") = FALSE

Au Royaume-Uni :

  • ISDATE("2018-09-22") = FALSE
  • ISDATE("2018-22-09") = TRUE

ISNULL

SyntaxeISNULL(expression)
RésultatBooléen(vrai ou faux)
Définition

Renvoie la valeur true si l’<expression> est une valeur nulle (ne contient pas de données valides)

Exemple
ISNULL([Assigned Room])

« Le champ Pièce assignée est-il une valeur nulle? »

Remarques

Comparez avec IFNULL. IFNULL renvoie toujours une valeur. ISNULL renvoie une valeur booléenne.

Voir également ZN.

MAX

SyntaxeMAX(expression) ou MAX(expr1, expr2)
RésultatMême type de données que l’argument, ou NULL  si une partie de l’argument est une valeur nulle.
Définition

Renvoie la valeur maximum des deux arguments, qui doivent être du même type de données.

MAX peut également être appliqué à un seul champ dans une agrégation.

Exemple
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
Remarques

Pour les chaînes

La valeur MAX vient généralement en dernier dans l’ordre alphabétique.

Pour les sources de données de la base de données, la valeur de chaîne MAX est la plus élevée dans la séquence de tri définie par la base de données pour cette colonne.

Pour les dates

Pour les dates, la valeur MAX est la date la plus récente. Si MAX est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si MAX est une comparaison, le résultat conservera la hiérarchie de dates.

Comme agrégation

MAX(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Cette fonction s’affiche en tant que AGG(expression) dans la visualisation.

Comme comparaison

MAX(expr1, expr2) compare les deux valeurs et renvoie une valeur de niveau ligne.

Voir aussi MIN.

MIN

SyntaxeMIN(expression) ou MIN(expr1, expr2)
RésultatMême type de données que l’argument, ou NULL  si une partie de l’argument est une valeur nulle.
Définition

Renvoie la valeur minimale des deux arguments, qui doivent être du même type de données.

MIN peut également être appliqué à un seul champ dans une agrégation.

Exemple
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
Remarques

Pour les chaînes

La valeur MIN vient généralement en premier dans l’ordre alphabétique.

Pour les sources de données de la base de données, la valeur de chaîne MIN est la plus basse dans la séquence de tri définie par la base de données pour cette colonne.

Pour les dates

Pour les dates, la valeur MIN est la date la plus proche. Si MIN est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si MIN est une comparaison, le résultat conservera la hiérarchie de dates.

Comme agrégation

MIN(expression) est une fonction d’agrégation et renvoie un seul résultat agrégé. Cette fonction s’affiche en tant que AGG(expression) dans la visualisation.

Comme comparaison

MIN(expr1, expr2) compare les deux valeurs et renvoie une valeur de niveau ligne.

Voir aussi MAX.

NOT

SyntaxeNOT <expression>
RésultatBooléen(vrai ou faux)
DéfinitionNégation logique entre deux expressions.
Exemple
IF NOT [Season] = "Summer" 
THEN 'Don't wear sandals'
ELSE 'Wear sandals' 
END

« Si Saison ne correspond pas à Été, Ne portez pas de sandales est renvoyé. Dans le cas contraire, Portez des sandales est renvoyé. »

Remarques

Souvent utilisé avec IF et IIF. Voir également AND et OU.

OU

Syntaxe<expr1> OR <expr2>
RésultatBooléen(vrai ou faux)
DéfinitionDisjonction logique entre deux expressions.
Exemple
IF [Season] = "Spring" OR [Season] = "Fall" 
THEN "Sneakers"
END

« Si (Saison = Printemps) ou (Saison = Automne) est une valeur true, Chaussures de sport est retourné. »

Remarques

Souvent utilisé avec IF et IIF. Voir également AND et NOT.

Si l’une des expressions est TRUE, le résultat est TRUE. Si les deux expressions sont FALSE, le résultat est FALSE. Si les deux expressions sont NULL, le résultat est NULL.

Si vous créez un calcul qui affiche le résultat d’une comparaison OR dans une feuille de calcul, Tableau affiche les valeurs TRUE et FALSE. Si vous voulez modifier cela, utilisez la zone de mise en forme dans la boîte de dialogue Mettre en forme.

Remarque : L’opérateur OR utilise l’évaluation de court-circuit. Cela signifie que si la première expression est évaluée comme étant TRUE, la seconde expression n’est pas du tout évaluée. Cela peut être utile si la seconde expression renvoie une erreur lorsque la première expression est TRUE, car dans ce cas-là, la seconde expression n’est jamais évaluée.

THEN

SyntaxeIF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
DéfinitionPartie obligatoire d’une expression IF, ELSEIF, ou CASE, utilisée pour définir le résultat à renvoyer si une valeur ou un test spécifique est true.
Exemple
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

« Si Saison = Été, Sandales est retourné. Sinon, regardez l’expression suivante. Si Saison = Hiver, Bottes est retourné. Si aucune des expressions n’est vraie, Chaussures de sport est retourné. »

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

« Regardez le champ Saison. Si la valeur est Été, Sandales est retourné. Si la valeur est Hiver, Bottes est retourné. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Saison, chaussures de sport est retourné. »

Remarques

Utilisé avec CASE, WHEN, IF, ELSEIF, THEN, ELSE et END

WHEN

SyntaxeCASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
DéfinitionPartie obligatoire d’une expression CASE. Trouve la première <value> correspondant à <expression> et renvoie la valeur <then> correspondante.
Exemple
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

« Regardez le champ Saison. Si la valeur est Été, Sandales est retourné. Si la valeur est Hiver, Bottes est retourné. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Saison, chaussures de sport est retourné. »

Remarques

Utilisé avec les expressions CASE, THEN, ELSE et END.

CASE prend également en charge les constructions de type WHEN IN, par exemple :

CASE <expression> 
WHEN IN <set1> THEN <then1>
WHEN IN <combinedfield> THEN <then2>
...
ELSE <default>
END

Les valeurs auxquelles se compare WHEN IN doivent être un ensemble, une liste de valeurs littérales ou un champ combiné. Voir également IN.

ZN

SyntaxeZN(expression)
RésultatDépend du type de données de l’<expression> ou de la valeur 0.
DéfinitionRenvoie <expression> si celle-ci n’est pas une valeur nulle, sinon renvoie zéro.
Exemple
ZN([Test Grade])

« Si la note de test n’est pas une valeur nulle, renvoie sa valeur. Si la note de test est une valeur nulle, renvoie 0. »

Remarques

La fonction ZN est un cas spécifique de l’expression IFNULL qui renvoie toujours 0 si l’expression est une valeur nulle, au lieu de la valeur spécifiée dans le calcul.

ZN est particulièrement utile lorsqu’on effectue des calculs supplémentaires et qu’une valeur nulle rendrait l’ensemble du calcul nul. Toutefois, il convient d’interpréter ces résultats avec prudence, car une valeur nulle n’est pas toujours synonyme de 0 et peut représenter des données manquantes.

Consultez également l’expression ISNULL.


Remarque : Certains d’entre eux sont en fait des opérateurs logiques et apparaissent en noir et non en bleu. Pour plus d’information, consultez Syntaxe des opérateurs.

Remarque sur les fonctions CASE, IF et IIF

CASE est souvent plus simple à utiliser que les fonctions IF ou IIF. Dans de nombreux cas, IF, IIF et CASE sont interchangeables. Une instruction CASE peut toujours être écrite sous la forme d’une instruction IF, bien que la fonction CASE soit généralement plus concise et facile à comprendre. Cependant, toutes les instructions IF ne peuvent pas être écrites sous forme d’instructions CASE, car chaque fonction ELSEIF peut faire référence à un champ différent.

Conseil : Comparons un exemple en utilisant la même logique pour ces trois fonctions :

CASEIFIIF
CASE [Region]
WHEN 'West' THEN 1
WHEN 'East' THEN 2
WHEN 'South' THEN 3
WHEN 'North' Then 4
ELSE 5
END
IF [Region] = 'West' THEN 1
ELSEIF [Region] = 'East' THEN 2
ELSEIF [Region] = 'South' THEN 3
ELSEIF [Region] = 'North' THEN 4
ELSE 5
END
IIF([Region] = 'West', 1,
IIF([Region] = 'East', 2,
IIF([Region] = 'South', 3,
IIF([Region] = 'North', 4,
5, 0)
)
)
)

La structure CASE est très simple et facile à écrire et à comprendre. Cependant, l’expression (ici, [Zone géographique]) ne peut pas être une opération logique, contrairement à IF ou IIF.

Les valeurs nulles sont traitées de la même manière pour CASE et pour IF.

La structure IF THEN autorise plusieurs clauses ELSEIF, ce qui facilite davantage les évaluations multiples par rapport à IIF.

Traitement des valeurs nulles : tout résultat inconnu (valeur nulle) est traité par la même clause ELSE que les résultats erronés. Ici, toute zone géographique autre que les quatre spécifiées (y compris toute valeur nulle) se verra attribuer une valeur de 5.

La structure IIF traite les résultats inconnus différemment des résultats erronés et a une syntaxe différente de IF. La contrepartie du traitement spécifique des valeurs nulles est l’imbrication, comme indiqué ci-dessus, qui peut être difficile à écrire et à comprendre.

Traitement des valeurs nulles : toute zone géographique sans valeur nulle autre que les quatre spécifiées se verra attribuer une valeur de 5, mais une valeur nulle se verra attribuer un 0.

Remarque : Souvent, vous pouvez utiliser un groupe pour obtenir les mêmes résultats qu’avec une fonction CASE complexe. Testez si une option est plus performante que l’autre.

Exemples

Les fonctions CASE peuvent être utiles pour des scénarios comme la réattribution des alias :

CASE LEFT(DATENAME('weekday',[Order Date]),3)
WHEN 'Sun' THEN 0
WHEN 'Mon' THEN 1
WHEN 'Tue' THEN 2
WHEN 'Wed' THEN 3
WHEN 'Thu' THEN 4
WHEN 'Fri' THEN 5
WHEN 'Sat' THEN 6
END

ou autoriser l’utilisateur final à sélectionner la mesure à afficher dans un graphique lorsqu’elle est utilisée avec un paramètre(Le lien s’ouvre dans une nouvelle fenêtre) :

CASE [Choose a Measure]
WHEN "Sales" THEN SUM([Sales])
WHEN "Profit" THEN AVG([Profit])
WHEN "Quantity" THEN COUNT([Quantity])
WHEN "Shipping Cost" THEN MEDIAN([Shipping Cost])
END

Créer un calcul logique

Suivez les étapes ci-dessous pour apprendre à créer un calcul logique.

  1. Dans Tableau Desktop, connectez-vous à la source de données enregistrée Exemple - Hypermarché qui est fournie avec Tableau.
  2. Accédez à une feuille de calcul.
  3. Depuis le volet Données, faites glisser State (État) vers l’étagère Lignes.
  4. Depuis le volet Données, faites glisser Category (Catégorie) vers l’étagère Lignes et placez-le à droite de State.
  5. Dans le volet Données, faites glisser Sales (Ventes) vers l’étagère Colonnes.
  6. Sélectionnez Analyse > Créer un champ calculé.
  7. Dans l’éditeur de calcul qui s’ouvre, procédez comme suit :
    • Nommez le champ calculé KPI.
    • Entrez la formule suivante :
      SUM([Profit]) > 0

      Ce calcul vérifie rapidement si un membre est supérieur à zéro. Si tel est le cas, renvoie la valeur True. Sinon, renvoie la valeur False.

    • Lorsque vous avez terminé, cliquez sur OK.
  8. Le nouveau champ calculé apparaît sous Mesures dans le volet Données. Comme vos autres champs, vous pouvez l’utiliser dans une ou plusieurs visualisations.

  9. Depuis le volet Données, faites glisser KPI vers Couleur sur la fiche Repères.

    Vous pouvez maintenant voir les catégories qui perdent de l’argent dans chaque État.

Voir également

Visualiser les KPI

Fonctions dans Tableau

Fonctions de Tableau (par catégorie)

Fonctions de Tableau (par ordre alphabétique)

Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!