Lección 5 de 12 · Nivel 2: Intermedio
Función SI en Excel: SI anidado, SI.CONJUNTO, Y, O y SI.ERROR
En esta lección
- Tomar decisiones en tus hojas con la función SI.
- Combinar condiciones con Y, O y NO.
- Resolver varios casos con SI.CONJUNTO en lugar de SI anidados.
- Controlar errores con SI.ERROR sin ocultar fallos reales.
Calcula el promedio, si aprueba y la calificación de 15 alumnos.
- practica-excel.xlsx · hoja Notas
Hasta ahora tus fórmulas hacían siempre el mismo cálculo. Con la función SI le enseñas a Excel a tomar decisiones: aprobar o reprobar, aplicar o no un descuento, marcar un pedido como atrasado. Es la función lógica más usada del mundo y la puerta de entrada a hojas realmente automáticas.
La estructura de SI
=SI(prueba_lógica; valor_si_verdadero; valor_si_falso)
- Prueba lógica: una comparación que solo puede ser VERDADERO o FALSO, por ejemplo
B2>=60. - Valor si verdadero: lo que devuelve si se cumple.
- Valor si falso: lo que devuelve si no se cumple.
Ejemplo: si la nota de la columna B es 60 o más, el alumno aprueba.
=SI(B2>=60; "Aprobado"; "Reprobado")
Los textos van entre comillas dobles; los números y las referencias, no.
Operadores de comparación
| Operador | Significado | Ejemplo |
|---|---|---|
= | Igual a | C2="Lima" |
<> | Distinto de | C2<>"Lima" |
> / < | Mayor / menor que | D2>1000 |
>= / <= | Mayor o igual / menor o igual | D2<=0 |
Si quieres profundizar en cómo funciona la lógica booleana detrás de esto, tenemos guías sobre operadores lógicos y tablas de verdad.
1. ¿Qué devuelve =SI(B2>=60;"Aprobado";"Reprobado") si B2 vale 60?
El operador >= significa "mayor o igual", así que 60 cumple la condición.
SI con cálculos dentro
Los valores de resultado pueden ser fórmulas. Un comercio da un 10% de descuento en compras de 500 o más:
=SI(D2>=500; D2*0,9; D2)
Mejor aún, con los parámetros en celdas (lección 3): si el mínimo está en H1 y el descuento en H2:
=SI(D2>=$H$1; D2*(1-$H$2); D2)
Para dejar una celda "en blanco" cuando no se cumple, usa dos comillas seguidas: =SI(E2="";"";E2*1,18). Así evitas ver ceros o errores en filas que todavía no tienen datos.
Combinar condiciones con Y, O y NO
Cuando la decisión depende de más de una condición:
Y(cond1; cond2; …)es VERDADERO solo si todas se cumplen.O(cond1; cond2; …)es VERDADERO si al menos una se cumple.NO(cond)invierte el resultado.
Ejemplo: un vendedor recibe bono si vendió más de 10.000 y tiene menos de 3 devoluciones:
=SI(Y(C2>10000; D2<3); "Bono"; "Sin bono")
Envío gratis si el cliente es "Premium" o la compra supera 200:
=SI(O(B2="Premium"; E2>200); 0; 15)
2. Hay bono si las ventas (B2) superan 10.000 y la antigüedad (C2) es de al menos 1 año. ¿Qué fórmula es correcta?
Y exige que se cumplan todas las condiciones; O se conformaría con una sola.
Varias opciones: SI anidado y SI.CONJUNTO
¿Y si hay más de dos resultados posibles? Por ejemplo, clasificar notas: 90 o más "Excelente", 75 o más "Bueno", 60 o más "Suficiente", el resto "Insuficiente".
La forma clásica: SI dentro de SI
=SI(B2>=90;"Excelente";SI(B2>=75;"Bueno";SI(B2>=60;"Suficiente";"Insuficiente")))
Funciona en cualquier versión, pero es difícil de leer y fácil de romper con un paréntesis de más o de menos.
La forma moderna: SI.CONJUNTO
Disponible en Excel 2019, 2021, Microsoft 365 y Google Sheets (como IFS en inglés):
=SI.CONJUNTO(B2>=90;"Excelente"; B2>=75;"Bueno"; B2>=60;"Suficiente"; VERDADERO;"Insuficiente")
Se lee en parejas: condición, resultado; condición, resultado… El último par VERDADERO;"Insuficiente" actúa como "en cualquier otro caso".
Excel devuelve el resultado de la primera condición que se cumple. Si pusieras B2>=60 primero, una nota de 95 entraría ahí y saldría "Suficiente". Ordena siempre de la condición más exigente a la menos exigente.
Si tienes muchos tramos (escalas de comisiones, tablas de impuestos), no anides más: crea una pequeña tabla de tramos y usa BUSCARV o BUSCARX con coincidencia aproximada. Lo verás en la siguiente lección; es más fácil de mantener.
3. Con SI.CONJUNTO calificas notas: 90 o más "Excelente", 70 o más "Bueno", el resto "Regular". ¿En qué orden escribes las condiciones?
SI.CONJUNTO devuelve el resultado de la primera condición verdadera. Si pones ≥70 primero, un 95 saldría "Bueno".
SI.ERROR: ocultar errores con criterio
SI.ERROR(fórmula; valor_si_error) devuelve el resultado de la fórmula o, si da error, lo que tú indiques:
=SI.ERROR(D2/C2; 0)
=SI.ERROR(BUSCARV(A2;Clientes;2;FALSO); "No registrado")
Úsala para errores que esperas (un divisor vacío, un código que aún no existe), no para esconder fórmulas mal hechas: si todo devuelve "0", nunca sabrás que algo falló.
Funciones de apoyo muy útiles
ESBLANCO(A2): VERDADERO si la celda está vacía.ESNUMERO(A2): VERDADERO si es un número (detecta números guardados como texto).HOY(): la fecha actual. Combinada con SI:=SI(D2<HOY();"Vencida";"Al día").
Ejercicio práctico: control de pedidos
Tienes una lista con estas columnas: Pedido (A), Monto (B), Fecha de entrega (C), Entregado (D, con "Sí" o "No"). Crea una columna E Estado que muestre:
- "Entregado" si D es "Sí".
- "Atrasado" si no está entregado y la fecha de entrega ya pasó.
- "En plazo" en cualquier otro caso.
Después, en la columna F, calcula una penalización del 5% del monto solo para los pedidos atrasados de más de 1.000.
Ver solución
E2: =SI.CONJUNTO(D2="Sí";"Entregado"; C2<HOY();"Atrasado"; VERDADERO;"En plazo")
F2: =SI(Y(E2="Atrasado"; B2>1000); B2*5%; 0)
Sin SI.CONJUNTO: =SI(D2="Sí";"Entregado";SI(C2<HOY();"Atrasado";"En plazo"))
Resumen
SIevalúa una condición y devuelve uno de dos valores.Yexige que se cumplan todas las condiciones;O, al menos una.SI.CONJUNTOreemplaza a los SI anidados; ordena de lo más exigente a lo menos.SI.ERRORcontrola errores esperados; no la uses para tapar fórmulas mal hechas.
En la próxima lección: BUSCARV y BUSCARX: cómo buscar datos entre tablas. Verás BUSCARV paso a paso, BUSCARX, INDICE+COINCIDIR, búsqueda por tramos y cómo resolver el error #N/D.
Crea tu cuenta, marca tus avances y descarga el certificado al terminar el curso.