Sentencias IF anidadas de Excel - ejemplos, mejores prácticas y alternativas

  • Compartir Este
Michael Brown

El tutorial explica cómo utilizar la función IF anidada en Excel para comprobar múltiples condiciones. También aprenderá algunas otras funciones que podrían ser buenas alternativas al uso de una fórmula anidada en Excel.

¿Cómo suele implementar una lógica de toma de decisiones en sus hojas de cálculo de Excel? En la mayoría de los casos, utilizaría una fórmula IF para probar su condición y devolver un valor si se cumple la condición, otro valor si no se cumple la condición. Para evaluar más de una condición y devolver diferentes valores dependiendo de los resultados, anida múltiples IFs uno dentro de otro.

Aunque es muy popular, la sentencia IF anidada no es la única manera de comprobar múltiples condiciones en Excel. En este tutorial, encontrará un puñado de alternativas que definitivamente vale la pena explorar.

    Sentencia IF anidada de Excel

    He aquí la clásica fórmula IF anidada de Excel de forma genérica:

    SI( condición1 , resultado1 IF( condición2 , resultado2 IF( condición3 , resultado3 , resultado4 )))

    Puede ver que cada función IF subsiguiente está incrustada en la función value_if_false Cada función IF está encerrada en su propio conjunto de paréntesis, pero todos los paréntesis de cierre están al final de la fórmula.

    Nuestra fórmula IF anidada genérica evalúa 3 condiciones y devuelve 4 resultados diferentes (el resultado 4 se devuelve si ninguna de las condiciones es TRUE). Traducido a un lenguaje humano, esta sentencia IF anidada le dice a Excel que haga lo siguiente:

    Prueba condición1 si TRUE - return resultado1 si FALSE -

    prueba condición2 si TRUE - devuelve r resultado2 si FALSE -

    prueba condición3 si TRUE - return resultado3 si FALSE -

    devolver resultado4

    A modo de ejemplo, vamos a averiguar las comisiones de una serie de vendedores en función de la cantidad de ventas que han realizado:

    Comisión Ventas
    3% $1 - $50
    5% $51 - $100
    7% $101 - $150
    10% Más de 150

    En matemáticas, cambiar el orden de los sumandos no cambia la suma. En Excel, cambiar el orden de las funciones IF cambia el resultado. ¿Por qué? Porque una fórmula IF anidada devuelve un valor correspondiente a la fórmula primera condición TRUE Por lo tanto, en sus declaraciones IF anidadas, es muy importante organizar las condiciones en la dirección correcta: de mayor a menor o de menor a mayor, dependiendo de la lógica de su fórmula. En nuestro caso, comprobamos primero la condición "más alta", luego la "segunda más alta", y así sucesivamente:

    =IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))

    Si colocamos las condiciones en el orden inverso, de abajo hacia arriba, los resultados serían todos erróneos porque nuestra fórmula se detendría después de la primera prueba lógica (B2>=1) para cualquier valor mayor que 1. Digamos, que tenemos $100 en ventas - es mayor que 1, por lo que la fórmula no comprobaría otras condiciones y devolvería 3% como resultado.

    Si prefiere ordenar las condiciones de menor a mayor, utilice el operador "menor que" y evalúe primero la condición "menor", luego la "segunda menor", etc:

    =IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))

    Como puede ver, hay que pensar mucho para construir correctamente la lógica de una declaración IF anidada hasta el final. Y aunque Microsoft Excel permite anidar hasta 64 funciones IF en una fórmula, no es algo que realmente quiera hacer en sus hojas de cálculo. Así que, si usted (u otra persona) está mirando su fórmula IF anidada de Excel tratando de averiguar lo que realmente hace, es el momento dereconsidere su estrategia y probablemente elija otra herramienta de su arsenal.

    Para más información, consulte la sentencia IF anidada de Excel.

    IF anidado con condiciones OR/AND

    En caso de que necesite evaluar varios conjuntos de condiciones diferentes, puede expresar dichas condiciones utilizando las funciones OR y AND, anidar las funciones dentro de las sentencias IF y, a continuación, anidar las sentencias IF entre sí.

    IF anidado en Excel con sentencias OR

    Utilizando la función OR puede comprobar dos o más condiciones diferentes en la prueba lógica de cada función IF y devolver TRUE si alguno (al menos uno) de los argumentos OR se evalúa como TRUE. Para ver cómo funciona realmente, considere el siguiente ejemplo.

    Supongamos que tiene dos columnas de ventas, por ejemplo, las ventas de enero en la columna B y las ventas de febrero en la columna C. Desea comprobar los números de ambas columnas y calcular la comisión basándose en el número más alto. En otras palabras, elabora una fórmula con la siguiente lógica: si las ventas de enero o febrero son superiores a 150 $, el vendedor obtiene una comisión del 10%, si las ventas de enero o febrero son superiores o iguales a101 dólares, el vendedor se lleva el 7% de comisión, y así sucesivamente.

    Para ello, escriba unas cuantas sentencias OF como OR(B2>150, C2>150) y anídelas en las pruebas lógicas de las funciones IF comentadas anteriormente. Como resultado, obtendrá esta fórmula:

    =IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))

    Y que la comisión se asigne en función del importe de ventas más elevado:

    Para ver más ejemplos de fórmulas, consulte la sentencia IF OR de Excel.

    IF anidado en Excel con sentencias AND

    Si sus pruebas lógicas incluyen múltiples condiciones, y todas esas condiciones deben evaluarse como TRUE, expréselas utilizando la función AND.

    Por ejemplo, para asignar las comisiones en función de un menor número de ventas, tome la fórmula anterior y sustituya las sentencias OR por AND. Dicho de otro modo, le dice a Excel que devuelva el 10% sólo si las ventas de enero y febrero son superiores a 150 $, el 7% si las ventas de enero y febrero son superiores o iguales a 101 $, y así sucesivamente.

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))

    Como resultado, nuestra fórmula IF anidada calcula la comisión basándose en el número más bajo de las columnas B y C. Si alguna de las columnas está vacía, no hay comisión porque no se cumple ninguna de las condiciones AND:

    Si desea devolver 0% en lugar de celdas en blanco, sustituya una cadena vacía (''") en el último argumento por 0%:

    =IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))

    Puede encontrar más información aquí: Excel IF with multiple AND/OR conditions.

    VLOOKUP en lugar de IF anidado en Excel

    Cuando se trata de "escalas", es decir, rangos continuos de valores numéricos que juntos cubren todo el rango, en la mayoría de los casos se puede utilizar la función VLOOKUP en lugar de IFs anidados.

    Para empezar, cree una tabla de referencia como la que se muestra en la captura de pantalla siguiente y, a continuación, cree una fórmula Vlookup con coincidencia aproximada es decir, con el búsqueda_de_rango a TRUE.

    Suponiendo que el valor de búsqueda está en B2 y la tabla de referencia es F2:G5, la fórmula es la siguiente:

    =VLOOKUP(B2,$F$2:$G$5,2,TRUE)

    Tenga en cuenta que fijamos el tabla_array con referencias absolutas ($F$2:$G$5) para que la fórmula se copie correctamente en otras celdas:

    Al establecer el último argumento de la fórmula Vlookup en TRUE, se indica a Excel que busque el elemento mayor coincidencia - si no se encuentra una coincidencia exacta, devuelve el siguiente valor mayor que sea menor que el valor de búsqueda. Como resultado, su fórmula coincidirá no sólo con los valores exactos de la tabla de búsqueda, sino también con cualquier valor intermedio.

    Por ejemplo, el valor de búsqueda en B3 es $95. Este número no existe en la tabla de búsqueda, y Vlookup con coincidencia exacta devolvería un error #N/A en este caso. Pero Vlookup con coincidencia aproximada continúa buscando hasta que encuentra el valor más cercano que es menor que el valor de búsqueda (que es $50 en nuestro ejemplo) y devuelve un valor de la segunda columna en la misma fila (que es 5%).

    ¿Pero qué pasa si el valor de búsqueda es menor que el número más pequeño de la tabla de búsqueda o la celda de búsqueda está vacía? En este caso, una fórmula Vlookup devolverá el error #N/A. Si no es lo que realmente quieres, anida VLOOKUP dentro de IFERROR y proporciona el valor a mostrar cuando no se encuentre el valor de búsqueda. Por ejemplo:

    =IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Fuera de rango")

    Nota importante: para que una fórmula Vlookup con coincidencia aproximada funcione correctamente, la primera columna de la tabla de búsqueda debe estar ordenada en orden ascendente de menor a mayor.

    Para obtener más información, consulte VLOOKUP de coincidencia exacta frente a VLOOKUP de coincidencia aproximada.

    Sentencia IFS como alternativa a la función IF anidada

    En Excel 2016 y versiones posteriores, Microsoft introdujo una función especial para evaluar múltiples condiciones: la función IFS.

    Una fórmula IFS puede manejar hasta 127 prueba_lógica / value_if_true y "gana" la primera prueba lógica cuyo resultado sea TRUE:

    IFS(prueba_logica1, valor_si_verdadero1, [prueba_logica2, valor_si_verdadero2]...)

    De acuerdo con la sintaxis anterior, nuestra fórmula IF anidada puede reconstruirse de esta manera:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)

    Preste atención a que la función IFS devuelve el error #N/A si no se cumple ninguna de las condiciones especificadas. Para evitarlo, puede añadir una más prueba_lógica / value_if_true al final de su fórmula que devolverá 0 o una cadena vacía ("") o cualquier valor que desee si ninguna de las pruebas lógicas anteriores es TRUE:

    =IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")

    Como resultado, nuestra fórmula devolverá una cadena vacía (celda en blanco) en lugar del error #N/A si una celda correspondiente de la columna B está vacía o contiene texto o un número negativo.

    Nota: Al igual que los IF anidados, la función IFS de Excel devuelve un valor correspondiente a la primera condición que se evalúa como TRUE, por lo que el orden de las pruebas lógicas en una fórmula IFS es importante.

    Para más información, consulte la función IFS de Excel en lugar de IF anidado.

    ELEGIR en lugar de una fórmula IF anidada en Excel

    Otra forma de probar múltiples condiciones dentro de una única fórmula en Excel es utilizando la función ELEGIR, que está diseñada para devolver un valor de la lista basado en una posición de ese valor.

    Aplicada a nuestro conjunto de datos de muestra, la fórmula adopta la forma siguiente:

    =ELIGIR((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)

    En el primer argumento ( número_índice ), se evalúan todas las condiciones y se suman los resultados. Dado que TRUE equivale a 1 y FALSE a 0, de esta forma se calcula la posición del valor a devolver.

    Por ejemplo, el valor en B2 es $150. Para este valor, las 3 primeras condiciones son TRUE y la última (B2> 150) es FALSE. Entonces, número_índice es igual a 3, lo que significa que se devuelve el 3er valor, que es 7%.

    Consejo: si ninguna de las pruebas lógicas es TRUE, número_índice es igual a 0, y la fórmula devuelve el error #¡VALOR! Una solución fácil es envolver CHOOSE en la función IFERROR de la siguiente manera:

    =IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")

    Para más información, consulte la función ELEGIR de Excel con ejemplos de fórmulas.

    La función SWITCH como forma concisa de IF anidado en Excel

    En situaciones en las que se trata con un conjunto fijo de valores predefinidos, no escalas, la función SWITCH puede ser una alternativa compacta a las complejas sentencias IF anidadas:

    SWITCH(expresión, valor1, resultado1, valor2, resultado2, ..., [por defecto])

    La función SWITCH evalúa expresión contra una lista de valores y devuelve el resultado correspondiente a la primera coincidencia encontrada.

    En caso de que desee calcular la comisión en función de las siguientes calificaciones, en lugar de los importes de las ventas, puede utilizar esta versión compacta de fórmula IF anidada en Excel:

    =SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")

    También puede crear una tabla de referencia como la que se muestra en la siguiente captura de pantalla y utilizar referencias a celdas en lugar de valores codificados:

    =SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")

    Observe que bloqueamos todas las referencias excepto la primera con el signo $ para evitar que cambien al copiar la fórmula a otras celdas:

    Nota: La función SWITCH sólo está disponible en Excel 2016 y versiones posteriores.

    Para obtener más información, consulte la función SWITCH: la forma compacta de la sentencia IF anidada.

    Concatenar varias funciones IF en Excel

    Como se mencionó en el ejemplo anterior, la función SWITCH se introdujo solo en Excel 2016. Para manejar tareas similares en versiones anteriores de Excel, puede combinar dos o más sentencias IF utilizando el operador Concatenar (&) o la función CONCATENAR.

    Por ejemplo:

    =(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    O

    =CONCATENADO(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1

    Como habrá notado, multiplicamos el resultado por 1 en ambas fórmulas. Se hace para convertir una cadena devuelta por la fórmula Concatenar en un número. Si su salida esperada es texto, entonces la operación de multiplicación no es necesaria.

    Para más información, consulte la función CONCATENAR en Excel.

    Puede ver que Microsoft Excel proporciona un puñado de buenas alternativas a las fórmulas IF anidadas, y esperamos que este tutorial le haya dado algunas pistas sobre cómo aprovecharlas en sus hojas de cálculo. Para ver más de cerca los ejemplos tratados en este tutorial, le invitamos a descargar nuestro libro de trabajo de ejemplo a continuación. Le agradezco su lectura y ¡espero verle en nuestro blog la semana que viene!

    Cuaderno de prácticas para descargar

    Sentencia If anidada en Excel - ejemplos (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.