Lógica y control de errores

Función SI en Excel: sintaxis, anidamiento y ejemplos

Devuelve un valor cuando una condición es verdadera y otro cuando es falsa.

SI es la función que hace que una hoja de cálculo decida algo. Le das una pregunta de respuesta sí o no, un resultado para cuando la respuesta es sí y otro para cuando es no. ¿Este comercial ha llegado a su objetivo? ¿Esta factura está vencida? ¿Este pedido es lo bastante grande para llevar envío gratuito?

La condición es cualquier expresión que se evalúe como VERDADERO o FALSO, lo que en la práctica significa una comparación: B2>C2, A2="Norte", D2>=1000. Los dos resultados pueden ser cualquier cosa: texto, un número, una referencia de celda o incluso otra fórmula.

En ese último punto está su potencia y también su fealdad. Como un resultado puede ser otro SI, se pueden encadenar decisiones. Con tres o cuatro niveles, sin embargo, la fórmula se vuelve ilegible; ese es el momento de pasar a SI.CONJUNTO, CAMBIAR o una pequeña tabla de búsqueda.

Sintaxis

=SI(prueba_lógica; valor_si_verdadero; valor_si_falso)

Argumentos

prueba_lógica
Obligatorio
Cualquier cosa que se evalúe como VERDADERO o FALSO, normalmente una comparación con =, <>, >, <, >= o <=.
valor_si_verdadero
Obligatorio
Qué devolver cuando la prueba se cumple. El texto va entre comillas.
valor_si_falso
Opcional
Qué devolver cuando no se cumple. Omitirlo devuelve el literal FALSO, que casi nunca es lo que quieres: usa "" para dejarlo en blanco.

Los datos de ejemplo

Encabezados en la fila 1, datos en A2:C5.

ABC
1ComercialVentasObjetivo
2Alicia12401000
3Bruno3851000
4Chen21001500
5Dana9400

Ejemplos resueltos

=SI(B2>C2; "Cumplido"; "No cumplido")

Resultado: Cumplido

Alicia vendió 1240 frente a un objetivo de 1000, así que la prueba se cumple.

=SI(B3>=C3; "Cumplido"; "No cumplido")

Resultado: No cumplido

Los 385 de Bruno están por debajo de 1000, así que se ejecuta la rama falsa.

=SI(B2>C2; B2-C2; 0)

Resultado: 240

Los resultados no tienen por qué ser texto. Este devuelve cuánto se ha superado el objetivo, o cero.

=SI(B2>=2000; "Oro"; SI(B2>=1000; "Plata"; "Bronce"))

Resultado: Plata

Un SI anidado. El segundo SI es la rama falsa del primero, así que solo se ejecuta cuando las ventas están por debajo de 2000.

Ahora practícala

Leer sobre una fórmula no es lo mismo que escribirla. Abre el ejercicio de esta función y escríbela en una hoja real: recibirás comentarios inmediatos sobre qué celda está mal y por qué.

Abrir el ejercicio: Función SI Básica

Errores habituales y cómo resolverlos

La celda muestra FALSO

Por qué ocurre: Se omitió el tercer argumento y la prueba no se cumplió.

Cómo resolverlo: Añade un tercer argumento. Usa "" si quieres que la celda parezca vacía.

#¡VALOR!

Por qué ocurre: La prueba compara tipos incompatibles, o una de las ramas hace aritmética sobre texto.

Cómo resolverlo: Comprueba que las celdas comparadas contienen el tipo de dato que esperas. Un número guardado como texto no se compara numéricamente.

Siempre devuelve la rama verdadera

Por qué ocurre: La prueba no es una comparación explícita, como =SI(A2; ...) donde A2 contiene cualquier valor distinto de cero.

Cómo resolverlo: Haz que la prueba sea una comparación explícita: =SI(A2="Norte"; ...) en lugar de =SI(A2; ...).

El SI anidado devuelve el tramo equivocado

Por qué ocurre: Las condiciones están en el orden incorrecto, así que una más amplia captura los valores antes de llegar a la más estrecha.

Cómo resolverlo: Ordena las condiciones anidadas de la más restrictiva a la menos: comprueba >=2000 antes que >=1000, nunca al revés.

Consejos que conviene saber

  • Los resultados de texto necesitan comillas; los números y las referencias de celda no.
  • Usa "" para un resultado que parezca vacío: =SI(B2>C2; B2-C2; "").
  • Combina condiciones con Y y O en lugar de anidar: =SI(Y(B2>C2; A2="Norte"); ...).
  • En cuanto llegues a tres SI anidados, pasa a SI.CONJUNTO o a una tabla de búsqueda. Los SI anidados son correctos, pero nadie, tú incluido dentro de un mes, puede leerlos.

Preguntas frecuentes

¿Cuántos SI puedo anidar?

Excel permite 64 niveles, pero la legibilidad se hunde mucho antes. A partir de tres, usa SI.CONJUNTO para una lista plana de condiciones, CAMBIAR cuando compares un valor contra varias opciones, o BUSCARV sobre una pequeña tabla de tramos.

¿Cómo compruebo dos condiciones a la vez?

Envuélvelas en Y para «ambas deben cumplirse» o en O para «basta con una»: =SI(Y(B2>C2; A2="Norte"); "Sí"; "No"). Se lee mucho mejor que un SI dentro de otro SI.

¿Cómo hago que SI devuelva una celda vacía?

Devuelve una cadena vacía con "". La celda parecerá vacía, aunque técnicamente contiene el resultado de una fórmula, así que ESBLANCO seguirá diciendo FALSO y CONTARA seguirá contándola.

Funciones relacionadas

Guías que la usan

Lecturas más largas donde esta función hace trabajo real en una hoja real.