Um SE aninhado é um SE dentro de outro SE, usado quando há mais de dois resultados possíveis. =SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F"))) dá A para 90 ou mais, B de 80 a 89, C de 70 a 79 e F abaixo de 70. A função SE se chama IF em inglês, e a tabela mostra a fórmula em inglês, com vírgulas; você também pode digitar as fórmulas em português, com ponto e vírgula.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
=SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F")))Clique em C2 e olhe a barra de fórmulas: três funções SE, três parênteses fechando no fim. Mude a pontuação de Dan em B5 para 75 e a nota dele passa de F para C.
Como um SE aninhado é lido
O Excel lê a fórmula desde o começo e para no primeiro teste que for VERDADEIRO:
=IF(B2>=90, "A",
IF(B2>=80, "B",
IF(B2>=70, "C",
"F")))
- A pontuação é 90 ou mais? Então A, e nada mais é verificado.
- Se não, é 80 ou mais? Então B. Esse teste não precisa dizer "e abaixo de 90", porque uma pontuação de 90 ou mais nunca chega até ele.
- Se não, é 70 ou mais? Então C.
- Se não, F, o valor_se_falso do último SE.
Cada SE de dentro fica no lugar do valor_se_falso do anterior. O Excel aceita até 64 níveis, mas uma fórmula com mais de quatro ou cinco é difícil de conferir a olho. O Excel aceita quebras de linha dentro de uma fórmula, então você pode organizar uma fórmula longa assim na barra de fórmulas: pressione Alt+Enter (Windows) ou Control+Option+Return (Mac) antes de cada SE.
Por que a ordem das condições importa
Como o Excel para no primeiro teste VERDADEIRO, os limites precisam ir do mais alto para o mais baixo quando você usa >=. A coluna D tem os mesmos três testes na ordem inversa:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
=SE(B2>=70;"C";SE(B2>=80;"B";SE(B2>=90;"A";"F")))Na coluna D, todo mundo com 70 ou mais recebe C: uma pontuação de 94 passa no primeiro teste, B2>=70, e os testes do B e do A nunca são alcançados. Se você prefere começar pela faixa mais baixa, inverta os operadores: =SE(B2<70;"F";SE(B2<80;"C";SE(B2<90;"B";"A"))) dá as mesmas notas da coluna C.
SE aninhado com texto
Os testes também podem comparar texto. Aqui o frete depende da região, e toda região que não foi citada recebe o último valor:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
=SE(B2="North";5;SE(B2="South";7;SE(B2="East";6;9)))West e Islands não batem com nenhum dos três testes e recebem o valor final, $9.00. Quando todos os testes comparam a mesma célula com um valor fixo, como aqui, a PARÂMETRO (SWITCH em inglês) escreve a mesma regra citando cada região uma vez: =PARÂMETRO(B2;"North";5;"South";7;"East";6;9). Veja a página da PARÂMETRO.
SE aninhado com E
Um SE aninhado pode combinar os níveis com E ou OU quando uma faixa depende de duas células. Um vendedor com vendas de 2.000 ou mais e pelo menos 3 anos de casa recebe 10%, qualquer outro acima de 2.000 recebe 5%, e o resto não recebe nada:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
=SE(E(B2>=2000;C2>=3);10%;SE(B2>=2000;5%;0))Ana e Dan se qualificam para 10%, Ben tem as vendas, mas não os anos, e recebe 5%, e Chloe e Eve recebem 0%. A ordem importa aqui também: o teste mais exigente vem primeiro.
SES: a mesma coisa sem aninhar
No Excel 2019, no Excel 2021 e no Microsoft 365, a SES (IFS em inglês) recebe os testes e os resultados em pares, sem SE de dentro e com um parêntese só no fim. VERDADEIRO como último teste funciona como "todo o resto":
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
No Excel em português: =SES(B2>=90;"A";B2>=80;"B";B2>=70;"C";VERDADEIRO;"F"). Ela lê as condições na mesma ordem e para na primeira VERDADEIRO, então a regra de ordem acima continua valendo. A página da SES trata dela, inclusive do #N/D (#N/A em inglês, como a tabela mostra) que ela retorna quando nenhum teste bate. No Excel 2016 e anteriores, a SES não existe, e um arquivo que a usa mostra #NOME? ali.
Prática: uma comissão em três faixas
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
Sua vez: Em C2, pague 10% das vendas em B2 quando forem 5000 ou mais, 5% quando forem 1000 ou mais, e 0 nos outros casos. A fórmula é arrastada até C4.
Uma tabela de busca no lugar de muitos SE
Quando as faixas são números e há mais de três ou quatro, guarde os limites em uma tabelinha e faça uma busca. A tabela fica ordenada do menor limite para o maior, e a correspondência aproximada (VERDADEIRO como último argumento) retorna a linha do maior limite que não passa da pontuação:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
=PROCV(B2;$E$2:$F$5;2;VERDADEIRO)Os resultados batem com os do SE aninhado do começo da página. Para mudar a faixa do B para 85, mude E4 para 85: nenhuma fórmula muda, e todas as notas se atualizam. Em português, a fórmula de C2 é =PROCV(B2;$E$2:$F$5;2;VERDADEIRO), com PROCV (VLOOKUP em inglês). Com PROCX (XLOOKUP em inglês), a mesma busca é =PROCX(B2;$E$2:$E$5;$F$2:$F$5;;-1), em que -1 significa "correspondência exata ou o próximo valor menor"; aí a tabela não precisa estar ordenada.
Tente você: a tabela de faixas está pronta, escreva a busca.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
Sua vez: Em C2, retorne a nota da pontuação em B2 a partir da tabela de faixas em E2:F5.
Perguntas frequentes
Como escrevo várias funções SE no Excel?
Coloque o próximo SE no argumento valor_se_falso do anterior: =SE(B2>=90;"A";SE(B2>=80;"B";SE(B2>=70;"C";"F"))). O Excel testa as condições da primeira à última e para na primeira que for VERDADEIRO.
Quantas funções SE posso aninhar no Excel?
Até 64 níveis no Excel 2007 e posteriores. Bem antes desse limite, a fórmula fica difícil de ler e de conferir; com mais de três ou quatro faixas, uma tabela de busca com PROCV ou PROCX aproximado é mais fácil de manter.
Por que meu SE aninhado retorna o resultado errado?
Quase sempre porque as condições estão na ordem errada. Com testes >=, comece pelo limite mais alto: se B2>=70 vem primeiro, uma nota 95 para ali e recebe o resultado da faixa do 70.
O que posso usar no lugar do SE aninhado no Excel?
A SES no Excel 2019 e posteriores (=SES(B2>=90;"A";B2>=80;"B";VERDADEIRO;"F")), a PARÂMETRO quando você compara um valor com valores fixos, e uma tabela de busca com =PROCV(B2;$E$2:$F$5;2;VERDADEIRO) para faixas numéricas.