Uma olhada nas instruções IF aninhadas e alternativas que são mais fáceis de fazer e entender mais tarde.
por David Goodmanson
Em meu último artigo, olhei para uma instrução IF simples do Excel mais seus primos úteis CountIf e SumIF. Eu também mencionei a instrução IF aninhada, onde há muitas funções IF em uma célula.
Desta vez, veremos o IF aninhado em mais detalhes e, especialmente, as alternativas que são mais fácil de fazer e entender mais tarde.
A seguir, veremos algumas maneiras alternativas de utilizar a instrução IF em algum código VBA (Visual Basic for Applications), bem como a instrução Select Case.
O número da classificação na coluna B é transformado em uma descrição de texto na coluna C. No Excel, existem várias maneiras de fazer em um exemplo simples como este, um IF aninhado é suficiente, mas existem outras opções que um é mais fácil de ler por outras pessoas.
Ninguém se propõe a fazer um longo grupo de IFs aninhados. Geralmente, ele atinge todos com o tempo. Um IF aninhado simples com 2 ou 3 opções pode crescer com mais e mais IFs até o ponto em que é ilegível e sujeito a erros de codificação. Aqui está um IF aninhado ‘simples’ com 40 níveis:
=IF(A2="A",TRUE,IF(A2="B",TRUE,IF(A2="C",TRUE,IF(A2="D",TRUE,
IF(A2="E",TRUE,IF(A2="F",TRUE,IF(A2="G",TRUE,IF(A2="H",TRUE,
IF(A2="I",TRUE,IF(A2="J",TRUE,IF(A2="K",TRUE,IF(A2="L",TRUE,
IF(A2="M",TRUE,IF(A2="N",TRUE,IF(A2="O",TRUE,IF(A2="P",TRUE,
IF(A2="Q",TRUE,IF(A2="R",TRUE,IF(A2="S",TRUE,IF(A2="T",TRUE,
IF(A2="U",TRUE,IF(A2="V",TRUE,IF(A2="W",TRUE,IF(A2="X",TRUE,
IF(A2="Y",TRUE,IF(A2="Z",TRUE,IF(A2="AA",TRUE,IF(A2="AB",TRUE,
IF(A2="AC",TRUE,IF(A2="AD",TRUE,IF(A2="AE",TRUE,IF(A2="AF",TRUE,
IF(A2="AG",TRUE,IF(A2="AH",TRUE,IF(A2="AI",TRUE,
IF(A2="AJ",TRUE,IF(A2="AK",TRUE,IF(A2="AL",TRUE,IF(A2="AM",TRUE,
IF(A2="AN",TRUE,FALSE))))))))))))))))))))))))))))))))))))))))
No Excel 2007, você pode ter 64 IFs aninhados em uma fórmula, embora boa sorte ao depurar essa linha! IFs aninhados são um pouco mais fáceis de controlar em versões recentes do Excel, que têm fórmula de codificação de cores etc. Apesar desses auxiliares, é melhor evitar IFs fortemente aninhados.
Se você acha que suas opções aninhadas podem ser estendidas posteriormente, considere uma das alternativas desde o início.
IF aninhado
Primeiro, para as funções IF aninhadas, a fórmula para a célula C3 é mostrada abaixo.
=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))
O IF aninhado funciona da esquerda para a direita avaliando o teste lógico, por exemplo B3 = 5, se essa classificação for verdadeira, então IF insere o texto “Boom”. Se B3 não for igual a 5, então IF olha para o próximo teste lógico (B3 = 4) e avalia cada etapa por vez.
- IF continua a avaliar cada teste até que o teste lógico seja satisfeito e, em seguida, sai da função.
- O sinal de igual à esquerda do primeiro IF é necessário apenas uma vez para aquele primeiro IF, a partir de então , para cada nível de aninhamento, simplesmente colocamos no texto SE. (Isso é verdadeiro para qualquer função de planilha aninhada).
- O número de colchetes “(” deve ser correspondido pelo número de colchetes de fechamento “)”. No exemplo de fórmula acima, há 5 colchetes, correspondidos por 5 colchetes de fechamento no final. As versões recentes do Excel têm melhores recursos de coloração e verificação de erros para manter os colchetes e aspas retos, mas mesmo assim IFs aninhados podem ser um incômodo para resolver.
Tabela de consulta
Uma maneira de contornar a complexidade do IF aninhado é usar VLOOKUP vinculado a uma tabela de referência. onde na planilha.
Nossa tabela ficaria assim:
A função na coluna C da tabela original agora lê-se:
=VLOOKUP(B3,$G$2:$H$6,2,FALSE)
Normalmente, você colocaria a tabela de pesquisa em outra guia da mesma planilha, mas os dados podem ser obtidos de qualquer lugar.
VBA – a instrução IF
Uma alternativa é fazer uma função VBA personalizada e colocar toda a lógica IF no código VBA.
Isso tem a vantagem de sendo muito mais fácil de ler e entender.
A desvantagem é a necessidade de segurança do código e a preocupação de que o código VBA seja legítimo e não um vírus. Se seus usuários não estão acostumados a obter planilhas com código anexado, convém evitar as opções de VBA.
Aqui está um trecho de código, é a mesma lógica do IF aninhado no início deste artigo, mas, como você pode ver, é muito mais fácil de ler:
" Using a VBA if statement structure
" ==================================
If Rating = 5 Then
Prediction = "Boom"
ElseIf Rating = 4 Then
Prediction = "Recovery"
ElseIf Rating = 3 Then
Prediction = "Turning Point"
ElseIf Rating = 2 Then
Prediction = "Recession"
ElseIf Rating = 1 Then
Prediction = "Depression"
End If
VBA: Select Case
Finalmente, uma estrutura ainda mais fácil de ler é a instrução Select Case.
"Using a Select Case structure
"=============================
Select Case Rating
Case 5
Prediction = "Boom"
Case 4
Prediction = "Recovery"
Case 3
Prediction = "Turning Point"
Case 2
Prediction = "Recession"
Case 1
Prediction = "Depression"
End Select
A instrução Select Case é outra estrutura VBA que fornece uma maneira de avaliar uma gama de alternativas com um mínimo de chaveamento repetitivo necessário . Também é mais simples e fácil de ler e deve ser usado quando houver mais de 3 alternativas da variável de interesse.
VBA: e além…
Finalmente, para lhe dar uma ideia do maior poder de Select Case aqui está uma versão estendida de Select Case:
Select Case Rating
Case 4.5 To 10
Prediction = "Boom"
Case 3.5 To 4.49
Prediction = "Recovery"
Case 2.5 To 3.49
Prediction = "Turning Point"
Case 1.5 To 2.49
Prediction = "Recession"
Case 0.5 To 1.4
Prediction = "Depression"
Case 0 To 0.49
Prediction = "Money under the Mattress"
Case Else
Prediction = "No prediction - there"s no economy left!"
End Select
Esta versão testa intervalos de valores (por exemplo, uma classificação maior ou igual a 3,5, mas menor ou igual a 4,5) e permite que alguém ofereça uma classificação fracionária como 2.5.
Além disso, na parte inferior da estrutura está o controle “Else”. Basicamente, ele cobre ev tudo o mais que não cobrimos em nossos Elseifs anteriores. Se nada for igual à classificação, então a parte Else da estrutura fornece um controle alternativo.
Bem, é isso para a série de funções IF. Continue com seus comentários, perguntas e sugestões. Até a próxima.
Veja também
- A SOMA do Excel é muito mais
- Como criar um Excel complexo célula fácil de usar
- Mais opções IF aninhadas
- A opção CHOOSE no Excel
- função IF do Excel