Função SE – fórmulas aninhadas e evitando armadilhas

Aplica-se a
Excel para Microsoft 365 Excel para Microsoft 365 para Mac Excel 2024 Excel 2024 para Mac Excel 2021 Excel 2021 para Mac Excel 2019 Excel 2016 Excel Web App Excel para Windows Phone 10

A função SE permite fazer uma comparação lógica entre um valor e o que você espera, testando uma condição e retornando um resultado se for Verdadeiro ou Falso.

  • =SE(Algo for Verdadeiro, então faça algo, caso contrário, faça outra coisa)

Portanto, uma instrução SE pode ter dois resultados. O primeiro resultado é se a comparação for Verdadeira, o segundo se a comparação for Falsa.

As instruções SE são incrivelmente robustas e compõem a base de muitos modelos de planilha, mas elas também são a causa de muitos problemas de planilha. De forma ideal, uma instrução SE deve se aplicar a condições mínimas, tais como Masculino/Feminino, Sim/Não/Talvez, só para citar alguns, mas, às vezes, é preciso avaliar cenários mais complexos que exigem aninhar* mais de 3 funções SE juntas.

* "Aninhamento" refere-se à prática de unir várias funções em uma fórmula.

Detalhes técnicos

Use a função SE, uma das funções lógicas, para retornar um valor se uma condição for verdadeira e um outro valor se for falsa.

Sintaxe

SE(teste_lógico, valor_se_verdadeiro, [valor_se_falso])

Por exemplo:

  • =SE(A2>B2;"Acima do orçamento";"OK")
  • =SE(A2=B2;B4-A4;"")
Nome do argumento Descrição
teste_lógico
(obrigatório)
A condição que você deseja testar.
valor_se_verdadeiro
(obrigatório)
O valor que você deseja retornar se o resultado de logical_test for TRUE.
valor_se_falso
(opcional)
O valor que você deseja retornar se o resultado de logical_test for FALSO.

Comentários

Embora o Excel permita aninhar até 64 funções IF diferentes, não é aconselhável fazê-lo. Por quê?

  • Várias instruções SE exigem uma grande quantidade de raciocínio para serem criadas corretamente e para certificar-se de que sua lógica pode calcular corretamente cada condição, do início ao fim. Se você não aninhar sua fórmula com 100% de precisão, ela poderá funcionar 75% das vezes, mas retornar resultados inesperados 25% das vezes. Infelizmente, são grandes as chances de cair nos 25%.
  • Várias instruções SE podem se tornar extremamente difíceis de serem mantidas, especialmente quando você retoma a declaração algum tempo depois e tenta descobrir o que você, ou pior, outra pessoa, estava tentando fazer.

Se você se deparar com uma declaração IF que parece continuar crescendo sem fim à vista, é hora de largar o mouse e repensar sua estratégia.

Vejamos como criar corretamente uma instrução IF aninhada complexa usando vários IFs e quando reconhecer que é hora de usar outra ferramenta em seu arsenal do Excel.

Exemplos

O exemplo a seguir mostra uma instrução SE aninhada relativamente padrão para a conversão da pontuação dos testes dos alunos em resultados equivalente utilizando letras.

Instrução SE aninhada complexa - A fórmula em E2 é =SE(B2>97,A+,SE(B2>93,A,SE(B2 89,A-,SE(B2>>87,B+,SE(B2>83,B,SE(B2 79,B-,SE(B2>>77,C+,SE(B2>73,C,SE(B2>69,C-,SE(B2>57,D+,SE(B2>53,D,SE(B2>49,D-, F))))))))))))

  • =SE(D2>89,"A",SE(D2>79,"B",SE(D2>69,"C",SE(D2>59,"D","F"))))
    Essa instrução SE aninhada complexa segue uma lógica simples:
  1. Se a Pontuação do teste (na célula D2) for maior que 89, o aluno receberá um A
  2. Se a Pontuação do teste for maior que 79, o aluno receberá um B
  3. Se a Pontuação do teste for maior que 69, o aluno receberá um C
  4. Se a Pontuação do teste for maior que 59, o aluno receberá um D
  5. Nos outros casos, o aluno receberá um F

Este exemplo específico é relativamente seguro porque não é provável que a correlação entre as pontuações dos testes e as notas das letras mude, portanto, não exigirá muita manutenção. Mas aqui está um pensamento – e se você precisar segmentar as notas entre A+, A e A- (e assim por diante)? Agora, sua instrução SE com quatro condições precisa ser reescrita para ter 12 condições! Veja como sua fórmula ficaria agora:

  • =SE(B2>97,"A+",SE(B2>93,"A",SE(B2>89,"A-",SE(B2>87,"B+",SE(B2>83,"B",SE(B2>79,"B-", SE(B2>77,"C+",SE(B2>73,"C",SE(B2>69,"C-",SE(B2>57,"D+",SE(B2>53,"D",SE(B2>49,"D-","F"))))))))))))

Ainda é funcionalmente preciso e funcionará conforme o esperado, mas leva muito tempo para escrever e mais para testar para garantir que ele faça o que você deseja. Outro problema gritante é que você teve que inserir as pontuações e as notas de letras equivalentes manualmente. Quais são as chances de você cometer um erro de digitação acidentalmente? Agora, imagine tentar fazer isso 64 vezes com condições mais complexas! Claro, é possível, mas você realmente quer se sujeitar a esse tipo de esforço e prováveis erros que serão realmente difíceis de detectar?

