Cómo usar las funciones SI en Excel con varias condiciones

En Excel una de las funciones más utilizadas es «SI», esta te permite efectuar comparaciones lógicas de un valor, para obtener un resultado u otro.

La función toma tres parámetros, el primero consiste en la comparación lógica, el segundo es el resultado que se devolverá en caso de que la comparación sea verdadera, y el tercer parámetro es el valor que se devolverá si la comparación es falsa.

¿Quieres aprender a dominar las mejores FÓRMULAS EN EXCEL?

Ejemplos de función SI en Excel

Para comprender un poco mejor cómo opera esta función, te presentamos varios ejemplos sencillos:

=SI(B2="Activo",1,0)

Le indica a Excel que devuelva un «1» como resultado, si el valor de la celda B2 es igual a «Activo», en caso contrario debe devolver un «0».

=SI(A2>B2,"Monto sobregirado","Aprobado")

Le indica a Excel que devuelva «Monto sobregirado» como resultado, si el valor de la celda A2 es mayor B2, en caso contrario debe devolver «Aprobado».

=SI(A2>B2,B2,A2)

Le indica a Excel que devuelva el valor del «Monto requerido» como resultado, si el valor de la celda A2 es mayor B2, en caso contrario debe devolver el valor del «Monto ofrecido».

Función SI Y en Excel con varias condiciones

Para incluir varias condiciones en una función SI, se debe hacer uso de la función «Y» o de la función «O».

  • La función «Y» es condicional y devuelve «Verdadero» si ambas condiciones indicadas en sus parámetros se cumplen.
  • En cuanto a la función «O», devuelve «Verdadero» si una de las condiciones indicadas en sus parámetros se cumple.
=SI(Y(A2="Rojo",B2="Verde"),VERDADERO,FALSO)

En este caso la función arrojará «Verdadero» solo si el color ubicado en la columna A es igual a «Rojo» y el color de la columna «B» es igual a «Verde».

=SI(O(A2="Rojo",B2="Verde"),VERDADERO,FALSO)

En este caso la función arrojará «Verdadero» si el color ubicado en la columna A es igual a «Rojo» o el color de la columna «B» es igual a «Verde».

La función SI también puede ser utilizada con varias condiciones, creando de esta forma una función anidada.

¿Quieres aprender Excel desde Cero?
Inscríbete GRATIS y conviértete en un master en Excel

Para el ejemplo se evaluarán diversas puntuaciones (valores numéricos), y de acuerdo al valor de cada una se le asignará la letra correspondiente (A: para excelente, B: para bueno, C: regular, D: deficiente y F: reprobado).

=SI(A2>89,"A",SI(A2>79,"B", SI(A2>69,"C",SI(A2>59,"D","F"))))

Función si y en Excel inglés

La función SI en inglés opera de la misma manera, su sintaxis cambia en la forma en la que se escribe el nombre de la función en sí. Es decir, en lugar de ser SI (parámetro 1, parámetro 2, parámetro 3), se debe escribir

IF (parámetro 1, parámetro 2, parámetro 3).

En caso de que se desee utilizar en combinación con la función «Y» o con la función «O», estas también deben cambiar a su sintaxis en inglés, las cuales serían las siguientes:

  • AND (parámetro 1, parámetro 2)
  • OR (parámetro 1, parámetro 2)

Como ejemplo, presentamos algunos de los ejercicios previos escritos en inglés:

Ejemplo: =IF(A2>89,»A», IF(A2>79,»B», IF(A2>69,»C», IF(A2>59,»D»,»F»))))

Ejemplo: =IF(AND(A2=»Rojo»,B2=»Verde»),TRUE,FALSE)

Ejemplo: =IF(OR(A2=»Rojo»,B2=»Verde»),TRUE,FALSE)

Utilizar la función SI de Excel puede facilitarte el trabajo, especialmente cuando se requiere la comprobación de ciertos valores o condiciones. Además, al utilizarla en combinación con otras funciones su aplicación y utilidad se amplía, así como la efectividad y practicidad de la misma.

Conclusión

En este tutorial, has aprendido como realizar comparaciones complejas a través de usar las funciones SI + Y dentro de la hoja de cálculo.

Asegurate de seguir bien los ejemplos y ten cuidado con las comas (,) y los paréntesis () porque puede causar conflictos en esta función.

Publica un comentario y comparte tus dudas sobre esta función.

Gerardo Castro

Ing. Programador VBA y .NET
Me encanta programar en Excel y buscar nuevas formas de hacer las tareas más rápido.

