Excel: formato condicional para resaltar fechas de hoy o anteriores ignorando celdas en blanco

¿Quieres que Excel pinte automáticamente todas las fechas vencidas —incluido hoy— pero que ignore por completo las celdas vacías? Esta guía te muestra la fórmula exacta, los pasos y variantes robustas para que funcione en cualquier hoja, tabla y configuración regional.

Índice

Resumen de la pregunta

En la columna J3:J36 se desea resaltar de forma automática cualquier fecha que sea hoy o anterior a hoy, y no aplicar nada si la celda está vacía.

Respuesta y solución

La forma más fiable y flexible es usar una regla de fórmula en Formato condicional con referencia relativa al primer elemento del rango (J3) y aplicarla a todo el tramo J3:J36.

Fórmula (Excel en español):

=Y(J3<=HOY(); J3<>"")

Fórmula equivalente (Excel en inglés):

=AND(J3<=TODAY(), J3<>"")

Pasos

  1. Selecciona J3:J36.
  2. Ve a Inicio → Formato condicional → Nueva regla → Utilice una fórmula para determinar las celdas para aplicar formato.
  3. Escribe la fórmula anterior (con J3, no $J$3) y elige el formato (relleno, color de fuente, borde, etc.).
  4. En Se aplica a, comprueba que figure =$J$3:$J$36 y confirma.

Cómo funciona la fórmula

  • J3<=HOY() comprueba si la fecha de la celda es hoy o anterior a hoy.
  • J3<>"" evita que el formato se aplique cuando la celda está vacía o cuando una fórmula devuelve cadena vacía ("").
  • Al usar J3 como referencia relativa, Excel evaluará J4 para la fila 4, J5 para la fila 5, y así sucesivamente en todo el rango seleccionado.

Tip experto: si en tu hoja algunas celdas tienen fecha con hora (por ejemplo, hoy 10:30), considera la variante de “ignorar hora” que verás más abajo. De lo contrario, una fecha de hoy a las 10:30 es mayor que HOY() (que internamente es hoy a las 00:00) y no se marcaría.

Ejemplo visual

Supón que en J3:J9 tienes:

CeldaValor¿Se resalta?Motivo
J3Hace 3 díasEs anterior a hoy
J4HoyDepende*Si solo fecha: sí; si incluye hora > 00:00, ver variante “ignorar hora”
J5Dentro de 2 díasNoEs posterior a hoy
J6VacíaNoLa condición J3<>"" lo impide
J7Texto “Pendiente”NoNo es una fecha; la comparación falla y la segunda condición no aplica
J8Hoy 18:00Con fórmula básica: no*Incluye hora; solución: ENTERO(J3)<=HOY()
J9“” (cadena vacía devuelta por fórmula)NoSe considera vacía para el formato condicional

Fórmula más robusta

Si en la columna podrían aparecer textos o errores, es prudente evitar comparaciones sobre valores no numéricos. Usa:

En español:

=Y(ESNUMERO(J3); J3&lt;=HOY())

En inglés:

=AND(ISNUMBER(J3), J3&lt;=TODAY())

Esta variante ignora automáticamente todo lo que no sea una fecha válida (en Excel, las fechas reales son números de serie).

Ignorar la hora para “hoy”

Para garantizar que toda fecha con día de “hoy” se resalte aunque tenga hora, conviene truncar la parte horaria:

En español:

=Y(ESNUMERO(J3); ENTERO(J3)&lt;=HOY())

En inglés:

=AND(ISNUMBER(J3), INT(J3)&lt;=TODAY())

Por qué funciona: ENTERO(J3) (o INT(J3)) descarta la fracción de día (la hora), comparando solo la fecha.

Variaciones frecuentes

  • Solo pasado (excluye hoy): =Y(J3<HOY(); J3<>"")
  • Próximos 7 días (incluye hoy): =Y(ESNUMERO(J3); J3>=HOY(); J3<=HOY()+7)
  • Entre dos fechas (rango cerrado): =Y(ESNUMERO(J3); J3>=FECHA(2025;1;1); J3<=FECHA(2025;12;31))
  • Resaltar hoy con un color y el pasado con otro:
    1. Regla 1 (hoy): =Y(ESNUMERO(J3); ENTERO(J3)=HOY()), color A, activar “Detener si es verdadero”.
    2. Regla 2 (pasado): =Y(ESNUMERO(J3); ENTERO(J3)<HOY()), color B.

Uso en Tablas (ListObject)

Si tu columna forma parte de una Tabla y el encabezado es Fecha, algunas versiones de Excel aceptan referencias estructuradas directamente en formato condicional:

En español:

=Y(ESNUMERO([@Fecha]); [@Fecha]&lt;=HOY())

Si tu versión no las interpreta dentro del cuadro de reglas, vuelve a la referencia tradicional con la primera celda de datos: por ejemplo, J3, y aplica la regla a todo el tramo de la columna de la Tabla.

