Função Do Que E Do Se - Função Do Que e Se | PDF
Função Do Que e Se | PDF

Função SE e condições lógicas no dia a dia

A função SE do que e do se é basicamente o operador condicional mais usado em planilhas e programação. Você passa uma condição, e ela retorna um valor se for verdadeira ou outro se for falsa. Parece simples até você tentar aninhar cinco SEs dentro de uma célula e o Excel travar.

Como a função SE na prática

A sintaxe é SE(condição; valor_se_verdadeiro; valor_se_falso). O ponto e vírgula separa os argumentos porque a vírgula já é usada como separador de coluna em algumas configurações regionais. Se você errar o separador, a função não calcula e retorna erro #NOME?. No meu caso, tinha uma planilha de controle de estoque com 12 mil linhas e usei SE aninhado para classificar produtos por nível de giro. Funcionou até atualizarmos para o Google Sheets e o separador mudar de ponto e vírgula para vírgula. Levei duas horas para corrigir porque não anotei a configuração regional original.

Pegadinhas que ninguém conta

O primeiro erro comum é esquecer que valores vazios são tratados como FALSE em comparações diretas. Se sua célula estiver em branco, o SE não retorna o valor padrão — ele gera um erro silencioso que só aparece quando você soma a coluna inteira. A workaround é usar SE.VAZIO() ou combinar com SEERRO para capturar antes do cálculo final. O segundo erro é confundir SE com SE.E e SE.OU. O SE.E exige que todas as condições sejam verdadeiras, enquanto o SE.OU basta uma. Em planilhas de aprovação de crédito, já vi gente usar SE.E quando deveria ser SE.OU, e o resultado era rejeitar candidatos que atendiam a pelo menos um dos requisitos. Isso custa tempo de análise e dinheiro na operação.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Limitações reais da função SE

A função SE padrão tem um limite prático de 64 aninhamentos no Excel antigo, e 256 no Excel 365. Se você precisa de mais condições, o melhor é usar uma tabela de mapeamento com PROCX.VERT ou criar uma função definida pelo usuário em VBA. Isso costuma cortar o processo de 3 horas para sobre 15 minutos, dependendo da complexidade. O problema é que funções condicionais não escalam linearmente. Cada SE aninhado adiciona tempo de recálculo, e em planilhas com 50 mil linhas, o desempenho cai de forma perceptível. A alternativa é usar funções matriciais ou segmentar o cálculo por abas. Isso geralmente corta o tempo de processamento de 45 segundos para sobre 8 segundos por atualização.

Quando a função SE falha completamente

Em comparações de texto com acentos, o SE pode retornar resultados inesperados porque o Excel trata "São Paulo" e "Sao Paulo" como valores diferentes. A workaround é usar ARRUMAR() para normalizar antes da comparação, ou configurar a planilha para ignorar acentos nas fórmulas. Isso geralmente resolve o problema sem precisar de macros. Já encontrei um edge-case onde o SE retornava TRUE para valores numericamente iguais mas textualmente diferentes, como "100" e 100. O problema era que a planilha vinha de um sistema legado que exportava números como texto. A solução foi usar VALOR() para converter antes do SE, ou criar uma coluna auxilia com a conversão. Isso resolveu o problema sem precisar de VBA.

Se você precisa de múltiplas condições complexas, o SE aninhado não é a melhor opção. Use uma tabela de mapeamento com PROCX.VERT ou crie uma função definida pelo usuário em VBA. Isso costuma ser mais manutenível e performa melhor em planilhas grandes.