122 comentarios en «Cómo usar las funciones SI en Excel con varias condiciones»

  1. Hola Gerardo como estas? Estoy tratando de crear una formula para estas condiciones pero no he podido, de ponto me puedes ayudar? Necesito que si en la celda B2 dice «Solicitud» y en la J2 es a 2 entonces me ponga «No cumple» o si en la celda B2 dice «Nuevo» y la J2 es menor o igual a 2 entonces me ponga «Cumple» sino «No cumple» lo he tratado de formular asi pero definitivamente no me da

    SI((B2=»Solicitud»);Y(J2<=4));"Cumple";"No Cumple")O(SI((B2="Aplicación(es)";Y(J2<=2);"Cumple";"No Cumple"))

    Responder
    • Hola que tal Estefania,

      Según tus comentarios, deberias usar una función como la siguiente:
      SI(Y(B2="Solicitud";J2=2);"No Cumple";SI(Y(B2="Nuevo";J2<=2);"Cumple";"No Cumple"))

      Responder
  2. Hola Gerardo!
    Primero que nada quiero agradecerte por este artículo, yo siempre ando buscando temas de Excel y puedo decir que es Usted de los pocos que explica demasiado de bien, muy sencillo, lo que agradezco doblemente más.

    Espero pueda tener la oportunidad de apoyarme con mi caso: Tengo una celda combinada y centrada con formato en fecha larga, a cual se lee «viernes, 19 de mayo de 2023″ y quiero usar esta celda para que en otra celda me arroje el resultado ENTRE SEMANA o bien FIN DE SEMANA.

    Realicé la siguiente formula:

    =SI(Y(A3=»viernes»,»sabado»,»domingo»),»Fin de semana»,»Entre semana»)

    El resultado que me arroja a toda fecha que escriba es ENTRE SEMANA, así haya escrito el 19 de Mayo que es viernes. ¿Esto es posible?

    ¡Desde ya agradezco por su atención para mi comentario!

    Responder
    • Corrijo la formula como realmente la tengo:
      =SI(Y(A3=»viernes»,»sabado»,»domingo»),»Fin de semana»,»Entre semana»)

      Es entre comillas.

      Responder
      • Que tal Kira,

        La razón por la que siempre devuelve «Entre Semana» es por que la comparación no es correcta; debes usar una función como la siguiente:

        =SI(DIASEM(A3,2)>=5,"Fin de Semana","Entre semana")

        Espero que esto te ayude, quedo atento a tus comentarios.

  3. Buenas tardes Gerardo, espero que se encuentre bien, tengo un problema con excel, tengo que usar la funcion SI con 3 estados diferentes (vencido, para hoy, pendiente) vencido seria menor de 0 (-1,-2, etc) para hoy seria solo 0 , pendiente es de (1,2,3 etc) lo uso con fechas…. uso una formula pero me deja o mayor o menor pero no me deja poner para hoy, me estoy volviendo loco jajaj, si me podra dar una ayuda, estaria muy agradecido.. =SI(F2<0;"Para Hoy";"Pendiente" pero no me deja poner otra variable que es todo lo negativo ponerlo como Vencido, lo pendiente serian los dias por realizar determinda tarea.
    quedo a la espera de una ayuda, muchas gracias, saludos

    Responder
    • Hola Germán, si entiendo bien lo que necesitas son 3 estados (vencido, para hoy, pendiente) que se asignan de acuerdo a un valor numérico, si es así, creo que tendrías que usar algo como lo siguiente:

      =SI(F2<0;"Vencido";SI(F2=0;"Para hoy";"Pendiente"))

      Espero que esto te ayude, quedo al pendiente de tus comentarios.

      Responder
      • Buenas Tardes Gerardo, muchas muchas muchas gracias, no lo podia hacer, ahora me solucionaste muchas cosas, la verdad eternamente agradecido!!
        que tenga buen dia!

  4. Buenas Tardes, intento crear una formula en la que por seleccion de texto «X» en una celda me muestre que tipo de usuario es, basico, avanzado o especializado. si utiliza oficce y correo es un usuario basico, marca con x, utiliza aparte de la primera linea tambien selecciona con x la segunda es usuario avanzado, en resumen si selecciona 1,2 y 3 o 1,3 o 2,3 o 3 es especializado, si seleccion es 1 y 2 o solo 2 es avanzado igual para 1 es basico me pueden ayudar mi formula es =SI(H12=»X»;L12;SI(H13=»X»;L13;SI(H14=»X»;L14;»Seleccionar con X las Aplicaciones»)))

    Responder
  5. Buenas tardes

    Espero explicarme, requiero de hacer un reporte de una tabla donde tengo 7 columnas con nombres de cursos c/u, y en las filas nombres de trabajadores y sus áreas, cada uno de ellos ha hecho esos cursos en diferentes fechas; el reporte va sobre hacer por cada área, de enero a diciembre (por ejemplo), cuantos cursos hizo por mes), quiero meter aparte de la condicional por mes, que jale el departamento, estuve trabajando en ésta fórmula, pero sólo me da el total por el rango que le ponga, pero no sé si me sirva pra que jale el +área:+CONTAR.SI.CONJUNTO($H$4:$N$194,»>=1/1/2022″,$H$4:$N$194,»<=31/1/2022") … Help!

    Responder
    • Que tal Fabiola,

      La formula que estás usando parece ser la adecuada, para incluir otro criterio para el area, deberas hacer algo como esto:
      =CONTAR.SI.CONJUNTO($H$4:$N$194,">=1/1/2022″,$H$4:$N$194,"<=31/1/2022",$H$4:$N$194,"area1")

      Espero que esto te ayude, saludos!

      Responder
  6. Muchísimas gracias!! y hay manera de que solo se haga la operación si determinada celda tiene un valor. Es decir; aplicar esa formula solo si la celda X tiene un valor o no está vacía?

    Responder
  7. HOLA intento crear una formula donde me arroje valor pagado si la fecha de pago es menor a la fecha actual, en caso contrario debería restar la fecha de emision de la factura a la fecha actual y darme el número de días vencida o no. Esta es la fórmula que estoy poniendo y me da error:
    =SI(($L6=0),»PAGADA»),($E6-A$4) me puedes decir qué estoy haciendo mal?

    Responder
    • Que tal Vanessa,
      La fórmula que compartes tiene error en los paréntesis, deberías tener algo como esto:
      =SI($L6=0,"PAGADA",$E6-A$4)
      Esta función comprueba que la columna L tenga 0, y entonces coloca PAGADA, en caso contrario resta las columnas E y A, y en su caso devuelve la diferencia (días, si son fechas)

      Responder
  8. buenas noches..estoy tratando de hacer una multiplicación pero tengo 3 variables. La multiplicación solo se puede hacer sobre el mayor número e hice esta fórmula =SI(Y((F39>G39;F39>H39;F39*J40);SI(Y(G39>H39;G39>F39;G39*J40);SI(Y(H39>F39;H39>G39;H39*J40);FALSO)))), pero me genera error. Me puedes ayudar ?

    Responder
    • Que tal Sandra,
      Porque no intentas obtener el valor máximo de las 3 celdas, y posteriormente hacer la multiplicación. Algo así como:
      =MAX(F39:H39)*J40
      Espero que esto te ayude, saludos!

      Responder
  9. =SI(K14>=»A»,24%*F12,SI(K14>=»B»,22%*F12,SI(K14>=»C»,20%*F12,SI(K14>=»D»,14%*F12,SI(K14>=»E»,12%*F12,0%*F12)))))
    Buen día ¿Porqué al momento de seleccionar una variable ejemplo la «C» no selecciona el valor del 20% y toma como referencia el valor de «A» del 24%?

    Responder
    • Hola Carlos,
      Intenta quitar el operador «>» de las condiciones y sólo deja el «=», con eso debe resolverse el problema.
      Saludos!

      Responder
  10. Hola, tengo que armar una formula que sea para que me devuelva opciones segun distintas fechas.
    Ejemplo: Fecha 8/2/2022
    Si a los 90 dias
    Si a los 180 dias
    Si a los 270 dias
    Si a los 360 dias…

    Gracias!!!

    Responder
    • Hola Maria,

      Disculpa no termino de enteder lo que necesitas, crees que puedas explicarlo con más detalle y algunos ejemplos. Saludos!

      Responder
  11. Buenas, estoy intentando crear un calendario para llevar la cuenta de mis horas trabajadas.
    Estoy usando la funcion IF para restar mi hora de entrada y mi hora de salida pero si la salida es menor que la de entrada (que significaria que ya es el dia siguiente) se haga con otra formula, y ambos escenarios al final se multiplican por 24 para que el sistema decimal se elimine y se vuelva una duracion de tiempo y sean numeros con los que poder trabajar y multiplicar por mis $/h

    =IF(D6<D7,(D7-D6)*24,(1-D6+D7-0)*24)

    Mi problema es que debido a mi segundo condicional cuando la celda esta vacia el resultado acaba en 24 y quiero que acabe en 0 o directamente no se escriba nada para que las formulas de suma que hay detras no arrojen datos desvirtuados.
    He intentado de todo, poniendo un segundo IF que si la celda es 0 entonces el resultado sera 0, que si el resultado es 24 entonces que sea 0… pero me da error todo y salta un mensaje "wrong number of arguments, expected between 2 or 3, but got 4 arguments.
    Me podriais ayudar?

    Gracias de antemano

    Responder
  12. Hola cómo hago para q la formula si. Me devuelva estos siguientes valores. Es para calcular la cantidad de días q le corresponde de vacaciones en base a su antigüedad.
    Si es mayor a 1 año de antigüedad le corresponde 14 días, si es mayor a 6 años le corresponde 21 días, si es mayor a 11 años le corresponde 28 días y si es mayor a 21 años le corresponde 35 dias

    Responder
    • Hola Sergio,
      Hay varias formas de resolver esto, pero podrías guiarte con la siguiente fórmula:
      =SI(A2>=21,35,SI(A2>=11,28,SI(A2>=6,21,SI(A2>=1,14))))

      Donde debes considerar que A2 cuenta con la antiguedad en años.

      Responder
  13. buenas noches, tengo una tarea que es un tanto complicada, tengo una tabla con un encabezado de el número de los socios y los deportes, rellenándola con una x en el deporte que practican. sin embargo tengo que agregar una columna donde me dé un mensaje diciéndome “el socio **** práctica fútbol, básquet y volley” si es que así está señalado en la tabla, y esto tiene que salir literalmente escrito, podrían ayudarme?😭😭😭

    Responder
    • Que tal Daniela,
      Para lograr lo que comentas debes generar una función en una sola celda donde se incluyan todas las condiciones a la vez,
      y para lograrlo debes guiarte en algo como esto:
      ="El socio practica"& SI(B2="x"," futbol","") &SI(C2="x",", basquet","") & SI(D2="x",", volley","")
      Espero que te sirva de ejemplo.
      Saludos y éxito!

      Responder
  14. Buenas, tengo una duda con la que quisiera saber pueden apoyarme. Lo que pasa es que estoy trabajando una base de datos en la que cada entrada incluye una fecha; a su vez, tengo una tabla adicional con 27 fechas en concreto. Lo que necesito es que si alguna de laS fechas de mi base de datos coincide con alguna de las 27 fechas que tengo en mi otra tabla entonces me arroje un mensaje de diga «inhábil». Yo ya pude realizarlo mediante la función SI(IF), solo que para ello agregué manualmente cada una de las 27 fechas de mi tabla de inhábiles con su propia función SI, ejemplo de como lo hice: =SI(C6=$F$1, «inhábil», SI(C6=$F$2, «inhábil», SI(C6=$F$3, «inhábil»… SI(C6=$F$27,»inhábil»))))))))). Esto me funcionó pero no lo siento practico ya que ahorita pude hacerlo así porque son 27 condicionantes, pero si fueran 200? Mi duda es si hay alguna forma de que la función SI le pongas como condicionante un rango de celdas, tipo, SI C6 es igual a un valor cualquiera dentro del rango $F$1:$F$27 entonces mostrar «inhábil». Espero que me puedan ayudar, saludos!

    Responder
    • Buen día Ángel, para lograr lo que comentas es más sencillo hacerlo con la función BUSCARV, que permite realizar una búsqueda dentro de un rango de celdas, en caso de que encuentre el valor, devolvera el valor de la celda tantas veces a la derecha se encuentre. Con este resultado podrás colocar el texto «Inhábil», espero que te ayude, si quieres saber más de está función puedes encontrar más detalles en el siguiente artículo: http://nexel.com.mx/formulas/funcion-buscarv-excel/

      Responder
      • Es que en caso de que no fuera una de esas 27 fechas, en vez de poner «inhábil» se checan otras condiciones, como por ejemplo que si es día domingo entonces solo se ponga «0», o que si no es ninguna de esas 27 fechas y tampoco es domingo, entonces se realiza una operación y si el resultado de esa operación es 0 o menor a 0 entones poner «0» pero si el resultado de esa operación es mayor a 0 en en ese caso se hace otra operación mas. El BuscarV lo he utilizado pero nunca con tantas condicionantes, es eso posible?
        Anexo linea de código real de lo que hice:

        =SI(C6=Catalogo!$H$2,»Día inhábil»,SI(C6=Catalogo!$H$3,»Día inhábil»,SI(C6=Catalogo!$H$4,»Día inhábil»,SI(C6=Catalogo!$H$5,»Día inhábil»,SI(C6=Catalogo!$H$6,»Día inhábil»,SI(C6=Catalogo!$H$7,»Día inhábil»,SI(C6=Catalogo!$H$8,»Día inhábil»,SI(C6=Catalogo!$H$9,»Día inhábil»,SI(C6=Catalogo!$H$10,»Día inhábil»,SI(C6=Catalogo!$H$11,»Día inhábil»,SI(C6=Catalogo!$H$12,»Día inhábil»,SI(C6=Catalogo!$H$13,»Día inhábil»,SI(C6=Catalogo!$H$14,»Día inhábil»,SI(C6=Catalogo!$H$15,»Día inhábil»,SI(C6=Catalogo!$I$2,»Día inhábil»,SI(C6=Catalogo!$I$3,»Día inhábil»,SI(C6=Catalogo!$I$4,»Día inhábil»,SI(C6=Catalogo!$I$5,»Día inhábil»,SI(C6=Catalogo!$I$6,»Día inhábil»,SI(C6=Catalogo!$I$7,»Día inhábil»,SI(C6=Catalogo!$I$8,»Día inhábil»,SI(C6=Catalogo!$I$9,»Día inhábil»,SI(C6=Catalogo!$I$10,»Día inhábil»,SI(C6=Catalogo!$I$11,»Día inhábil»,SI(C6=Catalogo!$I$12,»Día inhábil»,SI(C6=Catalogo!$I$13,»Día inhábil»,SI(C6=Catalogo!$I$14,»Día inhábil»,SI(B6=»domingo»,0,SI(B6″domingo»,SI(((H6-G6)-(Catalogo!$D$2+Catalogo!$E$2))0,((H6-G6)-(Catalogo!$D$2+Catalogo!$E$2)))))))))))))))))))))))))))))))))

      • En la parte final de la formula donde hago la distinción de si es o no es domingo se altero el formato y no se entiende, pero básicamente es que si es domingo entonces ponga 0 y después, que si es diferente a domingo, haga una operación y dependiendo del resultado de esta, se vuelve a poner 0 o se hace una operación mas, gracias por la ayuda

      • Claro Ángel, es posible mezclar BUSCARV con SI para la función sea más corta. En tu función, debes reemplazar la condición de los SI con BUSCARV y luego realizar las operaciones

  15. buenas tarde tengo que comparar dos rangos de celdas en excel

    BH3:BR3 VS $B$T2:$B$R2
    BH4:BR4
    Y NECESITO QUE DONDE EXISTA COINCIDENCIA ME DE COMO RESULTADO 1

    Responder
    • Que tal Fernando,
      Para este caso deberás crear una fórmula en cada celda de la comparación, algo como =SI(BH3=BT2,1,0) posteriormente arrastrar la fórmula por toda la fila hasta la columna BR.
      Espero que esto te ayude, saludos!

      Responder
  16. HOLA, QUISIERA SABER SI SE PUEDE INGRESAR UNA FORMULA DE «SI» CON SIFECHA, OSEA QUE LAS DOS CONDICIONES TRABAJEN JUNTAS.

    EJEM: YO ESTOY CALCULANDO EL TIEMPO EN DOS FECHAS EN LA CUAL ARROJA ERROR POR INCONSISTENCIA Y POR ESO INGRESE EL SI.ERROR, PERO TAMBIEN HAY COINCIDENCIA EN EL CUAL ARROJA CERO, ENTONCES ES ALLI DONDE QUIERO INGRESAR UNA CONDICION PARA QUE JUNTO CON LA QUE ESTA(ABAJO), EN LAS CELDAS QUE ESTE EL CERO, COLOCAR LA PALABRA «PUNTUAL». PERO NO LOGRO ENCOTRAR COMO HACERLO. ME PODRIAN AYUDAR PORFAVOR
    =SI.ERROR(SIFECHA(S2;V2;»M»);»VINO ANTES»)

    Responder
    • Que tal Alberto,

      Si entendí bien, necesitas que cuanto SIFECHA devuelta 0, se escriba la palabra PUNTUAL. si es así, debes una función como la siguiente:
      =SI.ERROR(SI(SIFECHA(A1;B1;»M»)=0;»Puntual»);»VINO ANTES»)

      Espero que esto te ayude, saludos!

      Responder
  17. Hola , estoy en un curso de Informática nivel avanzado y ahora estamos dando el temario de Excel , lo cual yo aún no lo he logrado aprender . Si me vendría saber más sobre Excel .

    Responder

Deja un comentario

Artículo añadido al carrito.
0 artículos - $0.00