Funções condicionais no LibreOffice Calc: SE, E, OU e tratamento de erros

Capítulo 5

Tempo estimado de leitura: 6 minutos

+ Exercício

O que são funções condicionais e por que elas importam em controles

Funções condicionais permitem que a planilha tome decisões com base em testes lógicos, retornando resultados diferentes conforme a situação. Em controles e relatórios, isso é útil para padronizar classificações, gerar status (em dia/atrasado), sinalizar metas e criar alertas automáticos. A base é sempre a mesma: você define uma condição (um teste) e o Calc devolve um valor quando a condição é verdadeira e outro quando é falsa.

Testes lógicos (Verdadeiro/Falso)

Um teste lógico é uma expressão que resulta em VERDADEIRO ou FALSO, como B2>0, C2="Pago", D2<=HOJE(). Esses testes são combinados com funções como SE, E, OU e NÃO.

  • Operadores comuns: =, <> (diferente), >, <, >=, <=
  • Texto deve estar entre aspas: "Pago"
  • Datas funcionam como números; compare com HOJE() para status dinâmico

SE: a função condicional principal

SE avalia uma condição e retorna um valor se for verdadeira e outro se for falsa.

SE(teste_lógico; valor_se_verdadeiro; valor_se_falso)

Exemplo: alerta simples de valor

Se a despesa for maior que 1000, marcar como “ALTO”, senão “OK”:

=SE(C2>1000; "ALTO"; "OK")

Dica de padronização

Para filtros e relatórios, use mensagens curtas e consistentes (ex.: “EM DIA”, “ATRASADO”, “PAGO”), evitando variações como “Atrasado!” ou “atrasado”.

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

E, OU e NÃO: combinando condições

E: todas as condições precisam ser verdadeiras

E(condição1; condição2; ...)

Exemplo: marcar “APROVAR” somente se o valor for até 500 e a categoria for “Escritório”:

=SE(E(C2<=500; B2="Escritório"); "APROVAR"; "REVISAR")

OU: basta uma condição ser verdadeira

OU(condição1; condição2; ...)

Exemplo: alertar se a despesa é “Viagem” ou se o valor é maior que 2000:

=SE(OU(B2="Viagem"; C2>2000); "ALERTA"; "OK")

NÃO: inverte o resultado lógico

NÃO(condição)

Exemplo: se NÃO estiver pago, retornar “PENDENTE”:

=SE(NÃO(D2="Pago"); "PENDENTE"; "PAGO")

Observação: muitas vezes você pode escrever a condição diretamente (por exemplo, D2<>"Pago"), mas NÃO ajuda quando a condição já está pronta ou é mais complexa.

SES (quando aplicável): múltiplas condições sem “SE” aninhado

Quando você precisa testar várias faixas ou cenários, é comum criar “SE dentro de SE” (SE aninhado). Em versões que suportam SES, você pode escrever de forma mais legível: define pares de (condição; resultado) em sequência.

SES(condição1; resultado1; condição2; resultado2; ...)

Exemplo: classificação de despesas por faixa de valor

Classificar o valor (C2) em “BAIXA”, “MÉDIA” e “ALTA”:

=SES(C2<=200; "BAIXA"; C2<=1000; "MÉDIA"; C2>1000; "ALTA")

Se SES não estiver disponível no seu Calc, use SE aninhado:

=SE(C2<=200; "BAIXA"; SE(C2<=1000; "MÉDIA"; "ALTA"))

SEERRO: planilhas mais robustas (evitando #DIV/0!, #N/D etc.)

SEERRO captura erros de uma expressão e substitui por um valor padrão. Isso é essencial em relatórios, para evitar que um erro “quebre” totais, gráficos ou filtros.

SEERRO(expressão; valor_se_erro)

Exemplo: custo médio sem erro de divisão por zero

Se você calcula Total/Quantidade e a quantidade pode estar vazia ou zero:

=SEERRO(E2/F2; 0)

Em vez de 0, você pode retornar texto padronizado:

=SEERRO(E2/F2; "SEM DADOS")

Boas práticas com SEERRO

  • Use SEERRO para tratar erros esperados (ex.: divisão por zero, busca sem resultado).
  • Evite “esconder” erros que indicam problema de preenchimento; quando fizer sentido, retorne uma mensagem como "REVISAR" para facilitar auditoria.

Cenários práticos aplicados a controles e relatórios

1) Classificação de despesas (categoria e valor)

Suponha colunas: A:Data, B:Categoria, C:Valor. Você quer uma coluna D:Classe com regras:

  • Se Categoria = “Impostos” OU Valor > 3000 → “CRÍTICA”
  • Senão, se Valor > 1000 → “ALTA”
  • Senão → “NORMAL”
