Excel – IF anidados y alternativas

¡Gracias por acompañarnos! Recibirá un mensaje de bienvenida en unos momentos.

Una mirada a las declaraciones IF anidadas y las alternativas que son más fáciles de hacer y comprender más adelante.

por David Goodmanson

En mi último artículo miré una declaración IF simple de Excel más su primos útiles CountIf y SumIF. También mencioné la instrucción IF anidada, donde hay muchas funciones IF en una celda.

Esta vez veremos el IF anidado con más detalle y especialmente las alternativas que son más fácil de hacer y entender más adelante.

A continuación, veremos algunas formas alternativas de utilizar la instrucción IF en algún código VBA (Visual Basic para Aplicaciones), así como la instrucción Select Case.

El número de calificación en la columna B se convierte en una descripción de texto en la columna C. En Excel hay todo tipo de formas de hacerlo esto. En un ejemplo simple como este, un IF anidado es suficiente, sin embargo, hay otras opciones que un son más fáciles de leer para otras personas.

Nadie se propone crear un grupo largo de IF anidados. Por lo general, se acerca a todos con el tiempo. Un IF anidado simple con 2 o 3 opciones puede crecer con más y más IF hasta el punto en que es ilegible y propenso a errores de codificación. Aquí hay un IF anidado ‘simple’ con 40 niveles:

=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))))))))))))))))))))))))))))))))))))))))

En Excel 2007, puede tener 64 IF anidados en una fórmula, ¡aunque buena suerte al depurar esa línea! Los IF anidados son un poco más fáciles de controlar en las versiones recientes de Excel que tienen códigos de colores de fórmula, etc. A pesar de esos ayudantes, es mejor evitar los IF muy anidados.

Si cree que sus opciones anidadas podrían extenderse más adelante, considere una de las alternativas desde el principio.

IF anidado

Primero, para las funciones IF anidadas, la fórmula para la celda C3 se muestra a continuación.

=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))

El IF anidado funciona de izquierda a derecha evaluando la prueba lógica, por ejemplo B3 = 5, si esa calificación es verdadera, entonces IF inserta el texto «Boom». Si B3 no es igual a 5, IF mira la siguiente prueba lógica (B3 = 4) y evalúa cada paso por turno.

  • SI continúa evaluando cada prueba hasta que se satisfaga la prueba lógica, y luego sale de la función.
  • El signo igual a la izquierda del primer SI solo se requiere una vez para ese primer SI, a partir de entonces , para cada nivel de anidamiento, simplemente ponemos el texto SI. (Esto es cierto para cualquier función de hoja de trabajo anidada).
  • El número de corchetes abiertos «(» debe coincidir con el número de corchetes de cierre «)”. En el ejemplo de fórmula anterior, hay 5 corchetes abiertos, emparejados con 5 corchetes de cierre al final. Las versiones recientes de Excel tienen mejores funciones de color y verificación de errores para mantener los corchetes y las comillas rectos, pero incluso los IF anidados pueden ser una molestia para trabajar.

Tabla de búsqueda

Una forma de sortear la complejidad del IF anidado es usar BUSCARV vinculado a una tabla de referencia. dónde en la hoja de trabajo.

Nuestra tabla se vería así:

La función en la columna C de la tabla original ahora dice:

=VLOOKUP(B3,$G$2:$H$6,2,FALSE)

Por lo general, colocaría la tabla de búsqueda en otra pestaña de la misma hoja de trabajo, pero los datos se pueden obtener desde cualquier lugar.

VBA – la declaración IF

Una alternativa es crear una función VBA personalizada y poner toda la lógica IF en el código VBA.

Esto tiene la ventaja de siendo mucho más fácil de leer y comprender.

La desventaja es la necesidad de seguridad del código y la preocupación de que el código VBA sea legítimo y no un virus. Si sus usuarios no están acostumbrados a obtener hojas de trabajo con código adjunto, es posible que desee evitar las opciones de VBA.

Aquí hay un fragmento de código, es la misma lógica que el IF anidado al comienzo de este artículo pero, como usted puede ver, es mucho más fácil de leer:

" 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: Seleccionar caso

Finalmente, una estructura aún más fácil de leer es la instrucción Seleccionar caso.

"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

La instrucción Select Case es otra estructura de VBA que proporciona una forma de evaluar un rango de alternativas con un mínimo de clave repetitiva requerida . También es más simple y fácil de leer y debe usarse cuando hay más de 3 alternativas de la variable de interés.

VBA: y más allá…

Finalmente para darte una idea del mayor poder de Select Case aquí hay una versión extendida 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 versión prueba rangos de valores (por ejemplo, una calificación de más o igual a 3.5 pero menor o igual a 4.5) y permite que alguien ofrezca una calificación fraccionada como 2.5.

Además, en la parte inferior de la estructura está el control «Else». Básicamente cubre ev Todo lo demás que no cubrimos en nuestros Elseif anteriores. Si nada equivale a la calificación, entonces la parte Else de la estructura proporciona un control alternativo.

Bueno, eso es todo para la serie de funciones IF. Mantenga sus comentarios, preguntas y sugerencias. Nos vemos la próxima vez.

Vea también

  • El SUM de Excel es mucho más
  • Haciendo un Excel complejo celda fácil de usar
  • Más opciones IF anidadas
  • La opción ELEGIR en Excel
  • Función IF de Excel
¡Gracias por acompañarnos! Recibirá un mensaje de bienvenida en unos momentos.

Leave a Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *