---
schema_version: "1"
id: cab04e74b4ebf8b9604e3f8db2e22668071cf536efa71fd64906909f743a6b1c
title: Funções lógicas
collection: tableau
version: next
locale: pt-br
portal_url: https://docs.salesforce.com/tableau/next/pt-br/pro/desktop/functions_functions_logical.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/pt-br/functions_functions_logical.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 344f8194b615d187aed2e78dabf3cf70d6b7a961393bc8fd09e4b642a0cadd92
description: Reference for Tableau logical functions such as IF, CASE, and AND.
---
[Pular para o conteúdo principal](#main-content)

# Funções lógicas

Este artigo apresenta as funções lógicas e seus usos no Tableau. Ele também demonstra como criar um cálculo lógico com um exemplo.

## Por que usar cálculos lógicos

Cálculos lógicos permitem determinar se uma certa condição é verdadeira ou falsa (lógica booleana). Por exemplo, você pode querer categorizar valores com base em determinados pontos de corte.

O cálculo lógico pode ficar mais ou menos assim:

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

## Funções lógicas e operadores disponíveis no Tableau

### AND

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxe</td><td><code>&lt;expr1&gt; AND &lt;expr2&gt;</code></td></tr><tr><td>Definição</td><td>Realiza uma conjunção lógica em duas expressões. (Se ambos os lados forem true, o teste lógico retornará true.)</td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Exemplo</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 ambos (Season = Spring) e (Season = Fall) forem true simultaneamente, então retorna It's the apocalypse and footwear doesn't matter."</i></p></td></tr><tr><td>Observações</td><td><p>Frequentemente usado com <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Veja também <a href="#NOT" class="xref">NOT</a> e <a href="#OR" class="xref">OU</a>.</p><p>Se ambas as expressões forem <code>TRUE</code> (ou seja, não <code>FALSE</code> ou <code>NULL</code>), então o resultado será <code>TRUE</code>. Se uma das expressões for <code>NULL</code>, o resultado será <code>NULL</code>. Em todos os outros casos, o resultado será <code>FALSE</code>.</p><p>Se você criar um cálculo no qual o resultado de uma comparação <code>AND</code> e exibido em uma planilha, o Tableau exibirá <code>TRUE</code> e <code>FALSE</code>. Para alterar isso, use a área Formatar na caixa de diálogo de formatação.</p><p class="note"><b>Observação</b>: o operador <code>AND</code> emprega <i>short circuit evaluation</i>. Isso significa que se a primeira expressão for avaliada como <code>FALSE</code>, a segunda expressão não será avaliada. Isso poderá ser útil se a segunda expressão resultar em um erro quando a primeira for <code>FALSE</code>, pois a segunda expressão nesse caso nunca será avaliada.</p></td></tr></tbody></table>

### CASE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxe</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>Saída</td><td>Depende do tipo de dados dos valores <code>&lt;then&gt;</code>.</td></tr><tr><td>Definição</td><td><p>Avalia <code>expression</code> e compara com as opções especificadas (<code>&lt;value1&gt;</code>, <code>&lt;value2&gt;</code>, etc.). Quando um <code>value</code> que corresponde à expressão é encontrado, CASE retorna o <code>return</code> correspondente. Se nenhuma correspondência for encontrada, a (opcional) padrão será retornada. Se não houver padrão e nenhuma correspondência de valor, Null será retornado.</p></td></tr><tr><td>Exemplo</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>"Olhe para o campo Season. Se o valor for Summer, retorna Sandals. Se o valor for Winter, retorna Boots. Se nenhuma das opções do cálculo corresponder ao que está no campo Season, retorna um Sneakers."</i></p></td></tr><tr><td>Observações</td><td><p>Veja também <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>.</p><p>Usado com <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>Dica</b>: muitas vezes você pode usar um grupo para obter os mesmos resultados de uma função CASE complicada ou usar CASE para substituir a funcionalidade de agrupamento nativo, como no exemplo anterior. Você pode querer testar qual é o melhor desempenho para o seu cenário.</p></blockquote></td></tr></tbody></table>

### ELSE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxe</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>Definição</td><td>Uma parte opcional da expressão <code>IF</code>&nbsp;ou <code>CASE</code> usada para especificar um valor padrão a ser retornado se nenhuma das expressões testadas for true.</td></tr><tr><td>Exemplo</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>Observações</td><td><p>Usado com <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> é opcional com <code>CASE</code> e <code>IF</code>. Em um cálculo onde <code>ELSE</code> não for especificado, se nenhum dos <code>&lt;test&gt;</code> forem true, o cálculo geral retornará nulo.</p><p><code>ELSE</code> não requer uma condição (como <code>[Season] = "Winter"</code>) e pode ser considerado uma forma de tratamento nulo.</p></td></tr></tbody></table>

### ELSEIF

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxe</td><td><code>[<b>ELSEIF</b> &lt;test2&gt; THEN &lt;then2&gt;]</code></td></tr><tr><td>Definição</td><td>Uma parte opcional de uma expressão <code>IF</code>&nbsp;usada para especificar condições adicionais além do IF inicial.</td></tr><tr><td>Exemplo</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>Observações</td><td><p>Usado com <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> pode ser considerado cláusulas adicionais <code>IF</code>. <code>ELSEIF</code> é opcional e pode ser repetido várias vezes.</p><p>Diferente de <code>ELSE</code>, <code>ELSEIF</code> requer uma condição (como <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>Definição</td><td>Usado para fechar uma expressão <code>IF</code>&nbsp;ou <code>CASE</code>.</td></tr><tr><td>Exemplo</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, então retorna Sandals. Caso contrário, observe a próxima expressão. Se Season = Winter, então retorna Boots. Se nenhuma das expressões for true, retorna 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>"Olhe para o campo Season. Se o valor for Summer, retorna Sandals. Se o valor for Winter, retorna Boots. Se nenhuma das opções do cálculo corresponder ao que está no campo Season, retorna um Sneakers."</i></i></p></td></tr><tr><td>Observações</td><td><p>Usado com <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>Sintaxe</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>Saída</td><td>Depende do tipo de dados dos valores <code>&lt;then&gt;</code>.</td></tr><tr><td>Definição</td><td><p>Testa uma série de expressões e retorna o valor <code>&lt;then&gt;</code> para o primeiro <code>&lt;test&gt;</code> true.</p></td></tr><tr><td>Exemplo</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, então retorna Sandals. Caso contrário, observe a próxima expressão. Se Season = Winter, então retorna Boots. Se nenhuma das expressões for true, retorna Sneakers."</i></p></td></tr><tr><td>Observações</td><td><p>Veja também <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>.</p><p>Usado com <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>Sintaxe</td><td><code>IFNULL(expr1, expr2)</code></td></tr><tr><td>Saída</td><td>Depende do tipo de dados dos valores <code>&lt;expr&gt;</code>.</td></tr><tr><td>Definição</td><td><p>Retorna <code>&lt;expr1&gt;</code> se for não nulo, caso contrário, retorna <code>&lt;expr2&gt;</code>.</p></td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">IFNULL([Assigned Room], "TBD")</pre><p><i>"Se o campo Assigned Room não for nulo, retorna seu valor. Se o campo Assigned Room for nulo, retorna TBD."</i></p></td></tr><tr><td>Observações</td><td><p>Compare com <a href="#ISNULL" class="xref">ISNULL</a>. <code>IFNULL</code> sempre retorna um valor. <code>ISNULL</code>&nbsp;retorna um booleano (true ou false).</p><p>Consulte também <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>Sintaxe</td><td><code><b>IIF</b>(&lt;test&gt;, &lt;then&gt;, &lt;else&gt;, [&lt;unknown&gt;])</code></td></tr><tr><td>Saída</td><td>Depende do tipo de dados dos valores na expressão.</td></tr><tr><td>Definição</td><td>Verifica se uma condição foi atendida (<code>&lt;test&gt;</code>) e retorna <code>&lt;then&gt;</code> se o teste for true, <code>&lt;else&gt;</code>&nbsp;se o teste for false e um valor opcional para <code>&lt;unknown&gt;</code>, se o teste for nulo. Se o desconhecido opcional não for especificado, <code>IIF</code> retorna nulo.</td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">IIF([Season] = 'Summer', 'Sandals', 'Other footwear')</pre><p><i>"Se Season = Summer, então retorna Sandals. Caso contrário, retorna 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, então retorna Sandals. Caso contrário, observe a próxima expressão. Se Season = Winter, então retorna Boots. Se nenhuma for true, retrona 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, então retorna Sandals. Caso contrário, observe a próxima expressão. Se Season = Winter, então retorna Boots. Se nenhuma das expressões for true, retorna Sneakers.”</i></p></td></tr><tr><td>Observações</td><td><p>Consulte também <a href="#IF" class="xref">IF</a> e <a href="#CASE" class="xref">CASE</a>.</p><p><code>IIF</code> não tem equivalente a <code>ELSEIF</code> (como <code>IF</code>) ou cláusulas <code>WHEN</code> repetidas (como <code>CASE</code>). Em vez disso, vários testes podem ser avaliados sequencialmente aninhando as declarações <code>IIF</code> como o elemento <code>&lt;unknown&gt;</code>. O primeiro true (mais externo) é retornado.</p><p>Ou seja, no cálculo abaixo o resultado será Red e não Orange, pois a expressão deixa de ser avaliada assim que A=A for avaliada como 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>Sintaxe</td><td><code>&lt;expr1&gt; IN &lt;expr2&gt;</code></td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Definição</td><td>Retorna <code>TRUE</code> se qualquer valor em <code>&lt;expr1&gt;</code> corresponde a qualquer valor em <code>&lt;expr2&gt;</code>.</td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">SUM([Cost]) IN&nbsp;(1000, 15, 200)</pre><p><i>"O valor do campo Custo é 1000, 15 ou 200?"</i></p><pre xml:space="preserve">[Field] IN&nbsp;[Set]</pre><p><i>"O valor do campo está presente no conjunto?"</i></p></td></tr><tr><td>Observações</td><td><p>Os valores <code>&lt;expr2&gt;</code> podem ser um conjunto, lista de valores literais ou campo combinado.</p><p>Consulte também <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>Sintaxe</td><td><code>ISDATE(string)</code></td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Definição</td><td>Retornará true se uma <code>&lt;string&gt;</code> for uma data válida. A expressão de entrada precisa ser um campo de cadeia de caracteres (texto).</td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">ISDATE("2018-09-22")</pre><p><i>"A cadeia de caracteres 2018-09-22 é uma data formatada corretamente?"</i></p></td></tr><tr><td>Observações</td><td><p>O que é considerado uma data válida depende da <a href="https://help.tableau.com/current/server/pt-br/lang_intro.htm" target="_blank">localidade</a> do sistema que avalia o cálculo. Por exemplo:</p><p>Nos Estados Unidos:</p><ul><li><code>ISDATE("2018-09-22") = TRUE</code></li><li><code>ISDATE("2018-22-09") = FALSE</code></li></ul><p>No Reino Unido: </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>Sintaxe</td><td><code>ISNULL(expression)</code></td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Definição</td><td><p>Retorna true se <code>&lt;expression&gt;</code> é NULL (não contém dados válidos).</p></td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">ISNULL([Assigned Room])</pre><p><i>"O campo Sala Atribuída é nulo?"</i></p></td></tr><tr><td>Observações</td><td><p>Compare com <a href="#IFNULL" class="xref">IFNULL</a>. <code>IFNULL</code> sempre retorna um valor. <code>ISNULL</code> retorna um booleano.</p><p>Consulte também <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>Sintaxe</td><td><code>MAX(expression)</code> ou <code>MAX(expr1, expr2)</code></td></tr><tr><td>Saída</td><td>Mesmo tipo de dados do argumento ou <code>NULL&nbsp;</code> se alguma parte do argumento for nula.</td></tr><tr><td>Definição</td><td><p>Retorna o máximo de dois argumentos, que devem ser do mesmo tipo de dados.</p><p><code>MAX</code> também pode ser aplicada a um único campo em uma agregação.</p></td></tr><tr><td>Exemplo</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>Observações</td><td><p><b>Para cadeia de caracteres</b></p><p><code>MAX</code> geralmente é o valor que vem por último em ordem alfabética.</p><p class="note">Para fontes de dados de bancos de dados, o valor de cadeia de caracteres <code>MAX</code> é o mais alto na sequência de classificação definida pelo banco de dados para essa coluna.</p><p><b>Para datas</b></p><p>Para datas, <code>MAX</code> é a data mais recente. Se <code>MAX</code> for uma agregação, o resultado não terá uma hierarquia de datas. Se <code>MAX</code> for uma comparação, o resultado manterá a hierarquia de datas.</p><p><b>Como uma agregação</b></p><p><code>MAX(expression)</code> é uma função agregada e retorna um único resultado agregado. Isso é exibido como <code>AGG(expression)</code> na visualização.</p><p><b>Como comparação</b></p><p><code>MAX(expr1, expr2)</code> compara os dois valores e retorna um valor em nível de linha.</p><p>Consulte também <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>Sintaxe</td><td><code>MIN(expression)</code> ou <code>MIN(expr1, expr2)</code></td></tr><tr><td>Saída</td><td>Mesmo tipo de dados do argumento ou <code>NULL&nbsp;</code> se alguma parte do argumento for nula.</td></tr><tr><td>Definição</td><td><p>Retorna, no mínimo, dois argumentos, que devem ser do mesmo tipo de dados.</p><p><code>MIN </code> também pode ser aplicada a um único campo em uma agregação.</p></td></tr><tr><td>Exemplo</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>Observações</td><td><p><b>Para cadeia de caracteres</b></p><p><code>MIN</code> geralmente é o valor que vem primeiro em ordem alfabética.</p><p class="note">Para fontes de dados de bancos de dados, o valor de cadeia de caracteres <code>MIN</code> é o mais baixo na sequência de classificação definida pelo banco de dados para essa coluna.</p><p><b>Para datas</b></p><p>Para datas, o <code>MIN</code> é a data mais antiga. Se <code>MIN</code> for uma agregação, o resultado não terá uma hierarquia de datas. Se <code>MIN</code> for uma comparação, o resultado manterá a hierarquia de datas.</p><p><b>Como uma agregação</b></p><p><code>MIN(expression)</code> é uma função agregada e retorna um único resultado agregado. Isso é exibido como <code>AGG(expression)</code> na visualização.</p><p><b>Como comparação</b></p><p><code>MIN(expr1, expr2)</code> compara os dois valores e retorna um valor em nível de linha.</p><p>Consulte também <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>Sintaxe</td><td><code>NOT&nbsp;&lt;expression&gt;</code></td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Definição</td><td>Realiza uma negação lógica em uma expressão.</td></tr><tr><td>Exemplo</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 não é igual a Summer, então retorna Don't wear sandals. Caso contrário, retorna Wear sandals"</i></p></td></tr><tr><td>Observações</td><td><p>Frequentemente usado com <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Veja também <a href="#top" class="xref">AND</a> e <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>Sintaxe</td><td><code>&lt;expr1&gt; OR &lt;expr2&gt;</code></td></tr><tr><td>Saída</td><td>Booleano (true ou false)</td></tr><tr><td>Definição</td><td>Realiza uma disjunção lógica em duas expressões.</td></tr><tr><td>Exemplo</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;ou (Season = Fall)&nbsp;for true, retorna Sneakers."</i></p></td></tr><tr><td>Observações</td><td><p>Frequentemente usado com <a href="#IF" class="xref">IF</a> e <a href="#IIF" class="xref">IIF</a>. Veja também <a href="#top" class="xref">AND</a> e <a href="#NOT" class="xref">NOT</a>.</p><p>Se uma das expressões for <code>TRUE</code>, o resultado será <code>TRUE</code>. Se ambas as expressões forem <code>FALSE</code>, o resultado será <code>FALSE</code>. Se ambas as expressões forem <code>NULL</code>, o resultado será <code>NULL</code>.</p><p>Se você criar um cálculo que exibe o resultado de uma comparação <code>OR</code> em uma planilha, o Tableau exibirá TRUE e FALSE. Para alterar isso, use a área Formatar na caixa de diálogo de formatação.</p><p class="note"><b>Observação</b>: o operador <code>OR</code> emprega <em>short circuit evaluation.</em> Isso significa que se a primeira expressão for avaliada como <code>TRUE</code>, a segunda expressão não será avaliada. Isso poderá ser útil se a segunda expressão resultar em um erro quando a primeira for <code>TRUE</code>, pois a segunda expressão nesse caso nunca será avaliada.</p></td></tr></tbody></table>

### THEN

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>Sintaxe</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>Definição</td><td>Uma parte obrigatória de uma expressaõ <code>IF</code>, <code>ELSEIF</code> ou <code>CASE</code>, usada para definir qual resultado retornar se um valor ou teste específico for true.</td></tr><tr><td>Exemplo</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, então retorna Sandals. Caso contrário, observe a próxima expressão. Se Season = Winter, então retorna Boots. Se nenhuma das expressões for true, retorna 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>"Olhe para o campo Season. Se o valor for Summer, retorna Sandals. Se o valor for Winter, retorna Boots. Se nenhuma das opções do cálculo corresponder ao que está no campo Season, retorna um Sneakers."</i></i></p></td></tr><tr><td>Observações</td><td><p>Usado com <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>Sintaxe</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>Definição</td><td>Uma parte obrigatória de uma expressão <code>CASE</code>. Encontra o primeiro &lt;<code>&lt;value&gt;</code>&gt; que corresponde <code>&lt;expression&gt;</code>&gt; e retorna ao <code>&lt;then&gt;</code> correspondente.</td></tr><tr><td>Exemplo</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>"Olhe para o campo Season. Se o valor for Summer, retorna Sandals. Se o valor for Winter, retorna Boots. Se nenhuma das opções do cálculo corresponder ao que está no campo Season, retorna um Sneakers."</i></p></td></tr><tr><td>Observações</td><td><p>Usado com <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> também aceita a construção <code>WHEN IN</code>, como:</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>Os valores aos quais <code>WHEN IN</code> se compara precisam ser um conjunto, lista de valores literais ou campo combinado. Consulte também <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>Sintaxe</td><td><code>ZN(expression)</code></td></tr><tr><td>Saída</td><td>Depende do tipo de dados de <code>&lt;expression&gt;</code>ou 0.</td></tr><tr><td>Definição</td><td>Retorna &lt;expression&gt; se não for nulo, caso contrário, retorna zero.</td></tr><tr><td>Exemplo</td><td><pre xml:space="preserve">ZN([Test Grade])</pre><p><i>"Se Test Grade não for nulo, retorne o valor. Se Test Grade for nulo, retorne 0."</i></p></td></tr><tr><td>Observações</td><td><p><code>ZN</code> é um caso especializado de <a href="#IFNULL" class="xref">IFNULL</a> onde a alternativa é se a expressão for nula é sempre 0, em vez de ser especificada no cálculo.</p><p><code>ZN</code> é especialmente útil ao realizar cálculos adicionais, e um valor nulo tornaria todo o cálculo nulo. No entanto, tenha cuidado ao interpretar esses resultados, pois nulo nem sempre é sinônimo de 0 e pode representar dados ausentes.</p><p>Consulte também <a href="#ISNULL" class="xref">ISNULL</a>.</p></td></tr></tbody></table>  

**Observação**: alguns deles são na verdade operadores lógicos e aparecem em preto, não em azul. Para obter mais informações, consulte [Sintaxe de operador](https://help.tableau.com/v0.0/pro/desktop/pt-br/functions_operators.htm#Operators).

Observação sobre CASE, IF e IIF

CASE é geralmente mais fácil de usar do que IF ou IIF. Em muitos casos, IF, IIF e CASE podem ser usados de forma intercambiável. Uma instrução CASE sempre pode ser reescrita como uma instrução IF, embora a função CASE geralmente seja mais concisa e possa ser mais fácil de entender. Entretanto, nem todas as instruções IF podem ser escritas como instruções CASE, porque cada ELSEIF pode referir-se a um campo diferente.

**Dica**: vamos comparar um exemplo usando a mesma lógica nessas três funções:  

<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>A estrutura CASE é muito simples e fácil de escrever e entender. No entanto, a expressão (aqui, [Region]) não pode ser uma operação lógica, ao contrário de IF ou IIF.</p><p>Nulos são tratados da mesma forma para CASE e IF.</p></td><td><p>A estrutura IF&nbsp;THEN&nbsp;permite múltiplas cláusulas ELSEIF, o que torna as múltiplas avaliações muito mais fáceis do que com IIF.</p><p><b>Tratamento nulo</b>: quaisquer resultados desconhecidos (nulos) são tratados pela mesma cláusula ELSE como resultados falsos. Aqui, qualquer região diferente das quatro especificadas (incluindo nula) receberá o valor 5.</p></td><td><p>A estrutura IIF lida com resultados desconhecidos de maneira diferente dos resultados falsos e tem uma sintaxe diferente de IF. A desvantagem do tratamento nulo específico é o aninhamento, como acima, que pode ser difícil de escrever e entender.</p><p><b>Tratamento nulo</b>: qualquer região não nula diferente das quatro especificadas receberá um valor 5, mas um valor nulo receberá 0.</p></td></tr></tbody></table>

**Observação**: muitas vezes, você pode usar um grupo para obter os mesmos resultados de uma função case complicada. Teste para ver se uma opção tem melhor desempenho que a outra.

### Exemplos

As funções CASE podem ser úteis para cenários como realiasing:

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 dar ao usuário final a capacidade de selecionar qual medida visualizar em um gráfico quando usado com um [parâmetro](https://www.tableau.com/es-es/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

## Criar um cálculo lógico

Siga as etapas abaixo para saber como criar um cálculo lógico.

1. No Tableau Desktop, conecte-se à fonte de dados salva **Exemplo - Superloja**, incluída no Tableau.
2. Navegue até uma planilha.
3. No painel **Dados**, arraste Estado até a divisória Linhas.
4. No painel **Dados**, arraste Categoria até a divisória Linhas e coloque-a à direita de Estado.
5. No painel **Dados**, arraste Vendas até a divisória Colunas.
6. Selecione Análise > Criar campo calculado.
7. No editor de cálculo aberto, faça o seguinte:
    - Nomeie o campo calculado KPI (indicador-chave de desempenho).
    - Insira a fórmula a seguir:
        
        SUM(\[Profit\]) > 0
        
        Este cálculo verifica rapidamente se um membro é maior do que zero. Se for, ele retorna true, caso contrário, ele retorna false.
    - Ao terminar, clique em **OK**.

O novo campo calculado aparece em Medidas no painel Dados. Assim como os outros campos, é possível usá-lo em uma ou mais visualizações.

9. No painel **Dados**, arraste **KPI** até **Color** no cartão Marcas.
    
    Agora é possível visualizar quais categorias estão perdendo dinheiro em cada estado.
    
    ![Função lógica aplicada a um gráfico de barras para destacar as categorias de produtos que estão perdendo dinheiro em cada estado.](/tableau/next/pt-br/pro/desktop/pt-br/Img/logicalfunctions1.png)

## Consulte também

[Visualizar indicadores-chave de progresso](https://help.tableau.com/v0.0/pro/desktop/pt-br/kpi.htm)

[Funções no Tableau](https://help.tableau.com/v0.0/pro/desktop/pt-br/functions.htm)

[Funções do Tableau (por categoria)](https://help.tableau.com/v0.0/pro/desktop/pt-br/functions_all_categories.htm)

[Funções do Tableau (em ordem alfabética)](https://help.tableau.com/v0.0/pro/desktop/pt-br/functions_all_alphabetical.htm)