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.

* "Aninhar" refere-se à prática de associação de várias funções numa só 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,"Ultrapassou o 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 pretende que seja devolvido se o resultado de logical_test for VERDADEIRO.
valor_se_falso
(opcional)
O valor que pretende que seja devolvido se o resultado do logical_test for FALSO.

Comentários

Ainda que o Excel lhe permita aninhar até 64 funções SE 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 não aninhar a sua fórmula a 100%, esta poderá funcionar 75% das vezes, mas devolver 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 estiver numa situação em que as instruções SE parecem continuar a crescer sem parar, é altura de parar e repensar a sua estratégia.

Vejamos como criar corretamente uma complexa instrução SE aninhada através de múltiplos SE.S e como reconhecer quando é altura de utilizar outra ferramenta no 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 complexa aninhada - 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 em particular é relativamente seguro, uma vez que não é provável que a correlação entre os resultados dos testes e as classificações sejam alteradas, pelo que não precisará de muita manutenção. Mas aqui vai 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! Eis o aspeto da fórmula 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"))))))))))))

A função continua a estar correta e irá funcionar conforme esperado, mas demora mais tempo a escrever e ainda mais tempo a testar, para se certificar de que a função funciona da forma que pretende. Outro dos grandes problemas é ter de introduzir os resultados e os equivalentes manualmente. Quais serão as probabilidades de acidentalmente se enganar a escrever? Agora, imagine tentar fazer isso 64 vezes com condições mais complexas! É possível, mas será que pretende mesmo ter todo este esforço que provavelmente terá erros muito difíceis de detetar?

Dica

Todas as funções do Excel exigem parênteses de abertura e fechamento (). O Excel tentará ajudá-lo a compreender o que deve ser inserido e onde ao colorir diferentes partes da sua fórmula quando a estiver a editar. Por exemplo, se estiver a editar a fórmula acima, ao deslocar o cursor por cada um dos parêntesis de fecho ")", o parêntesis de abertura correspondente terá a mesma cor. Esta funcionalidade poderá ser útil em fórmulas complexas e aninhadas, ao tentar descobrir se todos os parêntesis estão corretamente fechados.

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 é SE(C9>15000;20%;SE(C9>12500;17,5%;SE(C9>10000;15%;SE(C9>7500;12,5%;SE(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...

Mesmo sendo muito semelhante ao exemplo anterior das Classificações, esta fórmula é um bom exemplo da dificuldade de gerir uma grande instrução SE – o que faria se a sua organização decidisse adicionar novos níveis de compensação e existisse a possibilidade de alterar o dólar existente ou os valores de percentagem? Teria bastante trabalho!

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á desordenada como =SE(C9>5000;10%;SE(C9>7500;12,5%;SE(C9>10000;15%;SE(C9>12500;17,5%;SE(C9>15000;20%;0))))) Consegue perceber o que está errado? Compare a ordem das comparações de Receita com o exemplo anterior. Qual é o sentido da ordem? A ordem é da parte inferior para a parte superior (5 000 $ a 15 000 $) e não ao contrário. Mas por que isso é tão importante? É importante porque a fórmula não pode passar da primeira avaliação para qualquer valor acima dos 5 000 $. Imaginemos que tem 12 500 $ em receitas – a instrução SE irá devolver 10% porque é maior do que 5 000 $ e irá parar nessa secção. Poderá ser muito problemático porque em várias situações estes tipos de erros podem passar 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.

A função PROCV é descrita mais detalhadamente aqui, mas este é certamente um método muito mais simples do que uma instrução SE complexa e aninhada 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 não quiser que outras pessoas vejam ou interfiram com a sua tabela de referências, coloque-a noutra folha de cálculo.

Você sabia?

Agora existe uma função SE.S que pode substituir múltiplas 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:

  • =SE.S(D2>89;"Muito Bom";D2>79;"Bom";D2>69;"Satisfaz";D2>59;"Satisfaz Menos";VERDADEIRO;"Não Satisfaz")

A função SE.S é ótima porque não precisa de se preocupar com todas as instruções SE e os respetivos parêntesis.

Observação

Esta funcionalidade só está disponível se tiver uma subscrição do Microsoft 365. Se for subscritor do Microsoft 365, certifique-se de que tem a versão mais recente do Office.

Precisa de mais ajuda?

Pode sempre colocar uma pergunta a um especialista da Comunidade Tecnológica do Excel ou obter suporte nas Comunidades.