“Se você se dedicar, consegue qualquer coisa.” “Se o número for igual a 8, eu ganho o jogo!” Declarações condicionais fazem parte do nosso dia a dia. Usamos esse tipo de lógica com frequência para decidir o que fazer com base em uma avaliação lógica:
- Eu me dedico (VERDADEIRO/FALSO)? Então, consigo qualquer coisa.
- O número = 8? Se sim, eu ganho o jogo.
No Tableau, você pode aplicar lógica condicional para reproduzir a mesma forma de pensar do dia a dia. O Tableau oferece uma série de funções lógicas que facilitam transformar os dados condicionalmente com base em uma avaliação lógica, seja por meio de uma expressão booleana (VERDADEIRO/FALSO) ou por correspondência exata de valores. Neste artigo, vamos explorar algumas das instruções condicionais mais comuns no Tableau e mostrar como usá-las para analisar e visualizar dados.
Instruções IF no Tableau
A instrução IF é a forma básica de condição no Tableau: ela avalia uma expressão booleana e retorna um valor se a condição for verdadeira e outro se for falsa. A sintaxe básica da instrução IF é:
IF [condition] THEN [value1] ELSE [value2] END
Se o resultado final depender da avaliação de outra expressão booleana, você pode incluir uma cláusula ELSEIF na instrução, assim:
IF [condition1] THEN [value1]
ELSEIF [condition2] THEN [value2]
ELSE [value3]
END
Por exemplo, para identificar gêneros musicais pop vs. não pop com base em conter ‘pop’ no nome, podemos usar a seguinte instrução IF:
IF CONTAINS([Top Genre], 'pop') THEN 'pop'
ELSE 'other genre'
END
Instruções IF aninhadas
Instruções IF também podem ser aninhadas para criar condições mais complexas e avaliar múltiplos critérios para subgrupos dos seus dados. Para construir IF aninhados, use a seguinte sintaxe:
IF [condition1] THEN
IF [condition2] THEN [value1]
ELSE [value2]
END
ELSE [value3]
END
Digamos que queremos descobrir qual proporção das músicas pop é dançante (segundo a métrica de danceability definida no Spotify Music Dataset). Podemos usar o seguinte IF aninhado para resolver:
IF CONTAINS([Top Genre], 'pop') THEN
IF [Dnce] > 66 THEN 'danceable pop' // 66 é a mediana
ELSE 'less danceable pop'
END
ELSE 'not pop'
END

IF aninhados são muito poderosos, especialmente quando é preciso atender a várias condições para diferentes subgrupos dos dados.
Instruções IIF
A função IIF é outra forma de condição no Tableau que permite testar uma condição e retornar um de dois valores. A sintaxe da função IIF é:
IIF([condition], [value if true], [value if false])
Por exemplo, para criar um campo calculado que identifique compositores que produziram uma música que foi top hit entre 2017 e 2019, podemos usar a função IIF abaixo:
IIF([Year] >= 2017 AND [Year] <= 2019, '2017-2019 Top Song', 'Not Top Song in 2017-2019')

Isso retornará “2017-2019 Top Song” se a música foi um top hit entre 2017 e 2019 (conforme a Billboard) e “Not Top Song in 2017-2019” caso contrário.
Usando funções de agregação do Tableau com IF
O Tableau oferece várias funções nativas que podem ser combinadas com instruções condicionais para cálculos mais avançados. Entre as funções de agregação mais comuns estão COUNTD, SUM, AVG, MIN e MAX. Com funções de agregação, você consegue resumir insights de forma eficaz criando novas métricas no Tableau. Use a seguinte sintaxe:
<Aggregation>(IF [Condition] THEN [value] END)
Por exemplo, vamos contar o número de artistas únicos com um top hit entre 2017 e 2019 usando a função COUNTD:
COUNTD(IF [Year] >= 2017 and [Year] <= 2019 THEN [Artist] END)

A instrução acima retorna a contagem distinta de artistas que tiveram um hit entre 2017 e 2019. Se um artista teve múltiplos hits nesses anos, o nome dele será contado apenas uma vez.
Da mesma forma, podemos usar as funções SUM e AVG em combinação com uma instrução condicional para calcular sobre subconjuntos específicos dos dados.
Uma dica: garanta que a condição esteja dentro da agregação. Caso contrário, você verá a famosa mensagem “Cannot mix aggregate and non aggregate comparisons or results in 'IF' expressions.” Por exemplo, a instrução abaixo gera erro porque tentamos agregar um único datapoint que, por si só, não está agregado.

