AND, OR e IF aninhado
Uma nota 81 com 70% de frequência passa no teste da nota e reprova no da frequência. O AND precisa dos dois; o OR precisa de um só.
Duas condições ao mesmo tempo: AND e OR
A mesma professora tem uma segunda regra. Para passar, o aluno precisa de nota de pelo menos 60 e frequência de pelo menos 80%. O AND recebe um ou mais testes (o Excel permite até 255) e devolve TRUE só quando todos são TRUE: =AND(B2>=60,C2>=80). O OR devolve TRUE quando pelo menos um teste é TRUE, então =OR(B2>=90,C2=100) poderia indicar para um prêmio o aluno que tirou nota muito alta ou que nunca faltou. O NOT inverte TRUE para FALSE e vice-versa, o que combina com regras escritas com "a menos que".
Sozinhos, AND e OR dão só TRUE ou FALSE. Coloque-os dentro de um IF para transformar isso em palavras: =IF(AND(B2>=60, C2>=80), "Yes", "No"). Os testes de dentro podem apontar para colunas diferentes, comparar texto ou usar cálculos. AND e OR pulam texto e células vazias em intervalos e, se não acham nada que possam testar, devolvem #VALUE!. A tabela abaixo aplica os dois testes, nota de pelo menos 60 e frequência de pelo menos 80, a quatro alunos.
Diga a regra em palavras simples antes de escrevê-la. "Passa se a nota for pelo menos 60 e a frequência for pelo menos 80" vira direto um AND; "passa se passar em qualquer um dos testes" vira um OR. Uma regra que mistura os dois, como "pelo menos 60, e ou 80% de frequência ou um atestado médico", precisa de uma função dentro da outra: =AND(B2>=60, OR(C2>=80, D2="note")). Escreva primeiro a parte de dentro. Confira se ela dá TRUE e FALSE onde você espera e só então a envolva.
| Nota | Frequência % | AND | OR |
|---|---|---|---|
| 93 | 95 | TRUE | TRUE |
| 81 | 70 | FALSE | TRUE |
| 66 | 88 | TRUE | TRUE |
| 55 | 70 | FALSE | FALSE |
Por que o 93 da história virou D
O IF dá dois resultados. Para mais, coloque outro IF no lugar da resposta falsa, e a escala de conceitos vira =IF(B2>=90, "A", IF(B2>=80, "B", IF(B2>=70, "C", IF(B2>=60, "D", "F")))). A planilha tenta o primeiro teste e só passa para o seguinte quando ele falha. Foi exatamente isso que deu errado na história. Com B2>=60 primeiro, um 93 passa logo no primeiro teste e para em D. Os testes mais altos nunca são lidos. Comece pelo limite mais alto e vá descendo.
Conte os parênteses: quatro IFs precisam de quatro parênteses de fechamento no fim. A página de limites do Excel permite 64 níveis de funções aninhadas, mas depois de três ou quatro níveis uma fórmula fica difícil de ler e fácil de quebrar. As versões mais novas dos dois programas têm o IFS, que lista pares de teste e resposta um após o outro sem aninhar, e a ajuda do IF do Google aponta para ele. Para uma escala longa, a tabela de consulta da próxima unidade costuma ser ainda mais clara, porque os limites ficam em células onde qualquer um pode vê-los e mudá-los.
No laboratório abaixo, a coluna de conceitos usa quatro IFs aninhados e a coluna de aprovação usa IF com AND. Preencha as duas para baixo e compare Ben com Dev. Ben tem a nota melhor e reprova por frequência. Dev comparece, mas tira menos de 60.
Arraste para girar. Role ou faça pinça para dar zoom.
- Começar um IF aninhado pelo limite mais baixo. O primeiro teste TRUE vence. Com B2>=60 primeiro, toda nota de 60 ou mais para em D.
- Escrever =IF(B2>=60 AND C2>=80, ...). AND é uma função que recebe os testes como argumentos, não uma palavra posta entre eles. Escreva AND(B2>=60, C2>=80).
- Usar OR quando a regra diz os dois. Um aluno com 81 pontos e 70% de frequência passa com OR e reprova com AND. Diga a regra em voz alta: um "e" na frase significa AND.
- Perder a conta dos parênteses de fechamento. Quatro IFs aninhados precisam de quatro ) no fim. Se faltar um, a fórmula não é aceita.
- B2 é 81 e C2 é 70. O que =AND(B2>=60,C2>=80) devolve?
- FALSE
- TRUE
- Mesmas células. O que =OR(B2>=60,C2>=80) devolve?
- TRUE
- FALSE
- O que =NOT(5>3) devolve?
- FALSE
- TRUE
- B2 é 93. O que =IF(B2>=90, "A", IF(B2>=80, "B", "C")) devolve?
- B2 é 85. Mesma fórmula. O que ela devolve?
- B2 é 93. O que a fórmula na ordem errada =IF(B2>=60, "D", IF(B2>=90, "A", "F")) devolve?
- Quantos parênteses de fechamento terminam uma fórmula com quatro IFs aninhados e nada mais?
- Quantos níveis de funções aninhadas o Excel permite?
- B2 é 66 e C2 é 88. O que =IF(AND(B2>=60, C2>=80), "Yes", "No") devolve?
- Que notas testam melhor uma fórmula de "60 ou mais passa"?
- 60 e 59.9
- 100 e 0
- 75 e 76
- 30 e 90
- AND: todos os testes TRUE. OR: pelo menos um TRUE. NOT: o contrário.
- Use-os dentro do IF para transformar TRUE ou FALSE em palavras.
- IF aninhado: ponha o próximo IF no lugar da resposta falsa, com o limite mais alto primeiro.
- Teste os limites. Para escalas longas, uma tabela de consulta é mais clara.
Fontes deste curso (19)
- Microsoft Support, "Switch between relative, absolute, and mixed references" (support.microsoft.com/en-us/office/dfec08cd-ae65-4f56-839e-5f0d8d0baca9: $ before column and row, F4 to switch, copying two down and two right: $A$1 stays, A$1 to C$1, $A1 to $A3, A1 to C3)
- Microsoft Support, "AVERAGE function" (support.microsoft.com/en-us/office/047bac88-d466-426c-a32b-8f33eb960cf6: text, logical values and empty cells in a reference ignored, zeros included; 10, 7, 9, 27, 2 gives 11, with 5 gives 10; mean 5, median 4, mode 3 for 2 3 3 5 7 10)
- Microsoft Support, "COUNT function" (support.microsoft.com/en-us/office/a59cd7fc-b623-4d93-87a4-d23bf411294c: only numbers counted, dates count, errors and text do not)
- Microsoft Support, "ROUND function" (support.microsoft.com/en-us/office/c018c5d8-40fb-4053-90b1-b3e7f61a213c: num_digits required; 2.15 to 2.2, -1.475 to -1.48, 626.3 to 1000, 1.98 to 0, -50.55 to -100)
- Microsoft Support, "IF function" (support.microsoft.com/en-us/office/69aed7c9-4e8a-4755-a9bc-aa8bbff73be2: value_if_false optional, text in quotes except TRUE and FALSE, 0 and #NAME? problems)
- Microsoft Support, "VLOOKUP function" (support.microsoft.com/en-us/office/0bbc8083-26fe-4963-8ab8-93a18ad188a1: range_lookup TRUE by default, sorted first column, #N/A, #REF!, #VALUE!, absolute table range, wildcards with FALSE)
- Microsoft Support, "XLOOKUP function" (support.microsoft.com/en-us/office/b7fd680e-6d10-43e6-84f9-88eae8bf5929: not in Excel 2016 and Excel 2019, exact match by default)
- Microsoft Support, "How to correct a #VALUE! error" (support.microsoft.com/en-us/office/15e1b616-fbf2-4147-9c0b-0a11a20e409e: + and * may not calculate cells with text, use SUM instead, IFERROR hides all errors)
- Microsoft Support, "Excel specifications and limits" (15 digits, 64 nested levels, 255 arguments)
- Google Docs Editors Help, "VLOOKUP" (support.google.com/docs/answer/3093318: is_sorted TRUE by default, FALSE recommended, search down to a larger value, " Apple" and "Apple " differ, wildcards, IFNA, absolute range)
- Google Docs Editors Help, "XLOOKUP" (support.google.com/docs/answer/12405947)
- Google Docs Editors Help, "ROUND" (support.google.com/docs/answer/3093440: places optional, 0 by default, rounding by magnitude)
- Google Docs Editors Help, "IF" (support.google.com/docs/answer/3093364: order of the answers is the most common problem, IFS)
- Google Docs Editors Help, "AVERAGE" (support.google.com/docs/answer/3093615: text ignored, any number of arguments)
- Google Docs Editors Help, "COUNTA" (support.google.com/docs/answer/3093991: zero-length strings and spaces count)
- Google Docs Editors Help, "Keyboard shortcuts for Google Sheets" (support.google.com/docs/answer/181110: F4 and Fn+F4 while entering a formula, F4 as Redo)
- Pryor Learning and Exceljet (F4 cycle A1, $A$1, A$1, $A1; = comparison not case-sensitive)
- Ablebits (IF without value_if_false returns FALSE)
- Spreadsheet Class (Sheets circular dependency shows #REF!)
Data de verificação: 2026-10-19