Función SI anidada

La función SI es una de las funciones más utilizadas en Excel. Lo que ésta función hace es probar si una condición es verdadera ó falsa. Si la condición es verdadera entonces la función hace alguna cosa, y si la condición es falsa entonces se hace otra cosa diferente.

Explicación de la función SI anidada

Una función SI anidada es cuando una segunda función SI se coloca dentro de la primera de manera que pruebe alguna condición adicional. Las funciones SI anidadas aumentan la flexibilidad de la función al ampliar el número de posibles resultados a probar.

Supongamos que necesitamos hacer una equivalencia de una columna de letras a números de la siguiente manera: A = 5 y B = 10. Si la celda es igual a “A” entonces el valor será 5, pero si la celda es “B” entonces el valor será 10. Esto lo podemos resolver con la siguiente función SI anidada:

SI(celda = "A", 5, SI(celda = "B", 10))

El resultado será el siguiente:

Función SI anidada

¿Qué pasaría si ahora en lugar de dos letras tenemos tres? Es decir, que si encontramos una “C” debemos colocar el valor 20. La función SI anidada será la siguiente:

SI(celda = "A", 5, SI(celda = "B", 10, SI(celda = "C", 20)))

Una función SI anidada puede ayudarte a encontrar una buena solución a tu problema pero no debes hacer un uso excesivo de esta funcionalidad.
Excel 2010 soporta hasta 64 funciones SI anidadas, pero seguramente no llegarás ni a la mitad de esa cantidad antes de que se dificulte entender la lógica empleada en todas esas funciones. Mientras tanto disfruta de tus funciones SI anidadas.

Artículos relacionados
La función SI en Excel

