“Se ti impegni, puoi fare qualsiasi cosa.” “Se il numero è uguale a 8, vinco la partita!” Le istruzioni condizionali fanno parte della vita di tutti i giorni. Le usiamo regolarmente per decidere un’azione in base a una valutazione logica:
- Mi impegno (TRUE/FALSE)? In tal caso, posso fare qualsiasi cosa.
- Il numero = 8? Se sì, vinco la partita.
In Tableau puoi applicare logiche condizionali per emulare la stessa logica che usi ogni giorno. Tableau fornisce una serie di funzioni logiche che rendono semplice trasformare i dati in modo condizionale sulla base di una valutazione logica, ossia una espressione booleana (TRUE/FALSE) o una corrispondenza di valore esatto. In questo articolo, esploreremo alcune delle istruzioni condizionali più comuni in Tableau e vedremo come usarle per analizzare e visualizzare i dati.
Istruzioni IF in Tableau
L’istruzione IF è una condizionale di base in Tableau che consente di valutare un’espressione booleana e restituire un valore se la condizione è vera, e un altro se è falsa. La sintassi di base dell’istruzione IF è:
IF [condition] THEN [value1] ELSE [value2] END
Se il risultato finale dipende dalla valutazione di un’altra espressione booleana, puoi inserire una clausola ELSEIF nell’istruzione in questo modo:
IF [condition1] THEN [value1]
ELSEIF [condition2] THEN [value2]
ELSE [value3]
END
Per esempio, per distinguere i generi musicali pop da quelli non pop in base al fatto che “pop” sia contenuto nel nome, possiamo usare la seguente istruzione IF:
IF CONTAINS([Top Genre], 'pop') THEN 'pop'
ELSE 'other genre'
END
IF annidati
Le istruzioni IF possono anche essere annidate per creare condizioni più complesse e valutare più condizioni per sottogruppi dei tuoi dati. Per costruire IF annidati, usa la seguente sintassi:
IF [condition1] THEN
IF [condition2] THEN [value1]
ELSE [value2]
END
ELSE [value3]
END
Supponiamo di voler capire quale proporzione di brani pop è ballabile (secondo la metrica di danceability definita nel Dataset Spotify Music). Possiamo usare il seguente IF annidato per scoprirlo:
IF CONTAINS([Top Genre], 'pop') THEN
IF [Dnce] > 66 THEN 'danceable pop' // 66 is the median
ELSE 'less danceable pop'
END
ELSE 'not pop'
END

Gli IF annidati sono funzioni potenti, soprattutto quando devono essere soddisfatte più condizioni per diversi sottogruppi dei dati.
Istruzioni IIF
La funzione IIF è un’altra istruzione condizionale in Tableau che permette di testare una condizione e restituire uno di due valori. La sintassi della funzione IIF è:
IIF([condition], [value if true], [value if false])
Per esempio, per creare un campo calcolato che identifichi gli autori che hanno prodotto un brano in vetta tra il 2017 e il 2019, possiamo usare la seguente funzione IIF:
IIF([Year] >= 2017 AND [Year] <= 2019, '2017-2019 Top Song', 'Not Top Song in 2017-2019')

Questo restituirà “2017-2019 Top Song” se il brano è stato un successo tra il 2017 e il 2019 (secondo Billboard) e “Not Top Song in 2017-2019” altrimenti.
Usare le funzioni di aggregazione di Tableau con IF
Tableau offre un’ampia gamma di funzioni integrate che possono essere usate insieme a istruzioni condizionali per eseguire calcoli più avanzati. Alcune delle funzioni di aggregazione più comuni sono COUNTD, SUM, AVG, MIN e MAX. Con le funzioni di aggregazione puoi riassumere le tue intuizioni in modo efficace costruendo nuove metriche in Tableau. Dovrai usare la seguente sintassi:
<Aggregation>(IF [Condition] THEN [value] END)
Per esempio, contiamo il numero di artisti unici con un successo tra il 2017 e il 2019 con la funzione COUNTD:
COUNTD(IF [Year] >= 2017 and [Year] <= 2019 THEN [Artist] END)

L’istruzione sopra restituirà il numero distinto di artisti che hanno avuto un successo tra il 2017 e il 2019. Se un artista ha avuto più successi in quegli anni, il suo nome verrà contato una sola volta.
Allo stesso modo, possiamo usare le funzioni SUM e AVG in combinazione con un’istruzione condizionale per eseguire calcoli su specifici sottoinsiemi di dati.
Un consiglio: assicurati di racchiudere la condizione all’interno dell’aggregazione. In caso contrario, otterrai il famigerato errore “Cannot mix aggregate and non aggregate comparisons or results in 'IF' expressions.” Per esempio, l’istruzione qui sotto genera un errore perché stiamo cercando di eseguire un’aggregazione su un singolo datapoint, che di per sé non è aggregato.

Istruzioni CASE in Tableau
Introduzione
L’istruzione CASE è un’altra condizionale in Tableau che permette di eseguire più test su un unico campo e restituire valori diversi in base ai risultati. A differenza delle istruzioni IF, che si basano sulla valutazione di un’espressione booleana, le istruzioni CASE si basano su corrispondenze di valore esatto. Se la clausola WHEN usa logica booleana, in Tableau otterrai il seguente errore:

