---
schema_version: "1"
id: e487e2cf1efa552579ea510fd58eb207aec15ce59119fcadd075235a4b9dd92d
title: Funzioni logiche
collection: tableau
version: next
locale: it-it
portal_url: https://docs.salesforce.com/tableau/next/it-it/pro/desktop/functions_functions_logical.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/it-it/functions_functions_logical.htm
source_site: help.tableau.com
content_type: documentation
content_hash: b413c434d8637215e2a5ce0892964752b2dd0d8ba3ba59f93131595fa7182466
description: Reference for Tableau logical functions such as IF, CASE, and AND.
---
[Passa al contenuto principale](#main-content)

# Funzioni logiche

Questo articolo illustra le funzioni logiche e i relativi utilizzi in Tableau. Mostra anche come creare un calcolo logico attraverso un esempio.

## Perché utilizzare i calcoli logici

I calcoli logici ti consentono di determinare se una determinata condizione è vera o falsa (logica booleana). Ad esempio, potresti voler classificare i valori in base a determinati limiti.

Un calcolo logico potrebbe presentarsi in questo modo:

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

## Funzioni logiche e operatori disponibili in Tableau

### AND

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</td><td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code></td></tr><tr><td>Definizione</td><td>Esegue una congiunzione logica su due espressioni. Se entrambi i lati sono True, il test logico restituisce True.</td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Esempio</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>“Se sia (Season = Spring) e (Season = Fall) sono contemporaneamente True, viene restituito It’s the apocalypse and footwear doesn’t matter”.</i></p></td></tr><tr><td>Note</td><td><p>Spesso usato con <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Vedi anche <a href="#NOT" class="xref">NOT</a> e <a href="#OR" class="xref">OR</a>.</p><p>Se entrambe le espressioni sono <code>TRUE</code> (ovvero, né <code>FALSE</code> né <code>NULL</code>), il risultato è <code>TRUE</code>. Se una delle due espressioni è <code>NULL</code>, il risultato è <code>NULL</code>. In tutti gli altri casi, il risultato è <code>FALSE</code>.</p><p>Se crei un calcolo in cui il risultato di un confronto <code>AND</code> viene visualizzato in un foglio di lavoro, Tableau mostra <code>TRUE</code> e <code>FALSE</code>. Se desideri modificare questa impostazione, utilizza l’area Formato nella finestra di dialogo del formato.</p><p class="note"><b>Nota</b>: l’operatore <code>AND</code> sfrutta la <i>valutazione a corto circuito</i>. Questo significa che, se la prima espressione è valutata come <code>FALSE</code>, allora la seconda espressione non viene valutata affatto. Questo può essere utile se la seconda espressione si traduce in un errore quando la prima espressione è <code>FALSE</code>, in quanto la seconda espressione in questo caso non viene mai valutata.</p></td></tr></tbody></table>

### CASE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</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>Output</td><td>Dipende dal tipo di dati dei valori <code>&lt;then&gt;</code>.</td></tr><tr><td>Definizione</td><td><p>Valuta l’espressione <code>expression</code> e la confronta con le opzioni specificate (<code>&lt;value1&gt;</code>, <code>&lt;value2&gt;</code> e così via). Quando rileva un valore <code>value</code> corrispondente all’espressione, CASE restituisce il valore <code>return</code> corrispondente. Se non trova alcuna corrispondenza, viene restituito il valore predefinito (facoltativo). Se non ci sono un valore predefinito né valori corrispondenti, viene restituito NULL.</p></td></tr><tr><td>Esempio</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>“Controlla il campo Season. Se il valore è Summer, restituisci Sandals. Se il valore è Winter, restituisci Boots. Se nessuna delle opzioni nel calcolo corrisponde a quanto indicato nel campo Season, restituisci Sneakers.”</i></p></td></tr><tr><td>Note</td><td><p>Vedi anche <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>.</p><p>Utilizzato con <a href="#WHEN" class="xref">WHEN</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> e <a href="#END" class="xref">END</a>.</p><blockquote><p>[!TIP]</p><p><b>Suggerimento</b>: spesso è possibile utilizzare un gruppo per ottenere gli stessi risultati di una complicata funzione CASE oppure utilizzare CASE per sostituire la funzionalità di raggruppamento nativa, come nell’esempio precedente. Potresti eseguire test per determinare quale offre le migliori prestazioni per il tuo scenario.</p></blockquote></td></tr></tbody></table>

### ELSE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</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>Definizione</td><td>Una parte facoltativa di un’espressione <code>IF</code>&nbsp;o <code>CASE</code> utilizzata per specificare un valore predefinito da restituire se nessuna delle espressioni testate è True.</td></tr><tr><td>Esempio</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>Note</td><td><p>Utilizzato con <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> e <a href="#END" class="xref">END</a></p><p><code>ELSE</code> è facoltativo con <code>CASE</code> e <code>IF</code>. In un calcolo dove <code>ELSE</code> non è specificato, se nessuna delle condizioni <code>&lt;test&gt;</code> è True, il calcolo complessivo restituirà Null.</p><p><code>ELSE</code> non richiede una condizione (ad esempio, <code>[Season] = "Winter"</code>) e può essere pensato come una forma di gestione dei valori Null.</p></td></tr></tbody></table>

### ELSEIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</td><td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code></td></tr><tr><td>Definizione</td><td>Una parte facoltativa di un’espressione <code>IF</code>&nbsp;utilizzata per specificare condizioni aggiuntive oltre l’IF iniziale.</td></tr><tr><td>Esempio</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>Note</td><td><p>Utilizzato con <a href="#IF" class="xref">IF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> e <a href="#END" class="xref">END</a></p><p><code>ELSEIF</code> può essere considerata una clausola <code>IF</code> aggiuntiva. <code>ELSEIF</code> è facoltativo e può essere ripetuto più volte.</p><p>A differenza di <code>ELSE</code>, <code>ELSEIF</code> richiede una condizione (ad esempio, <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>Definizione</td><td>Utilizzato per chiudere un’espressione <code>IF</code>&nbsp;o <code>CASE</code>.</td></tr><tr><td>Esempio</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>“Se Season = Summer, restituisci Sandals. In caso contrario, controlla l’espressione successiva. Se Season = Winter, restituisci Boots. Se nessuna delle espressioni è True, restituisci Sneakers.”</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>“Controlla il campo Season. Se il valore è Summer, restituisci Sandals. Se il valore è Winter, restituisci Boots. Se nessuna delle opzioni nel calcolo corrisponde a quanto indicato nel campo Season, restituisci Sneakers.”</i></i></p></td></tr><tr><td>Note</td><td><p>Utilizzato con <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> e <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>Sintassi</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>Output</td><td>Dipende dal tipo di dati dei valori <code>&lt;then&gt;</code>.</td></tr><tr><td>Definizione</td><td><p>Testa una serie di espressioni e restituisce il valore <code>&lt;then&gt;</code> per il primo <code>&lt;test&gt;</code> True.</p></td></tr><tr><td>Esempio</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>“Se Season = Summer, restituisci Sandals. In caso contrario, controlla l’espressione successiva. Se Season = Winter, restituisci Boots. Se nessuna delle espressioni è True, restituisci Sneakers.”</i></p></td></tr><tr><td>Note</td><td><p>Vedi anche <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>.</p><p>Utilizzato con <a href="#ELSEIF" class="xref">ELSEIF</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> e <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>Sintassi</td><td><code>IFNULL(expr1, expr2)</code></td></tr><tr><td>Output</td><td>Dipende dal tipo di dati dei valori <code>&lt;expr&gt;</code>.</td></tr><tr><td>Definizione</td><td><p>Restituisce <code>&lt;expr1&gt;</code> se non è Null, altrimenti <code>&lt;expr2&gt;</code>.</p></td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre><p><i>“Se il campo Assigned Room non è Null, restituisci il relativo valore. Se il campo Assigned Room è Null, restituisci invece TBD.”</i></p></td></tr><tr><td>Note</td><td><p>Confronta con <a href="#ISNULL" class="xref">ISNULL</a>. <code>IFNULL</code> restituisce sempre un valore. <code>ISNULL</code>&nbsp;restituisce un valore booleano (True o False).</p><p>Vedi anche <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>Sintassi</td><td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code></td></tr><tr><td>Output</td><td>Dipende dal tipo di dati dei valori nell’espressione.</td></tr><tr><td>Definizione</td><td>Controlla se una condizione è soddisfatta (<code>&lt;test&gt;</code>) e restituisce <code>&lt;then&gt;</code> se il test è True, <code>&lt;else&gt;</code>&nbsp;se il test è False e un valore facoltativo per <code>&lt;unknown&gt;</code> se il test è Null. Se il valore unknown facoltativo non è specificato, <code>IIF</code> restituisce Null.</td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre><p><i>“Se Season = Summer, restituisci Sandals. In caso contrario, restituisci Other footwear”</i></p><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', <br>   IIF('Season' = 'Winter', 'Boots',  'Other footwear')<br>)</pre><p><i>“Se Season = Summer, restituisci Sandals. In caso contrario, controlla l’espressione successiva. Se Season = Winter, restituisci Boots. Se nessuna delle due è True, restituisci 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>“Se Season = Summer, restituisci Sandals. In caso contrario, controlla l’espressione successiva. Se Season = Winter, restituisci Boots. Se nessuna delle espressioni è True, restituisci Sneakers.”</i></p></td></tr><tr><td>Note</td><td><p>Vedi anche <a href="#IF" class="xref">IF</a> e <a href="#CASE" class="xref">CASE</a>.</p><p><code>IIF</code> non ha un equivalente di <code>ELSEIF</code> (come <code>IF</code>) o clausole <code>WHEN</code> ripetute (come <code>CASE</code>). Più test possono invece essere valutati in sequenza mediante l’annidamento di istruzioni <code>IIF</code> come l’elemento <code>&lt;unknown&gt;</code>. Viene restituito il primo True (quello più esterno).</p><p>In altre parole, nel calcolo seguente il risultato sarà Red, non Orange, perché l’espressione smette di essere valutata non appena A=A viene valutato come True:</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>Sintassi</td><td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code></td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Definizione</td><td>Restituisce <code>TRUE</code> se qualsiasi valore in <code>&lt;expr1&gt;</code> corrisponde a qualsiasi valore in <code>&lt;expr2&gt;</code>.</td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre><p><i>“Il valore del campo Cost è 1000, 15 o 200?”</i></p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre><p><i>“Il valore del campo è presente nell’insieme?”</i></p></td></tr><tr><td>Note</td><td><p>I valori in <code>&lt;expr2&gt;</code> possono essere un insieme, un elenco di valori letterali o un campo combinato.</p><p>Vedi anche <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>Sintassi</td><td><code>ISDATE(string)</code></td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Definizione</td><td>Restituisce True se una stringa <code>&lt;string&gt;</code> è una data valida. L’espressione di input deve essere un campo stringa (di testo).</td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">ISDATE("2018-09-22")</pre><p><i>“La stringa 2018-09-22 è una data formattata correttamente?”</i></p></td></tr><tr><td>Note</td><td><p>Ciò che viene considerato una data valida dipende dalle <a href="https://help.tableau.com/current/server/it-it/lang_intro.htm" target="_blank">impostazioni locali</a> del sistema che valuta il calcolo. Ad esempio:</p><p>Negli Stati Uniti:</p><ul><li><code>ISDATE("2018-09-22") = TRUE</code></li><li><code>ISDATE("2018-22-09") = FALSE</code></li></ul><p>Nel Regno Unito: </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>Sintassi</td><td><code>ISNULL(expression)</code></td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Definizione</td><td><p>Restituisce True se l’espressione <code>&lt;expression&gt;</code> è NULL (non contiene dati validi).</p></td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">ISNULL([Assigned Room])</pre><p><i>“Il campo Assigned Room è Null?”</i></p></td></tr><tr><td>Note</td><td><p>Confronta con <a href="#IFNULL" class="xref">IFNULL</a>. <code>IFNULL</code> restituisce sempre un valore. <code>ISNULL</code> restituisce un valore booleano.</p><p>Vedi anche <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>Sintassi</td><td><code>MAX(expression)</code> oppure <code>MAX(expr1, expr2)</code></td></tr><tr><td>Output</td><td>Stesso tipo di dati dell’argomento o <code>NULL&nbsp;</code>se qualsiasi parte dell’argomento è NULL.</td></tr><tr><td>Definizione</td><td><p>Restituisce il massimo dei due argomenti, che devono essere dello stesso tipo di dati.</p><p><code>MAX</code> può anche essere applicato a un singolo campo come aggregazione.</p></td></tr><tr><td>Esempio</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>Note</td><td><p><b>Per le stringhe</b></p><p><code>MAX</code> è solitamente l’ultimo valore in ordine alfabetico.</p><p class="note">Per le origini dati di database, <code>MAX</code> permette di trovare il valore stringa più alto nella sequenza di ordinamento definita dal database per quella colonna.</p><p><b>Per le date</b></p><p>Per le date, <code>MAX</code> è la data più recente. Se <code>MAX</code> è un’aggregazione, il risultato non avrà una gerarchia di date. Se <code>MAX</code> è un confronto, il risultato manterrà la gerarchia di date.</p><p><b>Come aggregazione</b></p><p><code>MAX(expression)</code> è una funzione aggregata e restituisce un singolo risultato aggregato. Questo risultato viene mostrato come <code>AGG(expression)</code> nella visualizzazione.</p><p><b>Come confronto</b></p><p><code>MAX(expr1, expr2)</code> confronta i due valori e restituisce un valore a livello di riga.</p><p>Vedi anche <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>Sintassi</td><td><code>MIN(expression)</code> oppure <code>MIN(expr1, expr2)</code></td></tr><tr><td>Output</td><td>Stesso tipo di dati dell’argomento o <code>NULL&nbsp;</code>se qualsiasi parte dell’argomento è NULL.</td></tr><tr><td>Definizione</td><td><p>Restituisce il minimo dei due argomenti, che devono essere dello stesso tipo di dati.</p><p><code>MIN </code>può anche essere applicato a un singolo campo come aggregazione.</p></td></tr><tr><td>Esempio</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>Note</td><td><p><b>Per le stringhe</b></p><p><code>MIN</code> è solitamente il primo valore in ordine alfabetico.</p><p class="note">Per le origini dati di database, <code>MIN</code> permette di trovare il valore stringa più basso nella sequenza di ordinamento definita dal database per quella colonna.</p><p><b>Per le date</b></p><p>Per le date, <code>MIN</code> è la prima data. Se <code>MIN</code> è un’aggregazione, il risultato non avrà una gerarchia di date. Se <code>MIN</code> è un confronto, il risultato manterrà la gerarchia di date.</p><p><b>Come aggregazione</b></p><p><code>MIN(expression)</code> è una funzione aggregata e restituisce un singolo risultato aggregato. Questo risultato viene mostrato come <code>AGG(expression)</code> nella visualizzazione.</p><p><b>Come confronto</b></p><p><code>MIN(expr1, expr2)</code> confronta i due valori e restituisce un valore a livello di riga.</p><p>Vedi anche <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>Sintassi</td><td><code>NOT&nbsp;&lt;expression&gt;</code></td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Definizione</td><td>Esegue una negazione logica su un’espressione.</td></tr><tr><td>Esempio</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>“Se Season non è uguale a Summer, restituisci Don’t wear sandals. In caso contrario, restituisci Wear sandals.”</i></p></td></tr><tr><td>Note</td><td><p>Spesso usato con <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Vedi anche <a href="#top" class="xref">AND</a> e <a href="#OR" class="xref">OR</a>.</p></td></tr></tbody></table>

### OR

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</td><td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code></td></tr><tr><td>Output</td><td>Booleano (True o False)</td></tr><tr><td>Definizione</td><td>Esegue una disgiunzione logica su due espressioni.</td></tr><tr><td>Esempio</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>“Se (Season = Spring)&nbsp;o (Season = Fall)&nbsp;è True, restituisci Sneakers.”</i></p></td></tr><tr><td>Note</td><td><p>Spesso usato con <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Vedi anche <a href="#top" class="xref">AND</a> e <a href="#NOT" class="xref">NOT</a>.</p><p>Se una delle due espressioni è <code>TRUE</code>, il risultato è <code>TRUE</code>. Se entrambe le espressioni sono <code>FALSE</code>, il risultato è <code>FALSE</code>. Se entrambe le espressioni sono <code>NULL</code>, il risultato è <code>NULL</code>.</p><p>Se crei un calcolo che visualizza il risultato di un confronto <code>OR</code> in un foglio di lavoro, Tableau mostra TRUE e FALSE. Se desideri modificare questa impostazione, utilizza l’area Formato nella finestra di dialogo del formato.</p><p class="note"><b>Nota</b>: l’operatore <code>OR</code> sfrutta la <em>valutazione a corto circuito</em>. Questo significa che, se la prima espressione è valutata come <code>TRUE</code>, allora la seconda espressione non viene valutata affatto. Questo può essere utile se la seconda espressione si traduce in un errore quando la prima espressione è <code>TRUE</code>, in quanto la seconda espressione in questo caso non viene mai valutata.</p></td></tr></tbody></table>

### THEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintassi</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>Definizione</td><td>Una parte richiesta di un’espressione <code>IF</code>, <code>ELSEIF</code> o <code>CASE</code>, utilizzata per definire quale risultato restituire se un valore o un test specifico è True.</td></tr><tr><td>Esempio</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>“Se Season = Summer, restituisci Sandals. In caso contrario, controlla l’espressione successiva. Se Season = Winter, restituisci Boots. Se nessuna delle espressioni è True, restituisci Sneakers.”</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>“Controlla il campo Season. Se il valore è Summer, restituisci Sandals. Se il valore è Winter, restituisci Boots. Se nessuna delle opzioni nel calcolo corrisponde a quanto indicato nel campo Season, restituisci Sneakers.”</i></i></p></td></tr><tr><td>Note</td><td><p>Utilizzato con <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> e <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>Sintassi</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>Definizione</td><td>Una parte richiesta di un’espressione <code>CASE</code>. Trova il primo <code>&lt;value&gt;</code> che corrisponde a <code>&lt;expression&gt;</code> e restituisce il valore <code>&lt;then&gt;</code> corrispondente.</td></tr><tr><td>Esempio</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>“Controlla il campo Season. Se il valore è Summer, restituisci Sandals. Se il valore è Winter, restituisci Boots. Se nessuna delle opzioni nel calcolo corrisponde a quanto indicato nel campo Season, restituisci Sneakers.”</i></p></td></tr><tr><td>Note</td><td><p>Utilizzato con <a href="#CASE" class="xref">CASE</a>, <a href="#THEN" class="xref">THEN</a>, <a href="#ELSE" class="xref">ELSE</a> e <a href="#END" class="xref">END</a>.</p><p><code>CASE</code> supporta anche la costruzione <code>WHEN IN</code>, come ad esempio:</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>I valori con cui si confronta <code>WHEN IN</code>, devono essere un insieme, un elenco di valori letterali o un campo combinato. Vedi anche <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>Sintassi</td><td><code>ZN(expression)</code></td></tr><tr><td>Output</td><td>Dipende dal tipo di dati di <code>&lt;expression&gt;</code> oppure 0.</td></tr><tr><td>Definizione</td><td>Restituisce &lt;expression&gt; se non è Null, altrimenti restituisce zero.</td></tr><tr><td>Esempio</td><td><pre xml:space="preserve">ZN([Test Grade])</pre><p><i>“Se Test Grade non è Null, restituisci il relativo valore. Se Test Grade è Null, restituisci 0.”</i></p></td></tr><tr><td>Note</td><td><p><code>ZN</code> è un caso specializzato di <a href="#IFNULL" class="xref">IFNULL</a> dove l’alternativa se l’espressione è Null è sempre 0 anziché essere specificato nel calcolo.</p><p><code>ZN</code> è particolarmente utile quando si eseguono calcoli aggiuntivi e un valore Null renderebbe Null l’intero calcolo. Tuttavia, occorre prestare attenzione nell’interpretazione dei risultati poiché Null non è sempre sinonimo di 0 e potrebbe rappresentare dati mancanti.</p><p>Vedi anche <a href="#ISNULL" class="xref">ISNULL</a>.</p></td></tr></tbody></table>  

**Nota:** alcuni di questi sono in realtà operatori logici e appaiono in nero, non in blu. Per maggiori informazioni, consulta [Sintassi degli operatori](https://help.tableau.com/v0.0/pro/desktop/it-it/functions_operators.htm#Operators).

Nota relativa a CASE, IF e IIF

CASE è spesso più facile da usare di IF o IIF. In molti casi, IF, IIF e CASE possono essere utilizzati in modo intercambiabile. Un’istruzione CASE può sempre essere riscritta come istruzione IF, anche se l’istruzione CASE sarà generalmente più concisa e potrebbe essere più semplice da interpretare. Tuttavia, non tutte le istruzioni IF possono essere scritte come istruzioni CASE, poiché ogni ELSEIF potrebbe fare riferimento a un campo diverso.

**Suggerimento**: confrontiamo un esempio utilizzando la stessa logica tra queste tre funzioni:  

<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 struttura CASE è molto semplice, facile da scrivere e interpretare. Tuttavia, l’espressione (in questo caso, [Region]) non può essere un’operazione logica, a differenza di IF o IIF.</p><p>I valori Null vengono gestiti allo stesso modo per CASE e IF.</p></td><td><p>La struttura IF THEN consente più clausole ELSEIF, il che rende le valutazioni multiple molto più semplici rispetto a IIF.</p><p><b>Gestione dei valori NULL</b>: qualsiasi risultato sconosciuto (Null) viene gestito dalla stessa clausola ELSE dei risultati False. In questo caso, a qualsiasi regione diversa dalle quattro specificate (incluso Null) verrà assegnato il valore 5.</p></td><td><p>La struttura IIF gestisce i risultati sconosciuti in modo diverso rispetto ai risultati False e ha una sintassi diversa da IF. Il compromesso per la gestione specifica dei valori Null è l’annidamento, come nel caso precedente, che può essere complicato da scrivere e interpretare.</p><p><b>Gestione dei valori NULL</b>: a qualsiasi regione non Null diversa dalle quattro specificate verrà assegnato il valore 5, ma a un valore Null verrà assegnato 0.</p></td></tr></tbody></table>

**Nota**: molte volte è possibile utilizzare un gruppo per ottenere gli stessi risultati di una funzione CASE complicata. Esegui un test per stabilire se un’opzione offre migliori prestazioni rispetto all’altra.

### Esempi

Le funzioni CASE possono essere utili per scenari come la ridefinizione dell’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

Oppure per offrire all’utente finale la possibilità di selezionare quale misura visualizzare in un grafico quando vengono utilizzate con un [parametro](https://www.tableau.com/it-it/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

## Creare un calcolo logico

Per informazioni su come creare un calcolo logico, segui i passaggi seguenti.

1. In Tableau Desktop, connettiti all’origine dati salvata **Esempio - Supermercato**, fornita con Tableau.
2. Passa a un foglio di lavoro.
3. Dal riquadro **Dati**, trascina Stato sullo spazio Righe.
4. Dal riquadro **Dati**, trascina Categoria sullo spazio Righe e posizionalo a destra di Stato.
5. Dal riquadro **Dati**, trascina Vendite nello spazio Colonne.
6. Seleziona Analisi > Crea campo calcolato.
7. Nell’editor di calcolo che si apre, esegui le seguenti operazioni:
    - Denomina il campo calcolato KPI.
    - Immetti la seguente formula:
        
        SUM(\[Profit\]) > 0
        
        Questo calcolo controlla rapidamente se un membro è maggiore di zero. In caso affermativo, restituisce vero; in caso contrario, restituisce falso.
    - Al termine, fai clic su **OK**.

Visualizzerai il nuovo campo calcolato sotto Misurazioni nel riquadro Dati. Proprio come gli altri campi, puoi utilizzarlo in una o più visualizzazioni.

9. Dal riquadro **Dati**, trascina **KPI** su **Colore** sulla scheda Indicatori.
    
    Ora puoi vedere le categorie che perdono denaro in ogni stato.
    
    ![Funzione logica applicata a un grafico a barre per evidenziare le categorie di prodotto in perdita in ciascuno stato.](/tableau/next/it-it/pro/desktop/it-it/Img/logicalfunctions1.png)

## Vedi anche

[Visualizzare gli indicatori chiave di prestazione](https://help.tableau.com/v0.0/pro/desktop/it-it/kpi.htm)

[Funzioni in Tableau](https://help.tableau.com/v0.0/pro/desktop/it-it/functions.htm)

[Funzioni di Tableau (per categoria)](https://help.tableau.com/v0.0/pro/desktop/it-it/functions_all_categories.htm)

[Funzioni di Tableau (in ordine alfabetico)](https://help.tableau.com/v0.0/pro/desktop/it-it/functions_all_alphabetical.htm)