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
Sintaxe | <expr1> AND <expr2> |
Definição | Realiza uma conjunção lógica em duas expressões. (Se ambos os lados forem true, o teste lógico retornará true.) |
Saída | Booleano (true ou false) |
Exemplo | IF [Season] = "Spring" AND "[Season] = "Fall" "Se ambos (Season = Spring) e (Season = Fall) forem true simultaneamente, então retorna It's the apocalypse and footwear doesn't matter." |
Observações | Frequentemente usado com IF e IIF. Veja também NOT e OU. Se ambas as expressões forem Se você criar um cálculo no qual o resultado de uma comparação Observação: o operador |
CASE
Sintaxe | CASE <expression>
|
Saída | Depende do tipo de dados dos valores <then> . |
Definição | Avalia |
Exemplo |
"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." |
Observações | Usado com WHEN, THEN, ELSE e END. Dica: 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. |
ELSE
Sintaxe | CASE <expression>
|
Definição | Uma parte opcional da expressão IF ou CASE usada para especificar um valor padrão a ser retornado se nenhuma das expressões testadas for true. |
Exemplo | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
Observações | Usado com CASE, WHEN, IF, ELSEIF, THEN e END
|
ELSEIF
Sintaxe | [ELSEIF <test2> THEN <then2>] |
Definição | Uma parte opcional de uma expressão IF usada para especificar condições adicionais além do IF inicial. |
Exemplo | IF [Season] = "Summer" THEN 'Sandals' |
Observações | Usado com IF, THEN, ELSE e END
Diferente de |
END
Definição | Usado para fechar uma expressão IF ou CASE . |
Exemplo | IF [Season] = "Summer" THEN 'Sandals' "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." CASE [Season] "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." |
Observações |
IF
Sintaxe | IF <test1> THEN <then1> |
Saída | Depende do tipo de dados dos valores <then> . |
Definição | Testa uma série de expressões e retorna o valor |
Exemplo | IF [Season] = "Summer" THEN 'Sandals' "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." |
Observações |
IFNULL
Sintaxe | IFNULL(expr1, expr2) |
Saída | Depende do tipo de dados dos valores <expr> . |
Definição | Retorna |
Exemplo | IFNULL([Assigned Room], "TBD") "Se o campo Assigned Room não for nulo, retorna seu valor. Se o campo Assigned Room for nulo, retorna TBD." |
Observações | Compare com ISNULL. Consulte também ZN. |
IIF
Sintaxe | IIF(<test>, <then>, <else>, [<unknown>]) |
Saída | Depende do tipo de dados dos valores na expressão. |
Definição | Verifica se uma condição foi atendida (<test> ) e retorna <then> se o teste for true, <else> se o teste for false e um valor opcional para <unknown> , se o teste for nulo. Se o desconhecido opcional não for especificado, IIF retorna nulo. |
Exemplo | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') "Se Season = Summer, então retorna Sandals. Caso contrário, retorna Other footwear" IIF([Season] = 'Summer', 'Sandals', "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." IIF('Season' = 'Summer', 'Sandals', "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.” |
Observações |
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:
|
IN
Sintaxe | <expr1> IN <expr2> |
Saída | Booleano (true ou false) |
Definição | Retorna TRUE se qualquer valor em <expr1> corresponde a qualquer valor em <expr2> . |
Exemplo | SUM([Cost]) IN (1000, 15, 200) "O valor do campo Custo é 1000, 15 ou 200?" [Field] IN [Set] "O valor do campo está presente no conjunto?" |
Observações | Os valores Consulte também WHEN. |
ISDATE
Sintaxe | ISDATE(string) |
Saída | Booleano (true ou false) |
Definição | Retornará true se uma <string> for uma data válida. A expressão de entrada precisa ser um campo de cadeia de caracteres (texto). |
Exemplo | ISDATE("2018-09-22") "A cadeia de caracteres 2018-09-22 é uma data formatada corretamente?" |
Observações | O que é considerado uma data válida depende da localidade(O link abre em nova janela) do sistema que avalia o cálculo. Por exemplo: Nos Estados Unidos:
No Reino Unido:
|
ISNULL
Sintaxe | ISNULL(expression) |
Saída | Booleano (true ou false) |
Definição | Retorna true se |
Exemplo | ISNULL([Assigned Room]) "O campo Sala Atribuída é nulo?" |
Observações | Compare com IFNULL. Consulte também ZN. |
MAX
Sintaxe | MAX(expression) ou MAX(expr1, expr2) |
Saída | Mesmo tipo de dados do argumento ou NULL se alguma parte do argumento for nula. |
Definição | Retorna o máximo de dois argumentos, que devem ser do mesmo tipo de dados.
|
Exemplo | MAX(4,7) = 7 |
Observações | Para cadeia de caracteres
Para fontes de dados de bancos de dados, o valor de cadeia de caracteres Para datas Para datas, Como uma agregação
Como comparação
Consulte também |
MIN
Sintaxe | MIN(expression) ou MIN(expr1, expr2) |
Saída | Mesmo tipo de dados do argumento ou NULL se alguma parte do argumento for nula. |
Definição | Retorna, no mínimo, dois argumentos, que devem ser do mesmo tipo de dados.
|
Exemplo | MIN(4,7) = 4 |
Observações | Para cadeia de caracteres
Para fontes de dados de bancos de dados, o valor de cadeia de caracteres Para datas Para datas, o Como uma agregação
Como comparação
Consulte também |
NOT
Sintaxe | NOT <expression> |
Saída | Booleano (true ou false) |
Definição | Realiza uma negação lógica em uma expressão. |
Exemplo | IF NOT [Season] = "Summer" "Se Season não é igual a Summer, então retorna Don't wear sandals. Caso contrário, retorna Wear sandals" |
Observações |
OU
Sintaxe | <expr1> OR <expr2> |
Saída | Booleano (true ou false) |
Definição | Realiza uma disjunção lógica em duas expressões. |
Exemplo | IF [Season] = "Spring" OR [Season] = "Fall" "Se (Season = Spring) ou (Season = Fall) for true, retorna Sneakers." |
Observações | Frequentemente usado com IF e IIF. Veja também AND e NOT. Se uma das expressões for Se você criar um cálculo que exibe o resultado de uma comparação Observação: o operador |
THEN
Sintaxe | IF <test1> THEN <then1>
|
Definição | Uma parte obrigatória de uma expressaõ IF , ELSEIF ou CASE , usada para definir qual resultado retornar se um valor ou teste específico for true. |
Exemplo | IF [Season] = "Summer" THEN 'Sandals' "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." CASE [Season] "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." |
Observações |
WHEN
Sintaxe | CASE <expression>
|
Definição | Uma parte obrigatória de uma expressão CASE . Encontra o primeiro <<value> > que corresponde <expression> > e retorna ao <then> correspondente. |
Exemplo | CASE [Season] "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." |
Observações | Usado com CASE, THEN, ELSE e END.
CASE <expression> Os valores aos quais |
ZN
Sintaxe | ZN(expression) |
Saída | Depende do tipo de dados de <expression> ou 0. |
Definição | Retorna <expression> se não for nulo, caso contrário, retorna zero. |
Exemplo | ZN([Test Grade]) "Se Test Grade não for nulo, retorne o valor. Se Test Grade for nulo, retorne 0." |
Observações |
Consulte também ISNULL. |
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.
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:
CASE | IF | IIF |
CASE [Region] | IF [Region] = 'West' THEN 1 | IIF([Region] = 'West', 1, |
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. Nulos são tratados da mesma forma para CASE e IF. | A estrutura IF THEN permite múltiplas cláusulas ELSEIF, o que torna as múltiplas avaliações muito mais fáceis do que com IIF. Tratamento nulo: 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. | 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. Tratamento nulo: qualquer região não nula diferente das quatro especificadas receberá um valor 5, mas um valor nulo receberá 0. |
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(O link abre em nova janela):
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.
- No Tableau Desktop, conecte-se à fonte de dados salva Exemplo - Superloja, incluída no Tableau.
- Navegue até uma planilha.
- No painel Dados, arraste Estado até a divisória Linhas.
- No painel Dados, arraste Categoria até a divisória Linhas e coloque-a à direita de Estado.
- No painel Dados, arraste Vendas até a divisória Colunas.
- Selecione Análise > Criar campo calculado.
- 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.
- No painel Dados, arraste KPI até Color no cartão Marcas.
Agora é possível visualizar quais categorias estão perdendo dinheiro em cada estado.
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.
Consulte também
Visualizar indicadores-chave de progresso