Función SI en Google Sheets

Funciones Condicionales en Google Sheets

Una de los tipos de funciones más útiles que vamos a tener en Google Sheets son las funciones condicionales. Estas nos permiten gran flexibilidad y automatización.

Pero entenderlas y aprender a construirlas no resulta tan fácil

En este artículo hablamos de la función SI en Google Sheets, y otras funciones condicionales, para que sirven y como se construyen.

Condiciones o Condicionales

Antes de entrar de lleno a la función SI, debemos entender que es una condición

Como su nombre lo indica, una condición es una fórmula que evalúa algo, y su resultado siempre tiene solo dos posibilidades: VERDADERO O FALSO.

Aquí algunos ejemplos de condiciones:

  • A1 es mayor que 1
  • A1 es menor o igual que A2
  • A1 es impar
  • A1 es una fórmula
  • 1 es igual a 2 (siempre va a ser falso)
  • 1 es mayor que 0 (siempre va a ser verdadero)
  • A1 es igual a «Colombia»
  • A1 es diferente a «Colombia»

Nosotros podemos «traducir» cada uno de los ejemplos anteriores en una fórmula y escribirlos en Sheets. Siempre el resultado va a ser VERDADERO o FALSO. Quedaría así:

  • =A> 1
  • =A1<=A2
  • =IMPAR(A1)
  • =ISFORMULA(A1)
  • =1=2 (siempre va a ser falso)
  • =1>0 (siempre va a ser verdadero)
  • =A1= «Colombia»
  • =A1<> «Colombia»

Estas fórmulas son muy útiles, porque sabiendo que algo es verdadero o falso, después podemos hacer ciertas cosas si es verdadero, y otras cosas diferentes si es falso.

Ahí radica el poder de las condiciones.

Por ejemplo podría, entre otras:

  • Sumar solo los verdaderos.
  • Contar solo los verdaderos.
  • Formatear de cierta manera solo los verdaderos.
  • Mostrar (con un filtro) solo los verdaderos.
  • «Clasificar» en ciertas categorías los verdaderos, y en otras los falsos.

Una sola condición

Función SI en Google Sheets

La función que me permite «hacer algo» con los resultados VERDADEROS y otra cosa (o nada) con los FALSOS, es la función SI, y es una de las funciones más poderosas, no solo de Google Sheets, sino de todos los lenguajes lógicos y de programación.

La función SI tiene 3 argumentos:

  • La condición
  • La acción si la condición es Verdadera
  • La acción si la condición es Falsa

Esta acción puede ser un texto, un número, u otra fórmula

Entonces volviendo a nuestros ejemplos, podemos armar las siguientes funciones SI:

  • Condición A1>0
    • =SI(A1>0;»POSITIVO»;»NEGATIVO»)
    • =SI(A1>0;1;0)
    • =SI(A1>0;A1*5;0)
  • A1<=A2
    • =SI(A1<=A2;A1*5;A2*5)
    • =SI(A1<=A2;»GANADOR»;»PERDEDOR»)
  • =IMPAR(A1)
    • SI(IMPAR(A1);»El número es impar»;»El número es par»)

Varias condiciones

La función SI funciona muy bien para una sola condición, pero nos vamos a enfrentar a muchas situaciones donde debemos evaluar más de una condición. Para estos casos debemos extender la función SI, bien sea con varias funciones SI, o ayudándonos de funciones auxiliares o complementarias. A continuación algunas de ellas:

Función Y

En el caso en que deba cumplir dos condiciones al tiempo dentro del primer argumento de la función SI (Por ejemplo que sea mayor a 0 y menor a 100), nos podemos apoyar en la función Y.

La función Y es una función lógica que evalúa varias condiciones, y solo devuelve VERDADERO si todas las condiciones son VERDADERAS

En nuestro ejemplo para que el Y sea verdadero, el número debe cumplir tanto que sea mayor a 0, como que sea menor a 100. Nuestro SI quedaría así:

=SI(Y(A1>0;A1<100);»Válido»;»Inválido»)

Función O

Esta función es parecida a Y, con la diferencia que devuelve VERDADERO si CUALQUIERA de las condiciones es verdadera.

Por ejemplo, quiero evaluar si un número entre 1 y 10 es número primo y escribir «Primo» si lo es. Una manera de hacerlo sería con la función O, así:

=SI(O(A1=1;A1=2;A1=3;A1=5;A1=7);»Primo»;»No primo»)

Función SI anidada

Hasta ahora hemos cumplido el primer nivel: Hacer algo si se cumple una condición, y otra cosa si NO se cumple

