---
schema_version: "1"
id: 812d158d0d6905fe5626c6ec056c05a94dcc478ab787c5e145041d1fe16a2f97
title: Fonctions logiques
collection: tableau
version: next
locale: fr-fr
portal_url: https://docs.salesforce.com/tableau/next/fr-fr/public/desktop/functions_functions_logical.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/fr-fr/functions_functions_logical.htm
source_site: help.tableau.com
content_type: documentation
content_hash: a8313f89559b92bb851a4721da4b87a62867048b1a2aaf55eb5661a79d90975e
description: Reference for Tableau logical functions such as IF, CASE, and AND.
---
[Passer au contenu principal](#main-content)

# 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 permettent de déterminer si une certaine condition est vraie ou fausse (logique booléenne). Par exemple, vous pouvez souhaiter catégoriser 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 et opérateurs logiques dans Tableau

### AND

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code></td></tr><tr><td>Définition</td><td>Conjonction logique entre deux expressions. (Si les deux côtés sont vrais, le test logique renvoie la valeur «&nbsp;true ».)</td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Exemple</td><td><pre>IF [Season] = "Spring" AND "[Season] = "Fall" <br>THEN "It's the apocalypse and footwear doesn't matter" <br>END</pre><p><i>«&nbsp;Si les deux expressions (Season = Spring) et (Season = Fall) sont vraies simultanément, renvoyer&nbsp;It’s the apocalypse and footwear doesn’t matter&nbsp;».</i></p></td></tr><tr><td>Remarques</td><td><p>Souvent utilisé avec <a href="#IF" class="xref">IF</a> et <a href="#IIF" class="xref">IIF</a>. Voir également <a href="#NOT" class="xref">NOT</a> et <a href="#OR" class="xref">OU</a>.</p><p>Si les deux expressions sont <code>TRUE</code> (c’est-à-dire ni <code>FALSE</code> ni <code>NULL</code>), le résultat est <code>TRUE</code>. Si l’une des expressions est <code>NULL</code>, le résultat est <code>NULL</code>. Dans tous les autres cas, le résultat obtenu est <code>FALSE</code>.</p><p>Si vous créez un calcul dans lequel le résultat d’une comparaison <code>AND</code> s’affiche dans une feuille de calcul, Tableau affiche les valeurs <code>TRUE</code> et <code>FALSE</code>. Si vous voulez modifier cela, utilisez la zone de mise en forme dans la boîte de dialogue Mettre en forme.</p><p class="note"><b>Remarque</b>&nbsp;: l’opérateur <code>AND</code> utilise l’<i>évaluation en circuit court</i>. Cela signifie que si la première expression est évaluée comme étant <code>FALSE</code>, 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 <code>FALSE</code>, car dans ce cas-là, la seconde expression n’est jamais évaluée.</p></td></tr></tbody></table>

### CASE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code><b>CASE</b> &lt;expression&gt; 
                        <br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
                        <br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
                        <br>...
                        <br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>Résultat</td><td>Dépend du type de données des valeurs <code>&lt;then&gt;</code>.</td></tr><tr><td>Définition</td><td><p>Évalue l’<code>expression</code> et la compare aux options spécifiées (<code>&lt;value1&gt;</code>, <code>&lt;value2&gt;</code>, etc.). Lorsqu’une <code>value</code> correspondant à l’expression est rencontrée, CASE&nbsp;renvoie la valeur de <code>return</code> correspondante. En l’absence de correspondance, la valeur par défaut est renvoyée. S’il n’y pas de valeur par défaut et qu’aucune valeur ne correspond, une valeur null est renvoyée.</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve"><code><b>CASE</b> [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</code></pre><p><i>«&nbsp;Examiner le champ Season. Si la valeur est Summer, renvoyer Sandals. Si la valeur est Winter, renvoyer Boots. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Season, renvoyer Sneakers.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Voir également <a href="#IF" class="xref">IF</a> et <a href="#IIF" class="xref">IIF</a>.</p><p>Utilisé avec <a href="#WHEN" class="xref">WHEN</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> et <a href="#END" class="xref">END</a>.</p><blockquote><p>[!TIP]</p><p><b>Conseil</b>&nbsp;: dans de nombreux cas, vous pouvez utiliser un groupe pour obtenir les mêmes résultats qu’une fonction CASE compliquée, ou utiliser CASE pour remplacer la fonctionnalité de regroupement native, comme dans l’exemple précédent. Vous voudrez peut-être tester quelle fonction est la plus performante pour votre scénario.</p></blockquote></td></tr></tbody></table>

### ELSE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>CASE &lt;expression&gt; 
							<br>WHEN &lt;value1&gt; THEN &lt;then1&gt; 
							<br>WHEN &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[<b>ELSE</b> &lt;default&gt;]<br>END</code></td></tr><tr><td>Définition</td><td>Composant facultatif d’une expression <code>IF</code>&nbsp;ou <code>CASE</code> servant à spécifier une valeur par défaut à renvoyer si aucune des expressions testées n’est vraie.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br><b>ELSE</b>&nbsp;'Sneakers'&nbsp;<br>END</pre><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br><b>ELSE</b> 'Sneakers' <br>END</pre></td></tr><tr><td>Remarques</td><td><p>Utilisé avec <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a> et <a href="#END" class="xref">END</a></p><p><code>ELSE</code> est facultatif avec <code>CASE</code> et <code>IF</code>. Dans un calcul où <code>ELSE</code> n’est pas précisé, si aucun des <code>&lt;test&gt;</code> n’est vrai, le calcul global renvoit une valeur null.</p><p><code>ELSE</code> ne requiert pas de condition (telle que <code>[Season] = "Winter"</code>) et peut être considéré comme une forme de traitement des valeurs null.</p></td></tr></tbody></table>

### ELSEIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code></td></tr><tr><td>Définition</td><td>Composant facultatif d’une expression <code>IF</code>&nbsp;servant à spécifier des conditions supplémentaires au-delà du IF initial.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Summer" THEN 'Sandals' <br><b>ELSEIF</b> [Season] = "Winter" THEN 'Boots' <br><b>ELSEIF</b> [Season] = "Spring" THEN 'Sneakers' <br><b>ELSEIF</b> [Season] = "Autumn" THEN 'Sneakers'<br>ELSE 'Bare feet' <br>END</pre></td></tr><tr><td>Remarques</td><td><p>Utilisé avec <a href="#IF" class="xref">IF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> et <a href="#END" class="xref">END</a></p><p><code>ELSEIF</code> peut être considéré comme une clause <code>IF</code> supplémentaire. <code>ELSEIF</code> est facultatif et peut être répété plusieurs fois.</p><p>À la différence de <code>ELSE</code>, <code>ELSEIF</code> requiert une condition (telle que <code>[Season] = "Winter"</code>).</p></td></tr></tbody></table>

### END

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Définition</td><td>Utilisé pour fermer une expression <code>IF</code>&nbsp;ou <code>CASE</code>.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Sinon, examiner l’expression suivante. Si Season = Winter, renvoyer Boots. Si aucune des expressions n’est vraie, renvoyer Sneakers.&nbsp;»</i></p><pre>CASE [Season] <br>WHEN 'Summer' THEN 'Sandals' <br>WHEN 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br><b>END</b></pre><p><i><i>«&nbsp;Examiner le champ Season. Si la valeur est Summer, renvoyer Sandals. Si la valeur est Winter, renvoyer Boots. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Season, renvoyer Sneakers.&nbsp;»</i></i></p></td></tr><tr><td>Remarques</td><td><p>Utilisé avec <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a> et <a href="#ELSE" class="xref">ELSE</a>.</p></td></tr></tbody></table>

### IF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code><b>IF</b> &lt;test1&gt; THEN &lt;then1&gt; <br>[ELSEIF &lt;test2&gt; THEN &lt;then2&gt;...]<br>[ELSE &lt;default&gt;] <br>END</code></td></tr><tr><td>Résultat</td><td>Dépend du type de données des valeurs <code>&lt;then&gt;</code>.</td></tr><tr><td>Définition</td><td><p>Teste une série d’expressions et renvoie la valeur <code>&lt;then&gt;</code> pour le premier <code>&lt;test&gt;</code> vrai.</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;THEN&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;THEN&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br><b>END</b></pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Sinon, examiner l’expression suivante. Si Season = Winter, renvoyer Boots. Si aucune des expressions n’est vraie, renvoyer Sneakers.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Voir également <a href="#IF" class="xref">IF</a> et <a href="#IIF" class="xref">IIF</a>.</p><p>Utilisé avec <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> et <a href="#END" class="xref">END</a></p></td></tr></tbody></table>

### IFNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>IFNULL(expr1, expr2)</code></td></tr><tr><td>Résultat</td><td>Dépend du type de données des valeurs <code>&lt;expr&gt;</code>.</td></tr><tr><td>Définition</td><td><p>Renvoie <code>&lt;expr1&gt;</code> si celle-ci n’est pas une valeur null, sinon renvoie <code>&lt;expr2&gt;</code>.</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre><p><i>«&nbsp;Si le champ Assigned Room n’est pas une valeur null, renvoyer sa valeur. Si le champ Assigned Room est une valeur null, renvoyer TBD à la place.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Comparer avec <a href="#ISNULL" class="xref">ISNULL</a>. <code>IFNULL</code> renvoie toujours une valeur. <code>ISNULL</code>&nbsp;renvoie une valeur booléenne (vrai ou faux).</p><p>Voir également <a href="#ZN" class="xref">ZN</a>.</p></td></tr></tbody></table>

### IIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code></td></tr><tr><td>Résultat</td><td>Dépend du type de données des valeurs dans l’expression.</td></tr><tr><td>Définition</td><td>Vérifie si une condition est remplie (<code>&lt;test&gt;</code>), et renvoie <code>&lt;then&gt;</code> si le test est vrai, <code>&lt;else&gt;</code>&nbsp;si le test est faux, et une valeur facultative pour <code>&lt;unknown&gt;</code> si le test est nul. Si l’inconnue facultative n’est pas spécifiée, <code>IIF</code> renvoie une valeur null.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Dans le cas contraire, renvoyer Other footwear&nbsp;»</i></p><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  'Other footwear')<br>)</pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Sinon, examiner l’expression suivante. Si Season = Winter, renvoyer Boots. Si ni l’un ni l’autre n’est vrai, renvoyer Sneakers."</i></p><pre xml:space="preserve">IIF('Season' = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  <br>      IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')<br>   )<br>)</pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Sinon, examiner l’expression suivante. Si Season = Winter, renvoyer Boots. Si aucune des expressions n’est vraie, renvoyer Sneakers.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Voir également <a href="#IF" class="xref">IF</a> et <a href="#CASE" class="xref">CASE</a>.</p><p><code>IIF</code> n’a pas d’équivalent à <code>ELSEIF</code> (comme <code>IF</code>) ou des clauses répétées <code>WHEN</code> (comme <code>CASE</code>). Au lieu de cela, plusieurs tests peuvent être évalués de manière séquentielle par imbrication d’instructions <code>IIF</code> comme l’élément <code>&lt;unknown&gt;</code>. La première valeur «&nbsp;true&nbsp;» (la plus externe) est renvoyée.</p><p>Cela signifie que, 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é comme vrai&nbsp;:</p><p><code>IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange',  IIF('C' = 'D', 'Yellow', 'Green')))</code></p></td></tr></tbody></table>

### IN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code></td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Définition</td><td>Renvoie <code>TRUE</code> si une valeur dans <code>&lt;expr1&gt;</code> correspond à une valeur dans <code>&lt;expr2&gt;</code>.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre><p><i>«&nbsp;La valeur du champ Cost est-elle 1000, 15 ou 200&nbsp;?&nbsp;»</i></p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre><p><i>«&nbsp;La valeur du champ est-elle présente dans l’ensemble&nbsp;? »</i></p></td></tr><tr><td>Remarques</td><td><p>Les valeurs dans <code>&lt;expr2&gt;</code> peuvent être un ensemble, une liste de valeurs littérales ou un champ combiné.</p><p>Voir également <a href="#WHEN" class="xref">WHEN</a>.</p></td></tr></tbody></table>

### ISDATE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>ISDATE(string)</code></td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Définition</td><td>Renvoie la valeur true si une <code>&lt;string&gt;</code> donnée est une date valide. L’expression d’entrée doit être un champ de chaîne (texte).</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">ISDATE("2018-09-22")</pre><p><i>«&nbsp;La chaîne 2018-09-22 est-elle une date correctement formatée&nbsp;?&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Ce qui est considéré comme une date valide dépend des <a href="https://help.tableau.com/current/server/fr-fr/lang_intro.htm" target="_blank">paramètres régionaux</a> du système évaluant le calcul. Par exemple&nbsp;:</p><p>Aux États-Unis&nbsp;:</p><ul><li><code>ISDATE("2018-09-22") = TRUE</code></li><li><code>ISDATE("2018-22-09") = FALSE</code></li></ul><p>Au Royaume-Uni&nbsp;: </p><ul><li><code>ISDATE("2018-09-22") = FALSE</code></li><li><code>ISDATE("2018-22-09") = TRUE</code></li></ul><p></p></td></tr></tbody></table>

### ISNULL

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>ISNULL(expression)</code></td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Définition</td><td><p>Renvoie la valeur true si l’<code>&lt;expression&gt;</code> est NULL (ne contient pas de données valides).</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">ISNULL([Assigned Room])</pre><p><i>«&nbsp;Le champ Assigned Room est-il une valeur null&nbsp;?&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Comparer avec <a href="#IFNULL" class="xref">IFNULL</a>. <code>IFNULL</code> renvoie toujours une valeur. <code>ISNULL</code> renvoie une valeur booléenne.</p><p>Voir également <a href="#ZN" class="xref">ZN</a>.</p></td></tr></tbody></table>

### MAX

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>MAX(expression)</code> ou <code>MAX(expr1, expr2)</code></td></tr><tr><td>Résultat</td><td>Même type de données que l’argument, ou <code>NULL&nbsp;</code>si une partie de l’argument est une valeur null.</td></tr><tr><td>Définition</td><td><p>Renvoie la valeur maximum des deux arguments, qui doivent être du même type de données.</p><p><code>MAX</code> peut également être appliqué à un seul champ en tant qu’agrégation.</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">MAX(4,7) = 7<br>MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# <br>MAX([Name]) = "Zander"</pre></td></tr><tr><td>Remarques</td><td><p><b>Pour les chaînes</b></p><p><code>MAX</code> est généralement la valeur qui vient en dernier dans l’ordre alphabétique.</p><p class="note">Pour les sources de données de base de données, la valeur de la chaîne <code>MAX</code> est la valeur la plus élevée dans la séquence de tri définie par la base de données pour cette colonne.</p><p><b>Pour les dates</b></p><p>Pour les dates, <code>MAX</code> est la date la plus récente. Si <code>MAX</code> est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si <code>MAX</code> est une comparaison, le résultat conservera la hiérarchie de dates.</p><p><b>En tant qu’agrégation</b></p><p><code>MAX(expression)</code> est une fonction d’agrégation et renvoie un seul résultat agrégé. Elle s’affiche sous la forme <code>AGG(expression)</code> dans la visualisation.</p><p><b>En tant que comparaison</b></p><p><code>MAX(expr1, expr2)</code> compare les deux valeurs et renvoie une valeur au niveau des lignes.</p><p>Voir également <code><a href="#MIN" class="xref">MIN</a></code>.</p></td></tr></tbody></table>

### MIN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>MIN(expression)</code> ou <code>MIN(expr1, expr2)</code></td></tr><tr><td>Résultat</td><td>Même type de données que l’argument, ou <code>NULL&nbsp;</code>si une partie de l’argument est une valeur null.</td></tr><tr><td>Définition</td><td><p>Renvoie la valeur minimum des deux arguments, qui doivent être du même type de données.</p><p><code>MIN </code> peut également être appliqué à un seul champ en tant qu’agrégation.</p></td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">MIN(4,7) = 4<br>MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#<br>MIN([Name]) = "Abebi"</pre></td></tr><tr><td>Remarques</td><td><p><b>Pour les chaînes</b></p><p><code>MIN</code> est généralement la valeur qui vient en premier dans l’ordre alphabétique.</p><p class="note">Pour les sources de données de base de données, la valeur de la chaîne <code>MIN</code> est la valeur la plus faible dans la séquence de tri définie par la base de données pour cette colonne.</p><p><b>Pour les dates</b></p><p>Pour les dates, <code>MIN</code> est la date la plus récente. Si <code>MIN</code> est une agrégation, le résultat n’aura pas de hiérarchie de dates. Si <code>MIN</code> est une comparaison, le résultat conservera la hiérarchie de dates.</p><p><b>En tant qu’agrégation</b></p><p><code>MIN(expression)</code> est une fonction d’agrégation et renvoie un seul résultat agrégé. Elle s’affiche sous la forme <code>AGG(expression)</code> dans la visualisation.</p><p><b>En tant que comparaison</b></p><p><code>MIN(expr1, expr2)</code> compare les deux valeurs et renvoie une valeur au niveau des lignes.</p><p>Voir également <code><a href="#MAX" class="xref">MAX</a></code>.</p></td></tr></tbody></table>

### NOT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>NOT&nbsp;&lt;expression&gt;</code></td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Définition</td><td>Négation logique entre deux expressions.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF <b>NOT</b> [Season] = "Summer" <br>THEN 'Don't wear sandals' <br>ELSE&nbsp;'Wear sandals'&nbsp;<br><b>END</b></pre><p><i>«&nbsp;Si Season est différent de Summer, renvoyer Don’t wear sandals. Sinon, renvoyer Wear sandals.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Souvent utilisé avec <a href="#IF" class="xref">IF</a> et <a href="#IIF" class="xref">IIF</a>. Voir également <a href="#top" class="xref">AND</a> et <a href="#OR" class="xref">OU</a>.</p></td></tr></tbody></table>

### OU

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code></td></tr><tr><td>Résultat</td><td>Booléen (Vrai ou Faux)</td></tr><tr><td>Définition</td><td>Disjonction logique entre deux expressions.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Spring"&nbsp;<b>OR</b>&nbsp;[Season] = "Fall" <br>THEN&nbsp;"Sneakers" <br>END</pre><p><i>«&nbsp;Si (Season&nbsp;=&nbsp;Spring)&nbsp;ou (Season&nbsp;=&nbsp;Fall)&nbsp;est vrai, renvoyer Sneakers.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Souvent utilisé avec <a href="#IF" class="xref">IF</a> et <a href="#IIF" class="xref">IIF</a>. Voir également <a href="#top" class="xref">AND</a> et <a href="#NOT" class="xref">NOT</a>.</p><p>Si l’une des expressions est <code>TRUE</code>, le résultat est <code>TRUE</code>. Si les deux expressions sont <code>FALSE</code>, le résultat est <code>FALSE</code>. Si les deux expressions sont <code>NULL</code>, le résultat est <code>NULL</code>.</p><p>Si vous créez un calcul qui affiche le résultat d’une comparaison <code>OR</code> 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.</p><p class="note"><b>Remarque</b>&nbsp;: l’opérateur <code>OR</code> utilise l’<em>évaluation en circuit court</em>. Cela signifie que si la première expression est évaluée comme étant <code>TRUE</code>, 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 <code>TRUE</code>, car dans ce cas-là, la seconde expression n’est jamais évaluée.</p></td></tr></tbody></table>

### THEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>IF &lt;test1&gt; <b>THEN</b> &lt;then1&gt; 
							<br>[ELSEIF &lt;test2&gt; <b>THEN</b> &lt;then2&gt;...]
							<br>[ELSE &lt;default&gt;] 
						<br>END</code></td></tr><tr><td>Définition</td><td>Une partie obligatoire d’une expression <code>IF</code>, <code>ELSEIF</code> ou <code>CASE</code>, utilisée pour définir le résultat à renvoyer si une valeur ou un test spécifique est «&nbsp;true&nbsp;».</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">IF [Season] = "Summer"&nbsp;<b>THEN</b>&nbsp;'Sandals' <br>ELSEIF&nbsp;[Season] = "Winter"&nbsp;<b>THEN</b>&nbsp;'Boots' <br>ELSE&nbsp;'Sneakers'&nbsp;<br>END</pre><p><i>«&nbsp;Si Season&nbsp;=&nbsp;Summer, renvoyer Sandals. Sinon, examiner l’expression suivante. Si Season = Winter, renvoyer Boots. Si aucune des expressions n’est vraie, renvoyer Sneakers.&nbsp;»</i></p><pre>CASE [Season] <br>WHEN 'Summer' <b>THEN</b> 'Sandals' <br>WHEN 'Winter' <b>THEN</b> 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i><i>«&nbsp;Examiner le champ Season. Si la valeur est Summer, renvoyer Sandals. Si la valeur est Winter, renvoyer Boots. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Season, renvoyer Sneakers.&nbsp;»</i></i></p></td></tr><tr><td>Remarques</td><td><p>Utilisé avec <a href="#CASE" class="xref">CASE</a>, <a href="#WHEN" class="xref">WHEN</a>, <a href="#IF" class="xref">IF</a>, <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> et <a href="#END" class="xref">END</a></p></td></tr></tbody></table>

### WHEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>CASE &lt;expression&gt; 
							<br><b>WHEN</b> &lt;value1&gt; THEN &lt;then1&gt; 
							<br><b>WHEN</b> &lt;value2&gt; THEN &lt;then2&gt; 
							<br>...
						<br>[ELSE &lt;default&gt;]<br>END</code></td></tr><tr><td>Définition</td><td>Une partie obligatoire d’une expression <code>CASE</code>. Trouve la première <code>&lt;value&gt;</code> correspondant à <code>&lt;expression&gt;</code> et renvoie la valeur <code>&lt;then&gt;</code> correspondante.</td></tr><tr><td>Exemple</td><td><pre>CASE [Season] <br><b>WHEN</b> 'Summer' THEN 'Sandals' <br><b>WHEN</b> 'Winter' THEN 'Boots' <br>ELSE 'Sneakers' <br>END</pre><p><i>«&nbsp;Examiner le champ Season. Si la valeur est Summer, renvoyer Sandals. Si la valeur est Winter, renvoyer Boots. Si aucune des options du calcul ne correspond à ce qui est indiqué dans le champ Season, renvoyer Sneakers.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p>Utilisé avec <a href="#CASE" class="xref">CASE</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> et <a href="#END" class="xref">END</a>.</p><p><code>CASE</code> prend également en charge la construction <code>WHEN IN</code>, par exemple&nbsp;:</p><pre xml:space="preserve">CASE &lt;expression&gt; <br><b>WHEN IN</b> &lt;set1&gt; THEN &lt;then1&gt; <br><b>WHEN IN</b> &lt;combinedfield&gt; THEN &lt;then2&gt; <br>... <br>ELSE &lt;default&gt; <br>END</pre><p>Les valeurs de comparaison pour <code>WHEN IN</code> peuvent être un ensemble, une liste d’expressions littérales ou un champ combiné. Voir également <a href="#IN" class="xref">IN</a>.</p></td></tr></tbody></table>

### ZN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Syntaxe</td><td><code>ZN(expression)</code></td></tr><tr><td>Résultat</td><td>Dépend du type de données de l’<code>&lt;expression&gt;</code>, ou 0.</td></tr><tr><td>Définition</td><td>Renvoie &lt;expression&gt; si celle-ci n’est pas nulle, sinon renvoie zéro.</td></tr><tr><td>Exemple</td><td><pre xml:space="preserve">ZN([Test Grade])</pre><p><i>«&nbsp;Si la note du test n’est pas une valeur null, renvoyer sa valeur. Si la note du test est une valeur null, renvoyer 0.&nbsp;»</i></p></td></tr><tr><td>Remarques</td><td><p><code>ZN</code> est un cas spécialisé de <a href="#IFNULL" class="xref">IFNULL</a> où l’alternative, si l’expression est une valeur null, est toujours 0 plutôt que d’être spécifiée dans le calcul.</p><p><code>ZN</code> est particulièrement utile lors de l’exécution de calculs supplémentaires et une valeur null rendrait l’ensemble du calcul nul. Cependant, soyez prudent en interprétant ces résultats car une valeur null n’est pas toujours synonyme de 0 et pourrait représenter des données manquantes.</p><p>Voir également <a href="#ISNULL" class="xref">ISNULL</a>.</p></td></tr></tbody></table>  

**Remarque** : certains d’entre eux sont en fait des opérateurs logiques et apparaissent en noir, et non en bleu. Pour plus d’informations, consultez [Syntaxe des opérateurs](https://help.tableau.com/v0.0/public/desktop/fr-fr/functions_operators.htm#Operators).

Remarque sur CASE, IF et IIF

CASE est souvent plus simple à utiliser que IF ou IIF. Dans de nombreux cas, IF, IIF et CASE peuvent être utilisés de manière interchangeable. Même si elle est généralement plus concise et plus facile à comprendre, une instruction CASE peut toujours être réécrite sous la forme d’une instruction IF. Par contre, toutes les instructions IF ne peuvent pas être écrites sous forme d’instructions CASE, car chaque ELSEIF peut faire référence à un champ différent.

**Conseil** : prenons un exemple de comparaison en utilisant la même logique pour ces trois fonctions :  

<table style="width: 100%;" class="table--plain"><colgroup><col style="width: 33%;"><col style="width: 33%;"><col></colgroup><tbody><tr><td>CASE</td><td>IF</td><td>IIF</td></tr><tr><td><pre>CASE [Region]<br>WHEN 'West' THEN 1<br>WHEN 'East' THEN 2<br>WHEN 'South' THEN 3<br>WHEN 'North' Then 4<br>ELSE 5<br>END</pre></td><td><pre>IF [Region] = 'West' THEN 1<br>ELSEIF [Region] = 'East' THEN 2<br>ELSEIF [Region] = 'South' THEN 3<br>ELSEIF [Region] = 'North' THEN 4<br>ELSE 5<br>END</pre></td><td><pre>IIF([Region] = 'West', 1,<br> IIF([Region] = 'East', 2,<br>  IIF([Region] = 'South', 3,<br>   IIF([Region] = 'North', 4,<br>   5, 0)<br>  )<br> )<br>)</pre></td></tr><tr><td><p>La structure CASE est très simple et aussi facile à écrire qu’à comprendre. Par contre, l’expression (ici, [Region]) ne peut pas être une opération logique, à la différence de IF ou IIF.</p><p>Les valeurs null sont traitées de la même manière pour CASE que pour IF.</p></td><td><p>La structure IF&nbsp;THEN&nbsp;autorise plusieurs clauses ELSEIF, ce qui rend les évaluations multiples beaucoup plus faciles qu’avec IIF.</p><p><b>Gestion des valeurs null</b>&nbsp;: tous les résultats inconnus (nuls) sont traités par la même clause ELSE que les résultats «&nbsp;false&nbsp;». Ici, toute région autre que les quatre spécifiées (y compris une valeur null) se verra attribuer une valeur de&nbsp;5.</p></td><td><p>La structure IIF gère les résultats inconnus différemment des résultats «&nbsp;false&nbsp;» et a une syntaxe différente de celle de IF. Le compromis pour la gestion spécifique des valeurs null est l’imbrication (comme ci-dessus), qui peut s’avérer difficile à écrire et à comprendre.</p><p><b>Gestion des valeurs null</b>&nbsp;: toute région non nulle autre que les quatre spécifiées se verra attribuer une valeur de 5, mais une valeur null se verra attribuer un 0.</p></td></tr></tbody></table>

**Remarque** : dans de nombreux cas, vous pouvez utiliser un groupe pour obtenir les mêmes résultats qu’avec une fonction CASE complexe. Faites des tests pour voir si une option est plus performante que l’autre.

### Exemples

Les fonctions CASE peuvent être utiles dans certains cas tels que le re-aliasing :

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 pour donner à l’utilisateur final la possibilité de sélectionner la mesure à afficher dans un graphique lorsqu’elle est utilisée avec un [paramètre](https://www.tableau.com/fr-fr/about/blog/2015/11/using-parameter-change-fields-45866):

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 **Exemple - Hypermarché** enregistrée 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**.

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.
    
    ![Fonction logique appliquée à un graphique à barres pour mettre en évidence les catégories de produits qui perdent de l’argent dans chaque État.](/tableau/next/fr-fr/public/desktop/fr-fr/Img/logicalfunctions1.png)

## Consultez également

[Visualiser les KPI](https://help.tableau.com/v0.0/public/desktop/fr-fr/kpi.htm)

[Fonctions dans Tableau](https://help.tableau.com/v0.0/public/desktop/fr-fr/functions.htm)

[Fonctions de Tableau (par catégorie)](https://help.tableau.com/v0.0/public/desktop/fr-fr/functions_all_categories.htm)

[Fonctions de Tableau (par ordre alphabétique)](https://help.tableau.com/v0.0/public/desktop/fr-fr/functions_all_alphabetical.htm)