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éfinition | Conjonction logique entre deux expressions. (Si les deux expressions sont définies sur vrai, le test logique renvoie un résultat positif.) |
Résultat | Booléen(vrai ou faux) |
Exemple | IF [Season] = "Spring" AND "[Season] = "Fall" « 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 Si vous créez un calcul dans lequel le résultat d’une comparaison Remarque : L’opérateur |
CASE
Syntaxe | CASE <expression>
|
Résultat | Dépend du type de données des valeurs <then> . |
Définition | Évalue l’ |
Exemple |
« 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 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
Syntaxe | CASE <expression>
|
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' CASE [Season] |
Remarques | Utilisé avec les expressions CASE, WHEN, IF, ELSEIF, THEN et END
|
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' |
Remarques | Utilisé avec les expressions IF, THEN, ELSE et END
Contrairement à |
END
Définition | Utilisé pour fermer une expression IF ou CASE . |
Exemple | IF [Season] = "Summer" THEN 'Sandals' « 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] « 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
Syntaxe | IF <test1> THEN <then1> |
Résultat | Dépend du type de données des valeurs <then> . |
Définition | Teste une série d’expressions et renvoie la valeur |
Exemple | IF [Season] = "Summer" THEN 'Sandals' « 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 |
IFNULL
Syntaxe | IFNULL(expr1, expr2) |
Résultat | Dépend du type de données des valeurs <expr> . |
Définition | Renvoie |
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. Voir également ZN. |
IIF
Syntaxe | IIF(<test>, <then>, <else>, [<unknown>]) |
Résultat | Dépend du type de données des valeurs de l’expression. |
Définition | Vé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', « 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', « 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 |
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 :
|
IN
Syntaxe | <expr1> IN <expr2> |
Résultat | Booléen(vrai ou faux) |
Définition | Renvoie 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 Voir également WHEN. |
ISDATE
Syntaxe | ISDATE(string) |
Résultat | Booléen(vrai ou faux) |
Définition | Renvoie 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 :
Au Royaume-Uni :
|
ISNULL
Syntaxe | ISNULL(expression) |
Résultat | Booléen(vrai ou faux) |
Définition | Renvoie la valeur true si l’ |
Exemple | ISNULL([Assigned Room]) « Le champ Pièce assignée est-il une valeur nulle? » |
Remarques | Comparez avec IFNULL. Voir également ZN. |
MAX
Syntaxe | MAX(expression) ou MAX(expr1, expr2) |
Résultat | Mê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.
|
Exemple | MAX(4,7) = 7 |
Remarques | Pour les chaînes La valeur Pour les sources de données de la base de données, la valeur de chaîne Pour les dates Pour les dates, la valeur Comme agrégation
Comme comparaison
Voir aussi |
MIN
Syntaxe | MIN(expression) ou MIN(expr1, expr2) |
Résultat | Mê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.
|
Exemple | MIN(4,7) = 4 |
Remarques | Pour les chaînes La valeur Pour les sources de données de la base de données, la valeur de chaîne Pour les dates Pour les dates, la valeur Comme agrégation
Comme comparaison
Voir aussi |
NOT
Syntaxe | NOT <expression> |
Résultat | Booléen(vrai ou faux) |
Définition | Négation logique entre deux expressions. |
Exemple | IF NOT [Season] = "Summer" « Si Saison ne correspond pas à Été, retourne Ne portez pas de sandales. Dans le cas contraire, retourne Portez des sandales. » |
Remarques |
OU
Syntaxe | <expr1> OR <expr2> |
Résultat | Booléen(vrai ou faux) |
Définition | Disjonction logique entre deux expressions. |
Exemple | IF [Season] = "Spring" OR [Season] = "Fall" « 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 Si vous créez un calcul qui affiche le résultat d’une comparaison Remarque : L’opérateur |
THEN
Syntaxe | IF <test1> THEN <then1>
|
Définition | Partie 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' « 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] « 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 |
WHEN
Syntaxe | CASE <expression>
|
Définition | Partie obligatoire d’une expression CASE . Trouve la première <value> correspondant à <expression> et renvoie la valeur <then> correspondante. |
Exemple | CASE [Season] « 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 <expression> Les valeurs auxquelles se compare |
ZN
Syntaxe | ZN(expression) |
Résultat | Dépend du type de données de l’<expression> ou de la valeur 0. |
Définition | Renvoie <expression> si la valeur n’est pas 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
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.
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 :
CASE | IF | IIF |
CASE [Region] | IF [Region] = 'West' THEN 1 | IIF([Region] = 'West', 1, |
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.
- Dans Tableau Desktop, connectez-vous à la source de données enregistrée Exemple - Hypermarché qui est fournie avec Tableau.
- Accédez à une feuille de calcul.
- Depuis le volet Données, faites glisser State (État) vers l’étagère Lignes.
- Depuis le volet Données, faites glisser Category (Catégorie) vers l’étagère Lignes et placez-le à droite de State.
- Dans le volet Données, faites glisser Sales (Ventes) vers l’étagère Colonnes.
- Sélectionnez Analyse > Créer un champ calculé.
- 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.
- 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.
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.