=SE(OU(B2="Impostos"; C2>3000); "CRÍTICA"; SE(C2>1000; "ALTA"; "NORMAL"))

2) Status de pagamento (em dia/atrasado/pago)

Estrutura sugerida: A:Fornecedor, B:Vencimento, C:Valor, D:Data_Pagto. Regras:

  • Se D não estiver vazia → “PAGO”
  • Senão, se B < HOJE() → “ATRASADO”
  • Senão → “EM DIA”
=SE(D2<>""; "PAGO"; SE(B2<HOJE(); "ATRASADO"; "EM DIA"))

Observação: deixar Data_Pagto vazia para pendências facilita a lógica e o filtro.

3) Metas atingidas (atingiu/não atingiu e alerta)

Estrutura: A:Vendedor, B:Meta, C:Realizado. Regras:

  • Se Realizado >= Meta → “ATINGIU”
  • Senão → “NÃO ATINGIU”
=SE(C2>=B2; "ATINGIU"; "NÃO ATINGIU")

Para um alerta adicional quando estiver muito abaixo (ex.: abaixo de 70% da meta):

=SE(C2>=B2; "ATINGIU"; SE(C2<0,7*B2; "ALERTA"; "EM RISCO"))

Atividade prática: criar uma coluna “Status” padronizada para filtros e relatórios

Objetivo: criar uma coluna Status com mensagens consistentes, fáceis de filtrar e usar em tabelas dinâmicas/relatórios.

Dados do cenário

Monte (ou adapte) uma tabela com estas colunas:

ColunaNomeExemplo
ADocumentoNF-1023
BVencimento15/02/2026
CValor1250,00
DData_Pagto(vazio) ou 10/02/2026
EStatus(a calcular)

Regras claras (padrão de mensagens)

  • Se Data_Pagto preenchida → “PAGO”
  • Se Data_Pagto vazia e Vencimento < HOJE() → “ATRASADO”
  • Se Data_Pagto vazia e Vencimento entre HOJE() e HOJE()+7 → “VENCE EM 7 DIAS”
  • Senão → “EM DIA”

Passo a passo

  1. Na célula E1, digite o cabeçalho Status.

  2. Na célula E2, insira a fórmula abaixo:

    =SE(D2<>""; "PAGO"; SE(B2<HOJE(); "ATRASADO"; SE(B2<=HOJE()+7; "VENCE EM 7 DIAS"; "EM DIA")))
  3. Copie a fórmula para baixo (arrastando a alça de preenchimento) para todas as linhas com dados.

  4. Teste com exemplos: deixe Data_Pagto vazia e altere Vencimento para datas antes e depois de hoje para ver o status mudar.

  5. Crie um filtro na tabela e filtre por Status para listar apenas “ATRASADO” ou “VENCE EM 7 DIAS”.

Tratamento de erros no Status (opcional, recomendado)

Se houver risco de Vencimento estar vazio ou inválido, envolva a lógica com SEERRO para padronizar a saída:

=SEERRO(SE(D2<>""; "PAGO"; SE(B2<HOJE(); "ATRASADO"; SE(B2<=HOJE()+7; "VENCE EM 7 DIAS"; "EM DIA"))); "REVISAR")

Assim, qualquer linha com problema de data retorna “REVISAR”, facilitando correção e auditoria.

Variações úteis para relatórios

  • Status numérico para ordenação (ex.: 1=ATRASADO, 2=VENCE EM 7 DIAS, 3=EM DIA, 4=PAGO) e, em outra coluna, o texto. Isso ajuda a ordenar por prioridade.
  • Combinar valor com status: por exemplo, alertar “ATRASADO (ALTO VALOR)” quando Valor > 5000 usando E dentro do ramo de atrasado.

Agora responda o exercício sobre o conteúdo:

Em uma coluna Status no LibreOffice Calc, qual fórmula atende às regras: se Data_Pagto estiver preenchida → "PAGO"; se estiver vazia e Vencimento < HOJE() → "ATRASADO"; se estiver vazia e Vencimento <= HOJE()+7 → "VENCE EM 7 DIAS"; senão → "EM DIA"?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

A alternativa correta prioriza Data_Pagto preenchida para retornar "PAGO". Se estiver vazia, testa vencido (B2<HOJE()), depois vence em até 7 dias (B2<=HOJE()+7) e, caso contrário, retorna "EM DIA".

Próximo capitúlo

Funções de busca e referência no Calc para cruzamento de informações

Arrow Right Icon
Capa do Ebook gratuito LibreOffice Calc: Planilhas para Controle e Relatórios
38%

LibreOffice Calc: Planilhas para Controle e Relatórios

Novo curso

13 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.