Por qué intentos típicos no funcionan

  • Usar SI con rangos completos: las reglas de formato condicional esperan una expresión booleana evaluada celda a celda. Fórmulas del tipo =SI(J3:J36<=HOY();...) no son válidas.
  • Tratar una condición como texto: algo como "<=TODAY()" es simplemente una cadena, no una comparación; Excel no la evalúa como condición.
  • Referencias absolutas erróneas: si escribes $J$3 en la fórmula, todas las filas se compararán contra esa sola celda, no contra su propia fila.
  • Mala zona “Se aplica a”: si seleccionas A1 o una columna distinta, Excel evaluará desde otra celda superior izquierda, desfasando los resultados.

Comprobaciones rápidas si “no pinta”

  • ¿Son fechas reales? En una celda adyacente escribe =ESNUMERO(J3). Si devuelve FALSO, tus “fechas” son texto. Convierte con Datos → Texto en columnas, o multiplica por 1 en una columna auxiliar.
  • Separador de argumentos: en Excel en español lo habitual es ;, en inglés ,. Usa el que corresponda a tu instalación.
  • ¿Incluyen hora? Si usas la fórmula básica, una fecha de “hoy 18:00” no se resaltará. Emplea la variante con ENTERO().
  • Reglas en conflicto: si hay varias reglas sobre el mismo rango, revisa el orden y marca “Detener si es verdadero” donde convenga.
  • Estilos que no se aprecian: cambia el formato a un color de relleno visible; evita colores muy claros sobre fondo blanco.
  • Primera celda del rango: confirma que la fórmula hace referencia a la primera celda seleccionada (en este caso, J3).
  • Espacios “invisibles”: las celdas con espacios o caracteres no imprimibles no están “vacías”. La variante con ESNUMERO() las ignorará de todas formas.

Guía práctica paso a paso

  1. Selecciona exactamente J3:J36.
  2. Abre Inicio → Formato condicional → Nueva regla.
  3. Elige Utilice una fórmula para determinar las celdas para aplicar formato.
  4. Pega la fórmula: =Y(J3<=HOY(); J3<>"")
  5. Haz clic en Formato… y define un relleno y color de fuente adecuados.
  6. Confirma y verifica que en Se aplica a aparezca =$J$3:$J$36.
  7. Prueba cambiando una fecha a hoy o a días pasados para comprobar el resaltado.

Más allá de lo básico

Aplicar a toda la columna

Si prefieres que la regla actúe sobre toda la columna J (nuevo contenido incluido), cambia Se aplica a por =$J:$J y deja la fórmula anclada a la primera fila de esa columna, por ejemplo:

=Y(J1&lt;=HOY(); J1&lt;&gt;"")

Excel replicará la evaluación para cada fila que uses en el futuro.

Colores según cercanía del vencimiento

  • Rojo para vencidas: =Y(ESNUMERO(J3); ENTERO(J3)<HOY())
  • Ámbar para hoy: =Y(ESNUMERO(J3); ENTERO(J3)=HOY())
  • Verde tenue para próximas 48 horas: =Y(ESNUMERO(J3); ENTERO(J3)>HOY(); ENTERO(J3)<=HOY()+2)

Combinación con otras condiciones

Puedes añadir criterios adicionales, por ejemplo, resaltar solo las fechas anteriores a hoy para las filas cuyo estado sea “Abierto” en la columna K:

=Y(ESNUMERO(J3); ENTERO(J3)&lt;=HOY(); K3="Abierto")

Rendimiento y mantenimiento

  • HOY() es volátil (se recalcula al abrir o recalc). En hojas grandes, concentra tus reglas y evita duplicados para no ralentizar.
  • Usa una sola regla por condición; múltiples reglas solapadas sobre el mismo rango elevan el coste de cálculo y pueden provocar resultados inesperados.
  • Si conviertes el rango en Tabla, tus nuevas filas heredarán automáticamente la regla si “Se aplica a” incluye toda la columna de la Tabla.

Preguntas frecuentes

¿Funcionará si mis fechas se generan con fórmulas? Sí. Si la fórmula devuelve un número de serie de fecha, se evaluará normalmente. Si devuelve "", la condición J3<>"" evita el formato.

¿Y si mis fechas están en texto? Convierte a fecha real. Comprueba con =ESNUMERO(J3). Si devuelve FALSO, usa Texto en columnas o una columna auxiliar que convierta el texto a fecha, y aplica la regla sobre la columna convertida.

¿Qué pasa con zonas horarias? HOY() utiliza la fecha del sistema de tu PC. Si colaboras en libros compartidos en distintas zonas, todos verán el resaltado según su “hoy”.

¿Puedo copiar la regla a otro rango? Sí. Abre el Administrador de reglas, duplica y cambia “Se aplica a”. Asegúrate de ajustar la referencia inicial de la fórmula al primer elemento del nuevo rango.

Tabla de referencia rápida

