Dar formato a la última fila de una tabla que crece (y el techo del formato condicional)
Un miembro de la comunidad llega con una tabla cuyo rango real va de la columna embalaje a la columna total, y cuya columna de numeración construye con SECUENCIA sobre FILAS. Quiere un borde grueso que cierre la última fila, pero la tabla crece cada vez que se añaden registros, así que la regla no puede apuntar a una fila fija.
La primera vía que le proponen es rodear el problema en vez de atacarlo: añadir una fila de Total al final y dar el formato a la fila cuyo valor sea "Total". Deja de importar dónde acaba la tabla, porque el marcador viaja con ella.
Si la columna sí es una secuencia numérica, hay un atajo más directo. La última fila es, por definición, la del valor más alto, así que basta comparar cada celda contra el máximo del rango:
``
=$H3=MAX($H$3:$H$12)
`
El caso general es más interesante, porque la columna final no siempre es numérica y entonces no hay ningún máximo que comparar. El truco está en mirar a los vecinos: una celda vacía, con la de abajo también vacía y la de arriba con contenido, solo puede estar en el borde inferior de los datos. Las tres condiciones se multiplican, que es la forma compacta de encadenar un Y lógico:
`
=(ESBLANCO($Q3))(ESBLANCO(DESREF($Q3;1;0)))(NO(ESBLANCO(DESREF($Q3;-1;0))))
`
Aviso del propio autor de esa fórmula, y conviene no pasarlo por alto: al pegarla en el chat, WhatsApp se comió los asteriscos de multiplicación y dejó el texto de en medio en negrita. Al llevarla a Excel hay que reponer los * entre los paréntesis.
Aparece además un enfoque distinto que no persigue la última fila en absoluto. En lugar de eso, aplica el formato a un rango con filas de sobra y sombrea alternando pares e impares, de modo que el aspecto aguanta el crecimiento sin tocar nada. Y para la numeración, dentro de una tabla no hace falta SECUENCIA: una columna calculada la resuelve y se ajusta sola si después se mueve la columna al principio.
`
=FILA([@Item])-(FILA($N$6)-1)
`
Lo más útil del hilo, sin embargo, no es ninguna de las fórmulas: es dónde acaba topando. El diálogo de Formato Condicional no ofrece borde grueso, así que ninguna regla, por bien construida que esté, podía dar el resultado que se buscaba. El autor terminó quitando ese borde del estilo de la tabla, y con la numeración por columna calculada cerró el hilo con un "problema resuelto de verdad".
Queda una petición flotando en el aire, dirigida a quien pueda trasladarla: que el formato condicional permita más opciones de las que hoy tiene, como el grosor del borde o el tipo de letra.
---
Ampliación (29 de agosto de 2026): cuando lo que crece son las columnas
Tres días después, el mismo autor vuelve con la variante en el otro eje. Ahora la tabla la genera PIVOTARPOR, y el problema es que pueden aparecer categorías nuevas, así que el rango del formato condicional tiene que reservar columnas de sobra. Las filas no le preocupan, porque el máximo está acotado (una de encabezado, treinta y un días y una de totales), pero con las columnas no hay tope conocido. El efecto es el previsible: la fila de totales se pinta hasta el final del rango reservado, incluidas las columnas que todavía están vacías.
La solución es la misma idea del hilo original (reservar rango de sobra) más una guarda que desactive el formato donde no hay datos. Se multiplica la condición real por una comprobación de celda no vacía:
`
=SI($F2=[x]; NO(ESBLANCO(F2)))
`
donde [x] es la condición que ya se estuviera usando en cada regla. Si la celda está en blanco, el formato no se aplica, y el sobrante reservado deja de mancharse.
De propina, y ya fuera del formato condicional, sale un apaño para el propio PIVOTARPOR: darle una cabecera de fecha apilando una etiqueta encima del resultado.
`
SI.ND(EXPANDIR("Fecha";2;2); PIVOTARPOR(...))
``
Lo que este añadido aporta sobre el caso original es la asimetría entre los dos ejes. Reservar filas de sobra funciona porque casi siempre se sabe cuántas puede haber como mucho; reservar columnas obliga además a neutralizar lo reservado, porque ahí no hay tope que valga.
El problema de marcar el final de algo que se mueve
Poner un borde a la última fila de una tabla suena a tarea de dos clics, y lo es mientras la tabla no cambie. En cuanto empiezan a entrar registros, ese borde se queda donde estaba: marcando una fila que ya no es la última. Es exactamente lo que le pasó a un miembro de la comunidad con una tabla de embalajes cuyo rango va de la columna embalaje a la columna total, con la numeración construida mediante SECUENCIA sobre FILAS.
La pregunta de fondo no es de formato, es de referencia: cómo se le explica a Excel dónde acaban los datos sin decírselo con una fila concreta. El hilo dio cuatro respuestas distintas, y ninguna de ellas es la que acabó resolviendo el caso.
Rodear el problema: una fila de Total
La primera idea es la menos técnica y a menudo la más práctica. Si añades una fila de Total al final de la tabla, ya no necesitas detectar nada: la regla se aplica a la fila cuyo valor sea "Total", y ese marcador viaja con la tabla al crecer.
Funciona porque cambias un problema dinámico (¿dónde acaba?) por uno estático (¿dónde pone Total?). Cuando el diseño de la tabla lo permite, suele ser la opción más robusta y la que menos mantenimiento pide.
Comparar contra el máximo
Si la columna que cierra la tabla es una secuencia numérica, hay un atajo directo. La última fila es la del número más alto, así que basta comparar cada celda con el máximo del rango:
=$H3=MAX($H$3:$H$12)La referencia mixta $H3 es la clave: la columna queda fijada y la fila se mueve, que es como el formato condicional recorre el rango de aplicación. Solo devolverá VERDADERO en la fila del máximo.
La limitación es evidente en cuanto la columna deja de ser numérica, o cuando los números no están ordenados. Ahí no hay máximo que sirva de pista.
El caso general: preguntar a los vecinos
La solución más transportable no mira el contenido, mira la forma de los datos. Una celda vacía, cuya celda de abajo también está vacía y cuya celda de arriba tiene contenido, solo puede estar justo debajo del último registro. Esa descripción se traduce casi palabra por palabra:
=(ESBLANCO($Q3))*(ESBLANCO(DESREF($Q3;1;0)))*(NO(ESBLANCO(DESREF($Q3;-1;0))))DESREF se usa aquí como un desplazamiento relativo: 1;0 es la celda de abajo y -1;0 la de arriba. Y la multiplicación de las tres condiciones es la forma compacta de encadenar un Y lógico, porque VERDADERO vale 1 y FALSO vale 0: el producto solo es 1 cuando se cumplen las tres.
Un detalle práctico que avisó el propio autor de la fórmula: al pegarla en WhatsApp, los asteriscos de multiplicación desaparecieron y dejaron el texto de en medio en negrita. Si copias fórmulas desde un chat, revisa siempre que no se hayan perdido por el camino.
Cambiar de estrategia: no perseguir la última fila
El cuarto enfoque renuncia al objetivo original, y por eso mismo es interesante. En lugar de localizar la última fila, aplica el formato a un rango con filas de sobra y sombrea alternando pares e impares. El resultado aguanta el crecimiento sin que nadie tenga que tocar la regla, porque el rango ya contempla las filas que aún no existen.
Y para la numeración dentro de una tabla, no hace falta SECUENCIA. Una columna calculada da el mismo resultado y se ajusta sola incluso si después mueves la columna al principio:
=FILA([@Item])-(FILA($N$6)-1)El techo que ninguna fórmula salva
Aquí llega la parte que hace que este caso merezca contarse entero. Después de cuatro enfoques válidos, el problema seguía sin resolverse, y no por culpa de las fórmulas: el diálogo de Formato Condicional no ofrece la opción de borde grueso. No existe regla que pueda dar un formato que el cuadro de diálogo no permite elegir.
La salida fue por otro lado: quitar ese borde grueso del propio estilo de la tabla, de modo que dejara de haber conflicto. Con eso, y con la numeración por columna calculada, el autor cerró el hilo con un "problema resuelto de verdad".
Es un recordatorio útil cuando algo se resiste más de la cuenta. A veces no estás construyendo mal la fórmula: estás pidiéndole que haga algo que la herramienta no expone. Conviene comprobar pronto qué opciones ofrece realmente el cuadro de diálogo antes de invertir media tarde en la lógica.
Funciones clave
ESBLANCO: devuelveVERDADEROsi una celda está vacía. Es la base de la detección por vecinos.DESREF: devuelve una referencia desplazada un número de filas y columnas desde un punto de partida. Permite preguntar por la celda de arriba o la de abajo sin escribirlas a mano.MAX: el máximo del rango, que en una secuencia numérica marca la última fila.FILA: el número de fila de una referencia. Restando la fila de la cabecera se obtiene una numeración que empieza en 1.SECUENCIAyFILAS: la combinación de partida del autor para numerar, que acabó sustituida por la columna calculada.
Conclusión
El hilo deja dos cosas. Una técnica: hay al menos cuatro formas de decirle a Excel dónde acaban unos datos, y la mejor depende de si la columna es numérica, de si puedes añadir una fila de total y de si el rango es una tabla o no. Y otra menos evidente: antes de dar por perdida una fórmula, comprueba que el formato que buscas esté al alcance de la herramienta.
Del hilo salió además una petición que vale la pena recoger, porque la comparte mucha gente: que el formato condicional permita más opciones de las que hoy ofrece, empezando por el grosor del borde y el tipo de letra.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Reestructurar datos apilados con LAMBDA y PIVOTARPOR CasoUn miembro de la comunidad comparte un archivo de revisión de Seguridad Social con una tabla amplia (34 columnas x 1540 filas) en formato "a
- Formato dinámico AGRUPARPOR PIVOTARPOR TutorialAplicar formato condicional a las matrices calculadas es fundamental para conseguir que su legibilidad sea óptima
- Acumular el saldo en PIVOTARPOR: una función de agregación distinta por columna CasoNuevo caso que empieza con una suposicion razonable y acaba en una contraprueba del propio autor. Juan trae un libro mayor en bruto y quiere
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Comentarios persistentes junto a AGRUPARPOR/PIVOTARPOR CasoJuan plantea un problema muy habitual para quienes trabajan con PIVOTARPOR o AGRUPARPOR: añadir comentarios o anotaciones en columnas auxili
- Detectar clientes con valores distintos en un campo para formato condicional CasoUn miembro de la comunidad tiene una tabla de clientes donde un mismo cliente puede aparecer varias veces. Necesita detectar a simple vista
- PIVOTARPOR: cadenas vacías y orden cronológico mensual CasoJuan trae dos problemas de PIVOTARPOR el mismo día, ambos muy prácticos y con soluciones elegantes de la comunidad. Problema 1: cadenas vací
- Detectar qué celdas dependen de otras hojas o ficheros con formato condicional TutorialTe pasan un fichero que no has hecho tú y la primera pregunta siempre es la misma: ¿de dónde salen estos números? Algunos están escritos a m
- Reducir un número a un dígito con LAMBDA recursiva y secuencia intermedia CasoJoan Recasens plantea un reto matemático: reducir un número a un solo dígito sumando sus cifras de forma recursiva, y además guardar toda la
- BUSCARX explicado fácil TutorialDesde la sintaxis básica hasta trucos avanzados como expresiones regulares y cruce de rangos. Además, aprenderás a manejar errores y a usar