Pero que pasa si hay dos condiciones diferentes que no podemos evaluar con Y o con O.

En otras palabras, por ejemplo quiero escribir en mi celda «Muy grande» si es un número mayor a 1000, «Grande» si es mayor a 500, y normal para los demás números.

Aquí usamos lo que se llama una función SI anidada. Es decir, un SI dentro de otro SI

Entonces mi primer SI seria:

=SI(A1>1000;»Muy grande»;»Normal»)

Y mi segundo SI seria

=SI(A1>500;»Grande»;»Normal»)

Ahora entonces vamos a mezclar los dos SI, insertando el segundo dentro de la condición FALSA del primero.

En términos lógicos sería: Si es mayor a 1000, escriba «Muy grande». Si no es mayor a 1000, ahora miremos si es mayor a 500. Si es mayor a 500, escriba «Grande». Si no, entonces escriba «Normal».

Y en Sheets quedaría así:

=SI(A1>1000;»Muy grande»;SI(A1>500;»Grande»;»Normal»))

Y así, podríamos seguir anidando, SI dentro de SI dentro de SI.

Función IFS

El problema de anidar tantos SI, es que se nos vuelven unas funciones muy complejas, difíciles de modificar y de escalar.

En los casos de muchas condiciones hay un par de funciones más avanzadas y poderosas que nos pueden ayudar.

La primera es la función IFS, que, como su nombre lo indica (IF es SI en inglés), es un SI para muchas condiciones.

Lo que hacemos es ir poniendo en pares la condición y que «poner», si el valor es positivo; y podemos poner las condiciones que queramos. Iria así:

Condición 1, Valor si 1 es verdadero, Condición 2, Valor si 2 es Verdadero, Condición n, Valor si n es verdadero. Desafortunadamente no hay un valor «else», si ninguna se cumple, entonces tenemos que al final poner una condición que siempre se va a cumplir como 1=1 o VERDADERO.

Aquí es muy importante el orden. Es como si estuviéramos anidando SIs. La jerarquía importa.

Entonces el mismo caso del ejemplo, en IFS quedaría así:

=IFS(A1>1000;»Muy grande»;A1>500;»Grande»;VERDADERO;»Normal»)

Función SWITCH

Esta función es similar a la anterior, pero funciona mejor en casos en que las condiciones no son excluyentes, y no hay «niveles» como en las condiciones numéricas.

Funciona muy bien cuando evalúa si la celda es igual a un valor.

A diferencia de la anterior, esta si tiene un valor «por defecto», si ninguna de las condiciones se cumple.

Miremos el siguiente ejemplo:

Quiero una función que dependiendo de la moneda que encuentre, me dé un valor distinto de tasa de cambio. 3.900 si es USD, 4300 si es EUR, 4900 si es LIB.

Fácilmente lo podríamos hacer con un SI anidado

=SI(A2=»USD»;3900;SI(A2=»EUR»;4300;SI(A2=»LIB»;4900;»Moneda no identificada»)))

O con IFS

=IFS(A2=»USD»;3900;A2=»EUR»;4300;A2=»LIB»;4900;VERDADERO;»Moneda no identificada»)

Pero con SWITCH es más fácil

A SWITCH le damos la celda que queremos evaluar, y una serie de casos, también emparejados de la siguiente manera:

celda;caso 1; valor 1; caso 2; valor 2;…; caso n; valor n; valor para los demás casos.

Nuestro ejemplo quedaría así:

=SWITCH(A2;»USD»;3900;»EUR»;4300;»LIB»;4900;»Moneda no identificada»)

Fijense que es exactamente lo mismo pero escrito de manera diferente.

Me parece a mí que es más fácil de entender con SWITCH, sobre todo cuando tengan muchos casos. (Aunque también podríamos usar BUSCARV)

Funciones SI específicas

Hay muchas más funciones relacionadas con condiciones, cada una da para un artículo entero. Solo las vamos a mencionar y a describir:

SUMAR.SI

Suma una serie de valores, solo si cumplen una condición.

SUMAR.SI.CONJUNTO

Suma una serie de valores, solo si cumplen una serie de condiciones.

PROMEDIO.SI

Promedia una serie de valores, solo si cumplen una condición.

PROMEDIO.SI.CONJUNTO

Promedia una serie de valores, solo si cumplen una serie de condiciones.

CONTAR.SI

Cuenta una serie de valores, solo si cumplen una condición.

COUNTIFS

Cuenta una serie de valores, solo si cumplen una serie de condiciones.

COUNTUNIQUEIFS