EscenarioFórmula (ES)Notas
Hoy o anterior, ignorar vacías=Y(J3<=HOY(); J3<>"")Solución principal
Robusta ante textos/errores=Y(ESNUMERO(J3); J3<=HOY())Evita comparar texto con fecha
Ignorar hora=Y(ESNUMERO(J3); ENTERO(J3)<=HOY())Trunca la parte horaria
Solo pasado (excluye hoy)=Y(J3<HOY(); J3<>"")Útil para vencidas
Próximos 7 días=Y(ESNUMERO(J3); J3>=HOY(); J3<=HOY()+7)Agenda/seguimientos

Errores comunes y cómo evitarlos

  • Usar $J$3 en la fórmula: vuelve relativa (J3) para que cada fila se evalúe a sí misma.
  • Seleccionar el rango después de escribir la fórmula: primero selecciona el rango, luego crea la regla.
  • Aplicar formato directo y esperar que sea “condicional”: el formato condicional no sobrescribe el formato manual a menos que la regla lo especifique y prevalezca en el orden.
  • Rango “Se aplica a” incompleto: si nuevas filas no se resaltan, amplía “Se aplica a” a toda la columna o usa una Tabla.

Casos prácticos

Gestión de tareas y vencimientos

Con la solución propuesta, cualquier tarea cuya fecha límite esté hoy o ya haya pasado se resalta de inmediato, lo que ayuda a priorizar. Combine con una segunda regla para “mañana” y “próximos 7 días” y tendrás un tablero visual muy efectivo.

Control de inventarios

Para lotes con fecha de caducidad, marca en rojo las caducadas, en ámbar las que vencen hoy y en verde las que vencen en breve. Las fórmulas de la sección de variaciones se adaptan perfectamente.

Seguimiento académico

En una lista de entregas, resalta todo lo que ya debió entregarse (hoy o anterior) ignorando celdas sin fecha asignada. Evitas “falsos positivos” con campos vacíos.

Notas sobre regionalización

  • Separador de argumentos: ; en español, , en inglés.
  • Formato de fecha de la celda no afecta a la comparación; lo importante es que sea fecha real (número de serie).
  • Si copias fórmulas entre libros con idioma distinto, Excel traducirá nombres de funciones automáticamente, pero el separador puede requerir ajuste manual.

Plantilla de formato recomendada

  • Relleno: color llamativo y consistente con tu marca.
  • Tipografía: negrita para darle prioridad visual.
  • Bordes: finos y discretos; no abuses para no “ensuciar” la hoja.

Resumen

Para resaltar fechas que sean hoy o anteriores y no tocar celdas vacías, la regla óptima en Excel es:

=Y(J3&lt;=HOY(); J3&lt;&gt;"")

Si buscas mayor robustez ante textos y quieres cubrir los casos con hora incluida, usa:

=Y(ESNUMERO(J3); ENTERO(J3)&lt;=HOY())

Con los pasos y matices de esta guía, tendrás una configuración sólida, escalable y fácil de mantener, válida tanto para rangos normales como para Tablas.


Información complementaria útil

Fórmula más robusta (si pudiera haber texto/errores en la columna)

Evita evaluar comparaciones de fechas sobre contenido no numérico.

=Y(ESNUMERO(J3); J3&lt;=HOY())

(En inglés: =AND(ISNUMBER(J3), J3<=TODAY()))

Variaciones frecuentes

  • Solo pasado (excluye hoy): =Y(J3<HOY(); J3<>"")
  • Próximos 7 días (incluye hoy): =Y(ESNUMERO(J3); J3>=HOY(); J3<=HOY()+7)

Tablas (ListObject)

Si tu columna es parte de una Tabla y el encabezado es Fecha, algunas versiones aceptan referencias estructuradas:

=Y(ESNUMERO([@Fecha]); [@Fecha]&lt;=HOY())

Si no funciona, vuelve a la referencia tradicional con J3.

Por qué tu intento original no funcionaba

  • En reglas de formato condicional se debe usar una expresión booleana (que dé VERDADERO/FALSO) evaluada por celda, no un SI con rangos completos.
  • La cadena "<=TODAY()" es texto, no una comparación; por eso Excel no la evalúa como condición.

Comprobaciones rápidas si “no pinta”

  • Asegúrate de que las “fechas” sean fechas reales (números) y no texto. Puedes probar con =ESNUMERO(J3).
  • Revisa el separador de argumentos de tu Excel: en español suele ser ;, en inglés ,.
  • Verifica que la primera celda de la fórmula coincide con la primera del rango seleccionado (J3 en este caso).

Receta completa para copiar y pegar

  1. Selecciona J3:J36.
  2. Inicio → Formato condicional → Nueva regla → “Utilice una fórmula para determinar las celdas para aplicar formato”.
  3. Pega: =Y(J3<=HOY(); J3<>"")
  4. Define el formato visual y confirma que “Se aplica a” sea =$J$3:$J$36.

Con esto, tu hoja quedará lista para resaltar fechas vencidas y de hoy, omitiendo por completo celdas vacías. Si la columna pudiera contener textos, errores o fechas con hora, adopta la variante robusta con ESNUMERO() y, si procede, ENTERO() para ignorar la hora. Tendrás un sistema confiable, claro y fácil de mantener.

Índice