La sintassi dell’istruzione CASE è:
CASE [expression]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
ELSE [default result]
END
Per esempio, riscriviamo la logica per identificare gli autori che hanno prodotto un brano in vetta tra il 2017 e il 2019:
CASE [Year]
WHEN IN (2017, 2018, 2019) THEN '2017-2019 Top Songs'
ELSE 'Not Top Song in 2017-2019'
END

Nell’esempio sopra, usiamo la costruzione WHEN IN per elencare gli anni di interesse (2017, 2018 e 2019). Tableau usa quindi l’insieme per trovare una corrispondenza esatta nei dati. Se non viene trovata alcuna corrispondenza e non è specificato un valore predefinito, viene restituito un valore null.
CASE annidati
Analogamente agli IF annidati, puoi usare istruzioni CASE annidate in Tableau per far emergere logiche complesse tramite un campo calcolato. Puoi usare la sintassi seguente per restituire logiche annidate con le istruzioni CASE:
CASE [expression1]
WHEN [value1] THEN
(CASE [expression2]
WHEN [value2] THEN [result1]
WHEN [value3] THEN [result2]
…
ELSE [default result]
END)
WHEN [value4] THEN
(CASE [expression2]
WHEN [value5] THEN [result3]
WHEN [value6] THEN [result4]
…
ELSE [default result]
END)
ELSE [default result]
END
Sebbene le istruzioni CASE non possano valutare espressioni booleane e non funzionino per identificare pattern complessi nei dati, sono più facili da leggere e hanno prestazioni migliori rispetto alle istruzioni IF. Se i dati sono abbastanza semplici da trasformare e non richiedono valutazioni TRUE/FALSE complesse, è meglio usare un’istruzione CASE. In alcuni casi, puoi usare insieme istruzioni IF e CASE per analisi ancora più potenti.
Conclusione
Le istruzioni condizionali, come IF e CASE, sono strumenti efficaci per far crescere le tue competenze in Tableau come data practitioner. Per passare da “zero a eroe” con Tableau, dai un’occhiata alle nostre risorse, come il career track Data Analyst in Tableau o il corso Analyzing Data in Tableau.
Una volta che hai una buona base, esercitati con la visualizzazione in Tableau usando i dataset disponibili su DataLab. Le istruzioni IF, IIF e CASE WHEN diventeranno una seconda natura. Buon lavoro!
FAQ su CASE e IF in Tableau
Come faccio a sapere quando usare IF vs CASE?
La funzione da usare dipende in gran parte dal tipo di attività che vuoi svolgere. Mentre un’ istruzione IF valuta un’espressione booleana, un’ istruzione CASE corrisponde rigorosamente a un valore di campo. Spesso un’istruzione CASE può essere convertita in un’istruzione IF. Il contrario è meno probabile, poiché le istruzioni IF sono usate per eseguire valutazioni più complesse che le istruzioni CASE di solito non sono in grado di gestire.
Qual è la differenza tra IF e CASE?
Mentre le istruzioni IF possono valutare logiche booleane su dimensioni disaggregate o misure aggregate, le istruzioni CASE valutano solo corrispondenze di valore esatto. Per questo motivo, le istruzioni IF hanno maggiore flessibilità rispetto alle istruzioni CASE e possono essere usate per applicare logiche più complesse ai dati. Tuttavia, le istruzioni CASE offrono migliore leggibilità e prestazioni superiori rispetto alle istruzioni IF. Le istruzioni CASE sono perfette nei casi in cui i dati richiedono solo trasformazioni semplici.
Dovrei formattare la funzione condizionale?
Anche se Tableau non offre (ancora!) una funzione per la formattazione automatica del testo nella finestra di dialogo dei campi calcolati, è una buona idea aggiungere formattazione per una migliore leggibilità, tra cui:
- Commenti: puoi usare // per i commenti su una sola riga e /* <...> */ per i commenti su più righe;
- Interruzioni di riga e rientri: aggiungi interruzioni di riga e rientri in modo che chi visualizza la cartella di lavoro possa capire facilmente i diversi livelli di logica incorporati nella visualizzazione.
Qual è la differenza tra IF e IIF?
La differenza principale tra l’istruzione IF e la funzione IIF è che la prima può testare più condizioni e restituire valori diversi in base ai risultati, mentre la seconda può testare solo una condizione alla volta e restituire uno di due valori. Anche se con le istruzioni IF puoi sfruttare logiche più complesse, la funzione IIF è ottima per condizioni semplici in cui contano chiarezza e sintesi.
Perché non usare semplicemente i parametri e i filtri integrati di Tableau?
In alcuni casi, le funzioni di filtro e parametro non saranno sufficienti per analizzare i dati. Come spiegato nel nostro tutorial Calculating Fields in Tableau, a volte avrai bisogno di creare nuove variabili per colmare i dati mancanti prima di poterli analizzare. Spesso, le trasformazioni da effettuare rientrano nelle seguenti cinque categorie:
- Segmentazione dei dati
- Conversione del tipo di dato di un campo, ad esempio da stringa a data o da intero a float
- Aggregazione dei dati
- Filtraggio dei risultati
- Calcolo di rapporti