Instruções CASE no Tableau
Introdução
A instrução CASE é outra forma de condição no Tableau que permite executar múltiplos testes sobre um mesmo campo e retornar valores diferentes conforme o resultado. Diferente das instruções IF, que dependem da avaliação de uma expressão booleana, as instruções CASE trabalham com correspondências exatas de valores. Se a cláusula WHEN usar lógica booleana, você verá o seguinte erro no Tableau:

A sintaxe da instrução CASE é:
CASE [expression]
WHEN [value1] THEN [result1]
WHEN [value2] THEN [result2]
ELSE [default result]
END
Por exemplo, vamos reescrever a lógica para identificar compositores que produziram uma música que foi top hit entre 2017 e 2019:
CASE [Year]
WHEN IN (2017, 2018, 2019) THEN '2017-2019 Top Songs'
ELSE 'Not Top Song in 2017-2019'
END

No caso acima, usamos a construção WHEN IN para listar os anos de interesse (2017, 2018 e 2019). O Tableau então usa esse conjunto para encontrar correspondências exatas nos dados. Se nada corresponder e nenhum valor padrão for especificado, será retornado nulo.
Instruções CASE aninhadas
Assim como acontece com IF aninhados, você pode usar CASE aninhados no Tableau para expor lógicas mais complexas em um campo calculado. Use a sintaxe abaixo para retornar lógica aninhada com instruções 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
Embora instruções CASE não avaliem expressões booleanas e não sirvam para identificar padrões complexos nos dados, elas são mais fáceis de ler e têm melhor desempenho do que IF. Se a transformação for simples e não exigir avaliações VERDADEIRO/FALSO complexas, vale mais a pena usar CASE. Em alguns cenários, você pode combinar IF e CASE para análises ainda mais robustas.
Conclusão
Instruções condicionais, como IF e CASE, são ótimas ferramentas para levar suas habilidades em Tableau para o próximo nível como profissional de dados. Para ir do “básico ao avançado” no Tableau, confira nossos materiais, como a trilha de carreira Data Analyst in Tableau ou o curso Analyzing Data in Tableau.
Depois de dominar os fundamentos, pratique visualização no Tableau usando os datasets disponíveis no DataLab. As instruções IF, IIF e CASE WHEN vão se tornar naturais para você. Boa sorte!
Torne-se um analista de dados do Tableau
Perguntas frequentes sobre CASE e IF no Tableau
Como saber quando usar IF ou CASE?
A função a usar depende do tipo de tarefa que você quer realizar. Enquanto uma IF avalia uma expressão booleana, uma CASE faz correspondência estrita com o valor de um campo. Muitas vezes, uma CASE pode ser convertida em uma IF. O inverso é menos provável, já que IF é usada para avaliações mais complexas que geralmente CASE não consegue atender.
Qual é a diferença entre IF e CASE?
Enquanto instruções IF podem avaliar lógica booleana em dimensões desagregadas ou medidas agregadas, CASE avalia apenas correspondências exatas de valor. Por isso, IF oferece mais flexibilidade do que CASE e pode executar lógicas mais complexas nos dados. Porém, CASE proporciona melhor legibilidade e desempenho do que IF. CASE funciona muito bem quando os dados pedem apenas transformações simples.
Devo formatar a função condicional?
Embora o Tableau ainda não tenha um recurso para autoformatar texto na janela de campo calculado, vale a pena adicionar formatação para melhorar a leitura, incluindo:
- Comentários: você pode usar // para comentários de uma linha e /* <...> */ para comentários em várias linhas;
- Quebras de linha e indentação: adicione quebras de linha e indente o código para que outra pessoa que abra o workbook entenda facilmente as camadas de lógica na visualização.
Qual é a diferença entre IF e IIF?
A principal diferença entre a instrução IF e a função IIF é que a primeira pode testar múltiplas condições e retornar valores diferentes conforme o resultado, enquanto a segunda testa apenas uma condição por vez e retorna um de dois valores. Embora você consiga aplicar lógicas mais complexas com IF, a função IIF é ótima para condições simples, em que clareza e objetividade são prioridade.
Por que não usar apenas os recursos nativos de parâmetro e filtro do Tableau?
Em alguns casos, os recursos de filtro e parâmetro não serão suficientes para analisar os dados. Como explicamos no nosso tutorial Calculating Fields in Tableau, às vezes você vai precisar criar novas variáveis para preencher lacunas antes de analisar. Com frequência, as transformações necessárias se encaixam nas seguintes cinco categorias:
- Segmentação dos dados
- Conversão do tipo de dado de um campo, como transformar string em data ou inteiro em float
- Agregação de dados
- Filtragem de resultados
- Cálculo de razões (ratios)