Dica

Todas as funções do Excel exigem parênteses de abertura e fechamento (). O Excel tentará ajudá-lo a descobrir o que vai para onde, colorindo diferentes partes da fórmula quando você estiver editando-a. Por exemplo, se você editar a fórmula acima, à medida que você move o cursor além de cada um dos parênteses finais ")", seu parêntese de abertura correspondente ficará com a mesma cor. Isso pode ser especialmente útil em fórmulas aninhadas complexas quando você está tentando descobrir se há parênteses correspondentes suficientes.

Exemplos adicionais

A seguir está um exemplo muito comum de cálculo da Comissão de vendas com base nos níveis de conquista de Receita.

A fórmula na célula D9 é IF(C9 15000,20%,IF(C9 12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))>>

  • =SE(C9 15000,20%,SE(C9 12500,17,5%,SE(C9>10000,15%,SE(C9>7500,12,5%,SE(C9>5000,10%,0)))))>>

Essa fórmula diz que SE(C9 for maior que 15.000 deve-se retornar 20%, SE(C9 for maior do que 12.500 deve-se retornar 17,5% e assim por diante...

Embora seja notavelmente semelhante ao exemplo anterior do Grades, esta fórmula é um ótimo exemplo de como pode ser difícil manter grandes declarações de IF – o que você precisaria fazer se sua organização decidisse adicionar novos níveis de remuneração e possivelmente até alterar os valores existentes em dólares ou porcentagem? Você teria muito trabalho em suas mãos!

Dica

Você pode inserir quebras de linha na barra de fórmulas para facilitar a leitura de fórmulas longas. Basta pressionar ALT+ENTER antes do texto que você deseja passar para uma nova linha.

Este é um exemplo do cenário de comissão com a lógica fora de ordem:

A fórmula em D9 está fora de ordem como =SE(C9>5000,10%,SE(C9>7500,12,5%,SE(C9>10000,15%,SE(C9>12500,17,5%,SE(C9>15000,20%,0))))) Você consegue ver o que está errado? Compare a ordem das comparações de Receita com o exemplo anterior. Qual é o sentido da ordem? É isso mesmo, está indo de baixo para cima (US $ 5.000 a US $ 15.000), e não o contrário. Mas por que isso é tão importante? É um grande problema porque a fórmula não pode passar na primeira avaliação para qualquer valor acima de US$ 5.000. Digamos que você tenha US$ 12.500 em receita – a declaração IF retornará 10% porque é maior que US$ 5.000 e parará por aí. Isso pode ser incrivelmente problemático porque, em muitas situações, esses tipos de erros passam despercebidos até que tenham um impacto negativo. Portanto, sabendo que há algumas armadilhas graves nas instruções SE aninhadas complexas, o que você pode fazer? Na maioria dos casos, você pode usar a função PROCV em vez de criar uma fórmula complexa com a função SE. Usando PROCV, você precisa, primeiro, criar uma tabela de referência:

A fórmula na célula D2 é =PROCV(C2;C5:D17;2;VERDADEIRO)

  • =PROCV(C2;C5:D17;2;VERDADEIRO)

Essa fórmula diz para procurar o valor de C2 no intervalo C5:C17. Se o valor for encontrado, então o valor correspondente será retornado na mesma linha na coluna D.

A fórmula na célula C9 é =PROCV(B9;B2:C6;2;VERDADEIRO)

  • =PROCV(B9;B2:C6;2;VERDADEIRO)

Da mesma forma, esta fórmula procura o valor da célula B9 no intervalo B2:B22. Se o valor for encontrado, então o valor correspondente será retornado na mesma linha na coluna C.

Observação

Essas duas funções PROCVs usam o argumento VERDADEIRO no final das fórmulas, o que significa que queremos que elas localizem uma correspondência aproximada. Em outras palavras, elas farão a correspondência dos valores exatos na tabela de pesquisa, bem como os valores que estiverem entre eles. Nesse caso, as tabelas de pesquisa precisam ser classificadas em ordem Crescente, do menor para o maior.

PROCV é abordado com muito mais detalhes aqui, mas isso é muito mais simples do que uma instrução IF aninhada complexa de 12 níveis! Há também outros benefícios menos óbvios:

  • As tabelas de referência da PROCV ficam à mostra e podem ser facilmente vistas.
  • Os valores da tabela podem ser facilmente atualizados e você não precisa tocar na fórmula se suas condições mudarem.
  • Se você não quiser que as pessoas vejam ou interfiram na sua tabela de referência, basta colocá-la em outra planilha.

Você sabia?

Agora existe uma função SES que pode substituir várias instruções SE aninhadas por uma única função. Portanto, em vez de nosso exemplo inicial de notas, que tem 4 funções SE aninhadas:

  • =SE(D2>89,"A",SE(D2>79,"B",SE(D2>69,"C",SE(D2>59,"D","F"))))

É possível simplificar com uma única função SES:

  • =SES(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",VERDADEIRO,"F")

A função SES é ótima porque você não precisa se preocupar com todas essas instruções e parênteses SE.

Observação

Esse recurso estará disponível apenas se você tiver uma assinatura do Microsoft 365. Se você for assinante do Microsoft 365, certifique-se de ter a versão mais recente do Office.

Precisa de mais ajuda?

Você sempre pode consultar um especialista na Excel Tech Community ou obter suporte nas Comunidades.