Pular para o conteúdo

SE, E/OU, SEERRO, COALESCE, EHVAZIO, ESCOLHER

Aula 3 de 137 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 7 min.

Objetivo: Tratar vazio e erro sem inventar zero

Selo de estado: Preview (teto atual do produto) · Curso ACD-320 — Fórmulas pt-BR: de SOMA a CALCULAR · Aula 3 de 13 · Atualizado em 2026-10-04.

Objetivo#

Ao final desta aula você vai tratar vazio e erro sem inventar zero.

Vídeo#

Identificador no manifesto: acd-320-03-logica-e-tratamento-de-vazio · duração-alvo 7 min · tela do produto: /dashboards.

Roteiro:

#CapítuloMinutagem-alvoRota
1Abertura — a família Lógica (8 funções)00:00–00:40/dashboards
2SE com e sem o "senão"00:40–02:00/dashboards (editor de fórmulas)
3E e OU — quantas condições aceitam02:00–03:10/dashboards (editor de fórmulas)
4SEERRO, COALESCE, EHVAZIO — três formas de lidar com vazio03:10–05:00/dashboards (editor de fórmulas)
5ESCOLHER — faixas de ticket com múltiplos casos05:00–06:20/dashboards (editor de fórmulas)
6Encerramento — "faça você mesmo"06:20–07:00/dashboards

Conteúdo#

A categoria Lógica tem oito funções; esta aula cobre as seis mais usadas em medida de negócio: decidir entre dois caminhos (SE), combinar condições (E/OU), lidar com erro e vazio sem travar o painel (SEERRO, COALESCE, EHVAZIO) e escolher entre vários casos (ESCOLHER).

SE — compatível com o DAX, com uma pegadinha

código
SE(expr; arg2; [arg3])

Sem o terceiro argumento ("senão"), a resposta fica vazia — nunca FALSO, nunca 0. É o mesmo comportamento do BLANK que o IF do DAX devolve.

formula
SE(SOMA(valor) > 1000; "meta batida"; "abaixo")

Alias: if.

E e OU — aqui aceitam quantas condições você quiser

código
E(expr; arg2; …)
OU(expr; arg2; …)

DIFEREM do DAX. O AND()/OR() do DAX travam em exatamente 2 condições — para combinar três ou mais, é preciso encadear &&/|| ou aninhar AND/OR. Aqui E/OU aceitam quantas condições você quiser, de uma vez:

formula
SE(E(SOMA(valor) > 1000; MEDIA(valor) > 100); 1; 0)
formula
SE(OU(SOMA(valor) > 1000; CONTD(pedido_id) > 50); 1; 0)

O vazio é tratado como falso — regra da planilha, não zero artificial, falso mesmo.

SEERRO — pega erro E vazio

código
SEERRO(expr; arg2)

DIFERE do DAX. O IFERROR do DAX só troca pela alternativa quando a conta dá erro. SEERRO aqui cai na alternativa quando a conta dá erro ou fica vazia — o que inclui, por exemplo, uma divisão por zero que já devolve vazio (aula 1).

formula
SEERRO(DIVIDIR(SOMA(custo); SOMA(valor)); 0)

Isso quer dizer que SEERRO(DIVIDIR(a; b); 0) e DIVIDIR(a; b; 0) dão o mesmo resultado — use a forma que deixar a fórmula mais legível.

COALESCE — o primeiro valor que não é vazio

código
COALESCE(expr; arg2; …)

Devolve o primeiro valor preenchido da lista; se todos estiverem vazios, devolve vazio. Igual ao COALESCE do DAX.

formula
COALESCE(SOMA(desconto); 0)

Preenche um desconto ausente com 0 no lugar de deixar a célula vazia — útil quando "sem desconto" deve aparecer como zero visível, não como um branco que parece erro.

EHVAZIO — o teste direto

código
EHVAZIO(expr)

Devolve 1 quando o valor é vazio, 0 quando preenchido — número, não VERDADEIRO/FALSO (mesma convenção lógica do motor inteiro).

formula
SE(EHVAZIO(SOMA(desconto)); "sem desconto"; "com desconto")

Alias: isblank.

ESCOLHER — o SWITCH em português

código
ESCOLHER(expr; arg2; arg3; …)

Compara o primeiro valor contra cada "caso" em sequência e devolve o resultado correspondente; o último argumento (quando a lista é par) é o padrão. Aceita o alias CASO.

formula
ESCOLHER(SE(MEDIA(valor) > 300; "alto"; SE(MEDIA(valor) > 100; "medio"; "baixo")); "alto"; "Ticket alto"; "medio"; "Ticket médio"; "Ticket baixo")

Essa combinação — SE aninhado para montar a faixa, ESCOLHER para rotular — é o padrão de "faixa de cliente"/"status do pedido" que aparece o tempo todo em modelo de BI.

NAO — a oitava função da categoria

código
NAO(expr)

Compatível com NOT: inverte a condição. Combinada com EHVAZIO, dá o teste "preenchido":

formula
SE(NAO(EHVAZIO(SOMA(desconto))); "com desconto"; "sem desconto")

(É o espelho exato do exemplo de EHVAZIO acima — mesma lógica, condição invertida.)

As seis funções desta aula, de um olhar

FunçãoAliasO vazio conta comoDAX
SEiffalso na condição; sem "senão" → vazio= DAX
Eandvazio em qualquer condição pode gerar vazio≠ DAX (aceita N condições)
OUoridem≠ DAX (aceita N condições)
SEERROiferrorcai na alternativa (erro ou vazio)≠ DAX (DAX só pega erro)
COALESCEprimeiropula o vazio, pega o próximo= DAX
EHVAZIOisblanké o próprio teste= DAX
ESCOLHERswitch, casovazio no padrão se não casar= DAX

Erros comuns

formula-errada
SE(valor > 100, 1, 0)

, continua sendo o erro mais comum de quem troca de Excel/DAX-EN — releia a aula 1: aqui é sempre ;.

  • Esperar que E/OU tragam só 2 condições — eles aceitam N, sem precisar aninhar.
  • Usar SEERRO esperando que só erro caia na alternativa — vazio também cai.
  • Esquecer o padrão final em ESCOLHER — sem ele, um valor que não bate em nenhum caso devolve vazio.

Estado da capacidade

Esta aula é conceitual: as seis funções não têm uma capabilityId própria na matriz (são parte do núcleo escalar do motor, coberto pelo sistema de tipos geral). Nenhuma delas é "GA" — o produto inteiro está em Preview.

Faça você mesmo#

No workspace de treino Aurora Varejo (abra /dashboards no console):

  1. Crie uma coluna calculada ou medida de teste com SEERRO(DIVIDIR(SOMA(custo); SOMA(valor)); 0) e confirme que ela não quebra quando não há venda no grupo.
  2. Monte a faixa de ticket com ESCOLHER(SE(MEDIA(valor) > 300; "alto"; SE(MEDIA(valor) > 100; "medio"; "baixo")); "alto"; "Ticket alto"; "medio"; "Ticket médio"; "Ticket baixo").
  3. Troque o ESCOLHER por SE aninhado e compare a legibilidade das duas versões.
  4. Crie COALESCE(SOMA(valor); 0) e EHVAZIO(SOMA(valor)) como medidas de apoio e compare, num grupo sem venda, o que cada uma devolve: a primeira troca o vazio por zero, a segunda só responde verdadeiro/falso.

Você terminou quando a fórmula de faixa de ticket validar no editor e você conseguir explicar, com suas palavras, a diferença entre SEERRO e o IFERROR do DAX.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

(conceitual — sem capacidade específica da matriz) — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…