Cuenta una serie de valores si cumplen ciertas condiciones, pero solo cuenta uno de cada uno, no cuenta repetidos.

SI.ERROR

Le damos un valor alternativo a escribir, si una fórmula o función devuelve error. Si no hay error, simplemente devuelve el resultado de la fórmula.

Conclusión

Entender las funciones condicionales no es fácil la primera vez que nos enfrentamos a ellas, pero es un paso fundamental dentro de nuestro camino por Google Sheets.

Como todo, la única manera de entenderlo mejor es practicando y tratando de usar todas las funciones que hemos discutido.

49 comentarios en “Función SI en Google Sheets”

  1. Hola Juan, cómo hago si quiero copiar datos alfabéticos de otra hoja dentro del mismo archivo con una condición entre 2 columnas?? Tengo una columna «A» con una clasificación («CRITICO», «NO CRITICO») y otra columna «B» con una razón social («ALALE» etc etc). Lo que quiero realizr es que si A es igual a CRITICO, la razon social que le corresponde en B se transfiera a la nueva hoja.

  2. Hola Juan, si lo que deseo es que la tasa de cambio me la calcuale de acuerdo a una fecha especifica que se encuentre en la columna de fecha de ventas (A2). Es posible hacerlo. ?

    Espero puedas ver este comentario.

  3. Juan Buen dia..le comento que tengo un libro con hojas para cada mes, pongo una lista desplegable y elijo mes, con la funcion si, encuentra el mes y trae el valor de la celda sin problemas, pero pierdo el formato lo que no me permite realizar funciones ,matematicas con el dato…seria tan amable de orientarme como traer el valor con formato (ya que la celda no me peermite cambiar el formato via formato de celdas)

  4. Un saludo Juan.
    Me ha estado dando vueltas en la cabeza un tema que no logro solucionar.

    Resulta que tengo una celda desplegable con múltiples elecciones a elegir (a1), y cuando se toma una elección, la celda (a1) se rellena de dicha elección.

    A continuación, la celda (a1) se compara con la celda (b2) de una segunda pestaña.
    A continuación, si el contenido de la celda es igual (a1 == b2 de la segunda pestaña) Entonces , el contenido de una tercera celda (f,3) de la segunda pestaña, se copia en una cuarta celda (a2) de la primera pestaña.

    Espero poder hallar una respuesta, a lo mejor no he visto con claridad como solucionarlo, pero si es posible hallar una respuesta, de verdad estaría muy agradecido.

  5. en la celda A tengo una lista deplegable con opciones 1,2,3, como puedo hacer que cuando elijó el 3 en una celda B aparesac la fecha y hora en que se puso el 3 en la celda A??

  6. Emmanuel Vazquez

    Buen día Juan

    Cúal sería la formula correcta para detener el conteo de dias en una celda?

    en una celda1 tengo fecha inicial
    en otra celda2 quiero que me de el tiempo transcurrido hasta hoy con la fecha inicial
    =Hoy() A1
    y tengo otra celda3 con la fecha final

    y quiero que cuando yo ponga una fecha final en la celda3, la celda2 se tenga el conteo…

    Cúal sería la mejore formula para eso?
    Requiero esto porque la celda3 se van a ir llenando hasta que tenga la fecha de salida

  7. Buenos dias, soy novato en esto y necesito que me eches una mano.
    Tengo una tabla donde tengo varios valores economicos por semana y al final una suma de estos.
    Tengo formatos condicionales de color. Igual a 0 € un color, entre tal y cual, otro color, etc.
    Lo que necesito es si el valor de una celda es igual o menos que 0, que la celda donde aparece el nombre cambie de color.
    La columna donde tengo los nombres es F3:F37 y donde tengo la suma de los resultados es la N3:N37.
    Me puedes ayudar

    1. Hola!

      Escoges la columna F3:F37

      Te vas a Formato Condicional

      Vas a Formula Personalizada

      Escribes lo siguiente

      =$N3<=0 Escoge tu formato Listo! Me cuentas

  8. Hola!

    necesito una función para hacer lo siguiente:

    tengo:
    valor A, valor B, valor C
    necesito que D sea un % fijado por mi dependiendo de A<C<B

    gracias!

  9. Hola Juan,

    Te confieso que por tu excelente contenido estoy muy entusiasmado con desarrollar mis labores académicas en la soluciones de Google, en especial con Sheets.

    Al respecto se me presenta un problema, tengo que hacer un conteo de una tabla que tiene un rango de edad y que cumpla la condición de otra columna.

    Traté con CONTAR.SI.CONJUNTO y siempre me devuelve como resultado 0. Me explico mejor
    Edad =18 y =18″,»<23"),u2:u,"xxx")

  10. Saludos, Juan. Espero te encuentres excelente.

    Quiero obtener un total de puntos a partir de la escala de likert. Es decir, en varias columnas tengo listas desplegables con los criterios en texto de la escala de likert (excelente, muy bueno, etc.), donde los valores van de 1 a 5 según el criterio de la escala (Excelente=5, Muy bueno=4 y así hasta Deficiente=1). Ahora, quiero mantener el texto de las listas desplegables para que el usuario selecciones el texto, pero que en la columna que asigne para totalizar del puntaje (a partir de estos textos) aparezca la suma de los valores asignados a cada ítem de la escala en números (por ejemplo, 5+4+2+3+1+1+5=21). ¿Esto es posible con la función Suma.si.conjunto o debo usar otra función? Espero puedas ayudarme. Mil gracias de antemano.

    1. Hola!

      Aquí te dejo una fórmula que hice hace poco en excel para algo similar

      Ojalá te sirva

      =CONTAR.SI(D42:D113;»*5*»)*5+CONTAR.SI(D42:D113;»*4*»)*4+CONTAR.SI(D42:D113;»*3*»)*3+CONTAR.SI(D42:D113;»*2*»)*2+CONTAR.SI(D42:D113;»*1*»)*1

      Saludos!

  11. Buenos días Juan, quiero contar celdas que cumplan con dos criterios

    1. Que en el rango C22:C355 tengan el valor »SIN ENVIAR»
    2. Que en el rango A22:A335 la fecha sea igual o menor a la de =HOY()

    Intenté ésta fórmula y algunas variantes pero han funcionado
    =COUNTIFS(C22:C355,»SIN ENVIAR»,A22:A335,»<=HOY()»)

    ¿Cúal es la formula correcta para que cuente sólo las fechas con un valor igual o menor a =HOY()?

    Saludos.

  12. Samuel Calderón

    Hola Juan, tengo dos dudas, que pena la molestia.
    La primera es que quiero que una casilla pueda tomar valor 0, 1 o 2 dependiendo si la resta de dos números da 0, mayor a 0 o menor a 0 respectivamente. Lo estoy intentando así, pero no me funciona: SI((B6-C6)>0;»1″;SI((B6-C6)<0;"2";"E";))

    La segunda duda es que quiero que la fórmula se replique no solo en B6 y C6, sino en las filas 7 hasta la 100 o la que se requiera. ¿Hay alguna forma de hacerlo? Mil gracias

      1. Hola Juan Guzman: primeramente, quiero agradecerte mucho el tiempo para explicar con todo detalle las distintas formulas.
        estoy tratando de realizar una formula parecida a la que pones

        =SWITCH(A2;»USD»;3900;»EUR»;4300;»LIB»;4900;»Moneda no identificada»)
        pero la diferencia es que por ejemplo en la celda A2 digamos que no existe la palabra USD solamente sino que la palabra USD se encuentra dentro de una oracion o texto por ejemplo «la moneda es USD»

        Espero haberme explicado

        la verdad que la formula es mas compleja pero si me dieras esa idea podria probar si puedo hacerla

        mas o menos la formula tendria que dar el siguiente resultado:

        Si en B2 contiene la palabra «Base» o «Unit» o «Addition» entonces sume las celdas R2 y T2 y eso me lo divida /2.5+10 y si no cumple esa condiciones entonces sume las celdas R2 y T2 y eso me lo divida /2.5

        la verdad considero bien complejo lo que quiero hacer y cualquier ayuda la agradecere mucho

        Saludos
        Oscar

        1. Hola!

          La verdad no es tan complejo, pero hay que usar una función poco usada

          Algo así:

          =switch(REGEXMATCH(K6;»Base|Unit|Addition»);VERDADERO;J1*1;FALSO;J1*2)

          Saludos!

  13. Hola Juan, mucho gusto, muy bueno el blog. Tengo una consulta, qué formula debería utilizar si necesito hacer una multiplicación automatica si una celda contiene cierto texto. Es decir, si la celda dice Caja de manzana de 10 unidades, yo quiero multiplicar esas 10 por la cantidad de cajas para obtener el valor total de manzanas.

    Espero me puedas ayudar

    Saludos

    1. Hola Nicolas

      Desafortunadamente no existe «PRODUCTO.SI» Pero lo puedes hacer manualmente con SI

      Algo asi como

      SI(A1=»Caja»; B1*C1;C1)

      Saludos!

  14. Hola espero aun este activa este post.

    estoy haciendo una tabla de control de peso, pero quiero que si el nuevo valor es menor al peso anterior lo marque de color verde y rojo si es lo contrario, pero en esta hoja tambien los que no bajan estan pagando una cuota como sansion, quiero otra formula tambien para poder saber quien pago, quien falta por pagar asi yo sabre quien ya pago. pero no he podido lograrlo hasta ahorita.

    1. Hola

      Habria que mirar bien el archivo, pero basicamente yo lo haria asi

      Col A: Peso Anterior
      Col B: Peso Nuevo
      Col C: Resultado (=SI(B2>=A2;»Debe»;»No debe»)
      Col D: Una casilla de verificación («Pagado»,»Debe»)

      Ya con eso te queda fácil hacer formatos condicionales para los que deben

      Saludos!

  15. Cataldo Luis Baglio Juan

    Hola buen día, quisiera saber cmo hago par colocar un condicionante en una celda para que el usuario solo responda si o no

    De antemano gracias

  16. Es posible usar la función SI para discriminar entre celdas con un formato de color distinto es decir colocar un 1 por cada celda en color ver y un 0 para cada celda en color rojo?

  17. Hola Juan, cómo estás?
    Espero hayas comenzado bien el año.

    Te escribo porque estoy intentando vincular dos celdas con la fórmula «si» en el google sheets pero no lo logro 🙁

    Lo que puntualmente necesito hacer es lo siguiente:

    En las columnas A y D: tengo una lista de status creados a partir de la «validación de datos».

    Necesito que cuando en la columna A se ponga (manualmente) el status «DONE», en la columna «D» (automáticamente) el status cambie a «TO DO», mediante una fórmula.

    Lo intenté con la fórmula «=SI(A4=»DONE»,»TO DO»)» pero no tengo claro si lo estoy haciendo mal o si no es posible utilizar esta fórmula cuando se usa la «validación de datos».

    Desde ya, muchas gracias por la ayuda que puedas brindarme.

  18. Hola Juan Sebastián,

    Muchas gracias por tus post 🙂

    A ver si me puedes ayudar con esto. Yo quiero que (vamos a poner un ejemplo):

    – Si en la columna H el valor es «mayor o igual que 30», quiero que en la columna J aparezca el valor 2

    – Si en la columan H el valor es «menor que 30», quiero que en la columna J aparezca el valor 1

    ¿Esto es posible? ¿Qué fórmula debería de usar?

    Gracias,
    Cler.

  19. Hola, quiero que google sheet me devuelta semana del año (weeknum) si en determinada columna hay marca temporal, pero que quede en blanco si no hay marca temporal. Tipo esto =IF(ISTEXT(B2);»ASIA»;» «) pero que devuelva fórmula en lugar de texto. Es posible?

    Gracias!

  20. Hola, exite una manera en la cual me pueda modificar o agregar un valor dependiendo de una condicionante, por ejemplo si es juan considerar 23, si es Luis 21, si es Maria 30, etc? al final lo que quiero es que en una sola hoja nos pueda dar el nombre de un trabajador y su respectivo sueldo por hora con solo seleccionar su nombre. Muchas gracias.

  21. AL USAR LA FUNCIÓN «SI» Y OBTENER LA RESPUESTA, YA SEA POSITIVA O NEGATIVA, POR EJEMPLO «APROBADO» o «REPROBADO»..EXISTE LA POSIBILIDAD QUE AL DAR LA RESPUESTA «REPROBADO» LO ESCRIBA EN COLOR ROJO ???

  22. Buenas tardes Juan, quise realizar el ejemplo con la función IFS pero no me funcionó. ¿Alguna idea de lo que pueda estar ocurriendo?

    =IFS(A1>1000;»Muy grande»;A1>500;»Grande»;»Normal»)

    Presentándome el siguiente mensaje:
    Error
    «IFS espera que todos los argumentos después de la posición 0 estén en parejas»

    Saludos.

    1. Hola Baxter

      Muchas gracias por escribir

      Si, esto no se si lo llamaría error de Sheets, pero el caso es que IFS no funciona como un SWITCH donde al final tu le pones lo que debe devolver en cualquier otro caso.

      En el caso de IFS tendrías que especificar el caso final, así sea con una especie de truco.

      En este caso, le vamos a poner una última condición cualquiera que siempre se cumpla, como VERDADERO, O 1=1.

      La formula quedaría así entonces:

      =IFS(A98>1000;»Muy grande»;A98>500;»Grande»;VERDADERO;»Normal»)

      Espero te sirva.

      Un gran saludo!

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Share This