66 comentarios en “Función SI anidada

  1. luly pacheco

    me gusta mucho esta producciòn

  2. luis

    buen tema me sirvio de mucho gracias

  3. morocko

    yeah gracias x la informacion,es lo que andaba buscando

  4. ALEXANDER

    Muchas Gracias, me sirvió de mucho esa Información por cierto esta muy bien detallado el contenido

  5. danny

    Con la función SI, logre cruzar todos los datos que necesito para dar categoria a ciertos aspectos… PERO, la mitad de la formula se excede de las 64 funciones anidadas, y eso que no la termine de escribir completa… luego me arrojo error por exceder las 64….. y bueno si alguien sabe como hacer para que reconosca mas de 64 funciones anidades, se los agradeceria montones

    1. Moises Autor

      Danny,
      No es posible tener más de 64 funciones anidadas. No existe ningún truco para exceder este límite.
      Lo que debes hacer es replantear la solución a tu problema sin utilizar la función SI. Una alternativa común es utilizar la función BUSCARV ya que en muchas ocasiones nos ayuda a reemplazar adecuadamente el uso de la función SI anidada. Tengo un artículo con un ejemplo al respecto, lo único que debes considerar es que este artículo utiliza la función CONSULTAV que fue el nombre que tuvo la función BUSCARV por un breve tiempo. Este es el artículo:
      http://exceltotal.com/reemplazar-funcion-si-anidada-por-funcion-consultav/

  6. jack

    si quieres exceder el maximo de 24 funciones … es mejor que utilices funciones de busqueda …..
    =buscarv
    =buscarh

  7. Matías

    Hola, buenas noches, estoy en búsqueda de un poco de ayuda, ya que tratando de anidar varias funciones si, me arroja que “Ha especificado demasiados argumentos para esta función”. Aquí les dejo lo que he intendado hacer:
    =SI(“Celda”>=63;”Baja”;””; SI(“Celda”>=103;”Aceptable”;””; SI(“Celda”>=153;”Buena”;””; SI(“Celda”>=213;”Muy Buena”;””; SI(“Celda”>=283;”Excelente”;””; SI(“Celda”>=363;”Formidable”;””; SI(“Celda”>=463;”Clase Mundial”;””)))))))

    Lo que trato de hacer es que Excel me arroje la palabra según el dato, según la siguiente tabla:
    63 o mas –> Baja
    103 o mas –> Aceptable
    153 o mas –> Buena
    213 o mas –> Muy Buena
    283 o mas –> Excelente
    363 o mas –> Formidable
    463 o mas –> Clase Mundial

    Si alguien pudiera ayudarme dándome la función correcta estaría muy agradecido.
    Desde ya muchas gracias, Matías

  8. julio

    Moisés, felicitarte por esta página. La verdad ha sido de mucha ayuda en temas de Excel que a veces olvidamos y otras que desconocemos como usarlas o simplemente no sabemos de su existencia. Ayuda como la vuestra es la que debe predominar en RED. Un abrazo,

  9. Gerardo Gardea

    Felicidades Moisés por tu disposición para ayudarnos en el magnifico mundo del excel.

  10. william

    Me sirvió mucho pues ya se me había olvidado como se hacia después de 3 años de no tocar excel
    Un Saludo desde Guatemala.

  11. frank

    amigo quisiera saber si se puede hacer una anidacion ilimitada de la funcion si ya solo puedo usar hasta 60 anidaciones , es buenos consejo los q das

  12. Marin carrasco

    me ha gustado mucho como se explica las funciones gracias pero como puedo utilizar la función colorfondoigual-anidada, porque me marca error me dice que he sobrepasado los argumentos para esa función. ejemplo:
    =IF(colorfondoigual(A2,177,160,199),”PURPURA”,”no”,IF(colorfondoigual(A1,255,255,0),”amarillo”,”no”))

    Solo que la función la este aplicando mal.
    saludos.

    1. Moisés Ortíz Autor

      Hola Marin,
      El error se debe a que estás utilizando mal la función SI anidada (IF anidado). La función SI (IF) solamente acepta 3 argumentos y en este ejemplo estás tratando de utilizar 6 argumentos en una misma función SI.

  13. Mario Versalli

    Hola Moises, ante todo muchas gracias por tu ayuda; aunque es la primera vez que pregunto, ta he recurrido a esta pagina varias veces por preguntas que ye se habian hecho, pero esta vez no he encontrado una pregunta similar a lo que necesito ahora. resulta que tengo una funcion SI anidada pero nen el resultado necesito que me muestre con el simbolo $ delante y con 2 cifras despues de la coma, pero por mas que en la celda le dé ese formato especifico, me muestra el resultado solo con numero y sin los decimales.
    aqui te dejo la formula:=SI(E10>0;E10-F10;” “)& SI(F10>0;E10-F10;” “)
    Para darte una idea es una hoja de Caja y la columna E corresponde a los ingresos registrados, mientras que la F corresponde a los egresos. En la celda que inserto la formula quiero que me dé el saldo, solo si hay algun ingreso o egreso.
    Un saludo desde Concordia ER Argentina

    1. Moisés Ortíz Autor

      Hola Mario, esto no depende de la función SI anidada. Existen dos opciones. La mas sencilla es que apliques un formato a la celda para que muestre automáticamente el símbolo $ y con los 2 decimales. En la ficha inicio, en el grupo Número, selecciona de la lista de formatos la opción Moneda y aplicará el formato que estás buscando.
      Si por el contrario, deseas aplicar el formato utilizando funciones, puedes utilizar la función TEXTO:
      =TEXTO(A4,”$#.00″)

      Más información sobre esta función aqui: http://exceltotal.com/la-funcion-texto-en-excel/

  14. Claudia Hernandez

    Hola Moisés! Como estas?
    Tengo un problema en excel pues tengo una formula que necesito me regrese un valor: =SI(E11=1,”Alta”,SI(E11=2,”Cambio / Modificación”,SI(E11=3,” Baja”))) el detalle es que necesito que este valor me lo devuelva del rango: E9:W9.
    Intente hacerlo así: =SI(E11:W11=1,”Alta”,SI(E11:W11=2,”Cambio / Modificación”,SI(E11:W11=3,” Baja”))) Pero me marca error: #Valor!.
    Ojala puedas orientarme sobre como poder devolver el valor en un rango de celdas.
    Muchas gracias por tu ayuda.

    1. Moisés Ortíz Autor

      Claudia, el error #¡VALOR! se debe a que tu fórmula tiene E11:W11=1 lo cual es inválido en Excel, este tipo de sentencia es válida solo en caso de utilizar una fórmula matricial.
      No me queda claro lo que intentas hacer, pero si estás buscando un valor dentro del rango E9:W9 tal vez debas considerar utilizar la función BUSCARV en lugar del SI anidado.
      http://exceltotal.com/utilizar-buscarv-en-lugar-de-si-anidado/

  15. Esther

    Si necesito unir dos formulas de Si, que indivialmente me arroja correctamente la formula, pero al unirla me arroja error
    =SI((C3>=A3);”Tarde”;”Extra”);SI((D3<B3);"Debe";"Extra")
    HORA ASIGNADA HORA REAL LABORADA
    Entrada Salida Entrada Salida
    08:00 a.m. 06:00 p.m. 08:05 a.m. 05:50 p.m.
    A3 B3 C3 D3

    1. Moisés Ortíz Autor

      Hola Esther, el error es porque la función SI solo acepta 3 argumentos y has colocado la segunda función SI como si fuera un cuarto argumento.
      No puedo hacer alguna sugerencia porque desconozco el detalle de lo que intentas hacer.

  16. Saúl

    Muchas gracias, me ha ayudado bastante. Saludos.

  17. Teresa Vázquez

    Quiero felicitarte por tu excelente aportación sobre todo por la actitud de siempre ayudar y por favor dime si tienes un curso

  18. norberto

    es de gran ayuda, para todo momento al estar trabajando cuadros estadisticos y obtener resultados solicitados.

  19. Guillermo

    pongo la siguiente formula y no me respeta la ultima condicion, me podria asesorar por que? =SI(K3>=0,0,SI(K3<0,1,SI(K3<(-70),2)))

    1. Moisés Ortíz Autor

      Hola Guillerno, las primeras dos condiciones cubren la totalidad de los números y ningún valor llegará a la tercera condición porque SIEMPRE se cumplirá antes una de las dos condiciones previas.

  20. Fede

    excelente explicación, me sirvió mucho, muchísimas gracias.

  21. JESUS RANGEL

    Mis felicitaciones. son unos expertos en la materia y gracias a su orientacion saque unas funciones si anidadas entre celdas de hojas de un libro y salio perfecto. gracias totales.

  22. ELENA

    me sirvio de mucha ayuda el contenido de la pagina gracias

  23. Eduardo

    muy bueno el ejemplo…se agradece….slds

  24. Albert

    Tengo un problema: la función SI solo me deja anidar 8 veces, cuando intento anidar una vez más me sale un mensaje que dice:
    “No se puede utilizar la fórmula especificada porque usa más niveles de anidamiento de los permitidos en el formato de archivo actual”
    Pero la ayuda de EXCEL dice que se debería poder anidar 64 veces. ¿Alguien lo entiende y sabe como solucionarlo?

    1. Moisés Ortíz Autor

      Hola Albert, puedes anidar hasta 64 veces la función SI siempre y cuando tengas una versión igual (o posterior) a Excel 2007.

  25. Jacobo

    Muchas gracias por este trabajo que haces, me sirves de una gran ayuda.
    Enhorabuena!

  26. Jose Luis

    Maestro, felicitarte por la pagina es de muchísima ayuda para los que queremos usar el excel para desempeñarnos mejor. He logrado utilizar esta función (SI) y aliviaba mi trabajo un montón, pero tengo un problema cuando una celda no cumple la condición me pone “FALSO”, como hago para que la celda quede vacía.
    Gracias.

    1. Moisés Ortíz Autor

      Hola Jose Luis, solamente coloca una cadena vacía en el tercer argumento de la función SI:
      =SI(A1>0,A1,””)

  27. Enrique Midence

    Este Post esta realmente bien explicado te doy las gracias me ayudo mucho muchas gracias no tengo palabras mas que gracias y gracias.

  28. Giovani

    Hola amigo buen dia una pregunta como condiciono una lista de nombre que no sean admitidos , pero si en otra hoja de excel dentro del mismo libro se pone un nombre de la lista , el nombre se ponga de color rojo o una señal para que sepa que estoy en un error y que no lo puedo poner porfa ayudame ya intente con condion, con si y nomas no me sale

    1. Moisés Ortíz Autor

      Hola Giovani, para manipular el color de una celda o de un texto es necesario utilizar formato condicional. Te dejo un artículo con un ejemplo que busca una palabra dentro de una lista y resalta las coincidencias y creo que dicho ejemplo te será de utilidad.
      http://exceltotal.com/buscar-valores-usando-formato-condicional/

  29. maria sequera

    estoy trabajando excel 97-2003 y no me deja anidar màs de 8 y en el texto de ayuda dice 64 asi como lo comentas. por que no me deja hacer mas de 8?

    1. Moisés Ortíz Autor

      Hola Maria, la anidación de 64 funciones es posible a partir de Excel 2007. Para las versiones anteriores solo es posible anidar hasta 8 funciones.

  30. tomas

    Tengo esta formula en hoja de calcaulo.. ¿Quiera saber si se puede dejar la celdas con un color de fondo para cada variante? y como que daria la formula?
    =SI(J7=6;”INACEPTABLE”;SI(J7>=3;”MODERADO”)))

  31. GABRIEL

    Te felicito por esta pagina pues me ayudo mucho, seguire visitandola para aprender mas sobre las dudas que te plantean, mil gracias.

  32. Mari

    Hola moises Buenas Noches… quiero utilizar la funcion si condicional para una tabla de excel que tiene 5 valores
    este es el ejemplo
    CRITERIOS Columna Resultado
    < de 6 REPROBADO
    6.0 – 7.4 SUFICIENTE
    7.5 – 8.4 BIEN
    8.5 – 9.4 MUY BIEN
    9.5 – 10 EXCELENTE
    la formula que aplique es esta =IF(G5<6,"REPROBADO","SUFICIENTE") pero ya no se como hacer para que se pongan las otras condicionantes como hago? Muchas Gracias por tu ayuda.

  33. Valia Albino

    Buen dia, tengo un porblema con tu formula anidada, estoy intentando aplicarla al resultado de una lista desplegable y me aparece en un valor FALSO, que debo hacer?
    Suponiendo que: Los valores que arroja la tabla son: Disponible o No disponible Aplico la formula: =SI(Z7=”Disponible”;0;SI(Z7=”No disponible”;3)) Y el resultado para Disponible es FALSO
    No se que esta mal, agradezco tu ayuda, gracias.

    1. Moisés Ortíz Autor

      Hola Valia, generalmente se muestra FALSO cuando ninguna de las condiciones se cumple. En tu caso, la celda Z7 ha de tener un valor diferente a “Disponible” y también diferente a “No disponible”.
      Verifica que la celda Z7 no tenga espacios en blanco a la izquierda o derecha del texto o utiliza la función ESPACIOS de la siguiente manera:
      =SI(ESPACIOS(A1)=”Disponible”; 0; SI(ESPACIOS(Z7)=”No disponible”; 3))

  34. Michelle

    Buen día, tengo un problema con la función si anidada y es que me da como resultado falso, quiero que al aplicar la fórmula me de valores, tengo asi
    gerente
    tesorero
    administrador
    y quiero con la formula aplicarles el valor que ganan de sueldo, por ejemplo:
    gerente 2000
    tesorero 1200, etc
    ¿Cómo haría?

    1. Moisés Ortíz Autor

      Hola Michelle, la función SI anidada te devuelve FALSO por dos razones:
      1) Ninguna de las condiciones que has implementado se cumplió y además
      2) La última función SI anidada no tiene el tercer argumento y por los tanto se devuelve FALSO.

      Para tu ejemplo tienes que indicar lo que deseas que la función SI devuelva cuando se encuentre un valor que sea diferente a gerente, tesorero y administrador.

  35. julio cabrera

    hola, necesito ayuda, quiero utilizar la funcion SI conbinada con BUSCARV, pero me dice que me excedi de las anidaciones.
    si la formual que estoy utilizando es esta….SI(I18=1,BUSCARV(E18,’Formulas Med’!$B$5:$V$50,2,FALSO),SI(I18=2,BUSCARV(E18,’Formulas Med’!$B$5:$V$50,3,FALSO)…..y asi sucesivamente… hasta llegar a SI(I18=20,BUSCARV(E18,’Formulas Med’!$B$5:$V$50,21,FALSO)……osea que solo son 20 SI y 20 BUSCARV los que estaria utilizando… pero excel.. no me lo permite……estare haciendo algo mal….. o habra una manera de conbinar estas 2 formulas………..de antemano…gracias por su ayuda…

    1. Moisés Ortíz Autor

      Hola Julio. ¿Qué versión de Excel tienes?
      A partir de Excel 2007 podemos anidar hasta 64 funciones, pero las versiones anteriores solo permitían 7.

  36. ALBERTO KURI

    Hola Moises, fue de mucha ayuda tu información, gracias

  37. ANTONIO

    Hola Moisés:
    Gracias por compartir tus tremendos conocimientos,yo soy un novato en esta lides.
    necesito sumar a partir de dos criterios uno es el nombre y el otro es a partir de un color ,te explico,tengo un listado de facturas a las que le di un formato condicional para que se pusiera rojo cuando la factura se venciera en un listado donde tengo columna A n° factura B nombre,C ,fecha de emision D,fecha de vencimiento E,neto, F iva G, total, que es la columna que debo sumar , he probado con la funcion SUMAR.SI.CONJUNTO pero no me resulta.
    Gracias de antemano.

    Antonio

    1. Moisés Ortíz Autor

      Hola Antonio, ninguna función de Excel detectará el color de una celda. Tienes que hacer uso de VBA para evaluar dicha propiedad.
      Te dejo un ejemplo, que será solo ilustrativo porque no funciona con colores aplicados por formato condicional, pero te dará una idea de cómo evaluar colores en Excel:
      http://exceltotal.com/operaciones-con-colores-en-excel/

  38. Ivan

    Hola Moisés, te agradezco de antemano el apoyo y la atención, fíjate que estoy intentando con esta fórmula:

    =+SI(MES(AG2)=1, “ENERO”, SI(MES(AG2)=2, “FEBRERO”, SI(MES(AG2)=3, “MARZO”, SI(MES(AG2)=4, “ABRIL”, SI(MES(AG2)=5, “MAYO”, SI(MES(AG2)=6, “JUNIO”, SI(MES(AG2)=7, “JULIO”, SI(MES(AG2)=08, “AGOSTO”, SI(MES(AG2)=09, “SEPTIEMBRE”, SI(MES(AG2)=10, “OCTUBRE”, SI(MES(AG2)=11, “NOVIEMBRE”, SI(MES(AG2)=12, “DICIEMBRE”, “ERROR”))))))))))))

    y me arroja un error: “no se puede utilizar la formula especificada porque usa más niveles de anidamiento de los permitidos en el formato de archivo actual”
    por mucho no estoy excediendo el limite los 64 que mencionas en tu articulo, que estoy haciendo mal?
    saludos,

    1. Moisés Ortíz Autor

      Hola Ivan, tal vez tienes Excel 2003 y en ese caso el límite es 7.

  39. Sharif

    Hola Moisés, está muy bueno tu sitio, y en especial este artículo. Sólo tengo una duda, e intentaré exponerla del modo más conciso posible para ver si puedes ayudarme.

    Necesito usar una función SI que excede el límite de 64 anidadas. Este es el ejemplo colocado en la celda B1 de la Hoja1 de mi libro de Excel 2010:

    =SI(A1=Hoja2!D1;Hoja2!E1;SI(A1=Hoja2!D2;Hoja2!E2;SI(A1=Hoja2!D3;Hoja2!E3…y así sucesivamente hasta…Hoja2!E90;”ERROR”)))…y para cerrar alrededor de 90 paréntesis…))

    En la celda A1 de la Hoja1 hay una lista desplegable que contiene los 90 elementos que se visualizan en el ejemplo anterior, esa celda representa una compra que hace un cliente (la referencia de la lista es D1:D90 de la Hoja2 donde hay una lista con modelos de carros que por ahora son 90 modelos, y en el rango E1:E90 de la Hoja2 están sus respectivos precios).

    Yo quiero que cuando se escoja en la celda A1 (Hoja1) un elemento de la lista desplegable, es decir el modelo de carro que se está comprando, en la celda B1 (Hoja1) aparezca automáticamente el precio de ese modelo.

    El inconveniente es que la Hoja2 que es la que contiene todos los datos, se edita frecuentemente ya que siempre ando agregando nuevos modelos de carros, lo que significa que los rangos de la Hoja2 D1:D90 (modelo del carro) y E1:E90 (precio) tienden a crecer indefinidamente, por ejemplo pueden crecer a D1:D120 y E1:E120.

    Entonces la función SI no me ayuda en este caso (por tener un límite de 64 anidadas) además de ser demasiado larga y difícil de entender. La función que tengo escrita por ahora que sólo tiene 54 funciones SI anidadas ya asciende a los 4378 caracteres escritos. Y tampoco me ayuda la función INDIRECTO en la celda A1 de la Hoja1 (que contiene la lista desplegable) ya que tendría que darle un nombre a cada celda de la columna Hoja2!E que sea igual al nombre de cada modelo de carro y procurando que no tengan espacios para que marche bien la función INDIRECTO en la lista desplegable.

    Entonces mi pregunta es: ¿Existe alguna función que identifique cuál es la celda igual en un rango de celdas que va creciendo frecuentemente y que además devuelva el valor de la celda que está asociada a la que se identifica como igual? De modo que me sea posible agregar cuando lo desee modelos de carros en la Hoja2 y que en la Hoja1 aparezca automáticamente el precio de cada modelo de carro con tan sólo seleccionarlo en la lista desplegable…

    1. Moisés Ortíz Autor

      Hola Sharif, generalmente es posible reemplazar los SI anidados con la función BUSCARV. Consulta el siguiente artículo para saber un poco más al respecto:
      http://exceltotal.com/utilizar-buscarv-en-lugar-de-si-anidado/

      Para determinar el rango de búsqueda de la función BUSCARV deberás crear un “rango dinámico” de manera que no tengas que modificar la fórmula cada vez que ingresas nuevos datos a la Hoja2. Para leer sobre la creación de ese tipo de rangos puedes leer el siguiente artículo:
      http://exceltotal.com/nombres-de-rango-dinamicos/

  40. Pedro Pineda

    tengo una base de datos y necesito aplicar mas de 8 “SI” pero no me deja, puedes ayudarme con algo? a lo mejor con macros no se.
    gracias y espero su apoyo.
    saludos,

    1. Moisés Ortíz Autor

      Hola Pedro, supongo que tienes Excel 2003 ya que es la versión que tiene la restricción de 8 funciones. En una gran cantidad de casos funciones reemplazar los SI anidados por la función BUSCARV. Consulta el siguiente artículo que tal vez te pueda dar una idea de cómo solucionar tu problema:
      http://exceltotal.com/utilizar-buscarv-en-lugar-de-si-anidado/

  41. jorge pedro

    Hola…quisiera saber el significado de =SI($D5=””;0). No se el porque de las comillas?
    muchas gracias

    1. Moisés Ortíz Autor

      Hola Jorge, las comillas indican una cadena de texto vacía, así que, si la celda D5 está vacía, se devolverá el valor cero.

  42. Jennifer Pantoni

    Buenas tardes. Quisiera saber si podrias ayudarme en algo. Yo quiero establecer valores para ciertas restricciones, es decir: del 0 al 300 quiero que en la celda me diga BAJO, del 301 al 600 MEDIO y del 602 en adelante ALTO. Estoy tratando de aplicar la formula tal como explicas pero me reconoce solo el alto y bajo, es esta:
    =SI(G29<300;"BAJO";SI(301<G29601;”ALTO”)))

    1. Moisés Ortíz Autor

      Hola Jennifer, considera la siguiente fórmula:
      =SI(A1<300, “BAJO”, SI(A1<600, “MEDIO”, “ALTO”))