Grado de avance por proyecto: despivotar y volver a pivotar por fecha

Nuevo caso de la comunidad con mucho jugo para los que trabajan con reporting de proyectos.

Juan plantea un problema habitual en oficinas técnicas y consultoras: una tabla con cabeceras combinadas donde cada fila es un proyecto y cada columna representa una fecha con dos métricas (grado de avance y coste). El objetivo es reorganizar esa tabla para obtener, por cada proyecto y fecha, una vista limpia que permita calcular el grado de avance en el tiempo.

La solución de Miki ataca el problema en dos pasos. Primero despivota la tabla original con una combinación de FILTRAR, SCAN y APILARH para convertir el formato ancho en largo (una fila por proyecto/fecha/métrica). Después vuelve a pivotar por fecha y proyecto usando PIVOTARPOR, devolviendo la tabla reordenada con las métricas separadas. El resultado es una vista dinámica que se actualiza automáticamente cuando cambian los datos originales.

Gerson aporta una alternativa construida sobre el archivo de Miki, apoyándose en LAMBDA para encapsular la transformación como función reutilizable. Es especialmente útil si el mismo patrón (despivotar + pivotar por fecha) se quiere aplicar a varias tablas similares dentro del mismo libro.

Funciones destacadas: LET, LAMBDA, FILTRAR, SCAN, APILARH, PIVOTARPOR, ENCOL, SI.CONJUNTO, ELEGIRCOLS, EXPANDIR, SI.ND.

El caso incluye el archivo original con el planteamiento de Juan y el archivo con la propuesta de Miki (que también sirvió de base para la alternativa de Gerson).

El problema: una tabla ancha con cabeceras combinadas

En reporting de proyectos aparece una y otra vez la misma estructura incómoda: una tabla donde cada fila es un proyecto y cada columna representa una fecha con dos métricas debajo (grado de avance y coste), todo bajo cabeceras combinadas. Es cómoda de rellenar, pero imposible de explotar tal cual.

Juan planteó justo esto en la comunidad: necesitaba reorganizar esa tabla para obtener, por cada proyecto y fecha, una vista limpia que permitiera seguir el grado de avance en el tiempo.

La solución de Miki: despivotar y volver a pivotar

Miki atacó el problema en dos pasos, que son la clave para entender este tipo de transformaciones.

Paso 1 — despivotar. Convierte el formato ancho en formato largo, generando una fila por cada combinación de proyecto, fecha y métrica. Lo consigue combinando FILTRAR, SCAN y APILARH. El resultado intermedio es una tabla estrecha y uniforme, mucho más fácil de manipular.

Paso 2 — volver a pivotar. Con los datos ya en formato largo, usa PIVOTARPOR para reorganizarlos por fecha y proyecto, devolviendo las métricas separadas en su sitio. Al ser fórmulas, el resultado es dinámico: si cambian los datos originales, la vista se recalcula sola.

La secuencia despivotar y volver a pivotar es un patrón potentísimo: en vez de pelear con la tabla ancha directamente, la aplanas primero y la reconstruyes con la forma que necesitas.

La alternativa de Gerson: encapsular en una LAMBDA

Partiendo del archivo de Miki, Gerson propuso envolver la transformación en una función LAMBDA reutilizable. La ventaja es evidente cuando el mismo patrón —despivotar más pivotar por fecha— se repite en varias tablas del libro: defines la lógica una vez, le das nombre en el Administrador de nombres y la aplicas donde haga falta, sin copiar y pegar fórmulas kilométricas.

Es el paso natural cuando una transformación deja de ser puntual y se convierte en algo recurrente en tu modelo.

Funciones clave

  • FILTRAR: descarta filas o columnas que no cumplen una condición, base del despivotado.
  • SCAN: recorre los datos acumulando un estado, útil para arrastrar cabeceras o índices.
  • APILARH y APILARV: ensamblan bloques de datos en horizontal y en vertical.
  • PIVOTARPOR: agrupa y resume por filas y columnas, el reverso del despivotado.
  • LAMBDA: convierte la transformación completa en una función con nombre, reutilizable en todo el libro.
  • Apoyos habituales: LET, ENCOL, SI.CONJUNTO, ELEGIRCOLS, EXPANDIR y SI.ND para afinar el resultado.

Por qué merece la pena hacerlo con fórmulas

Podrías resolver esto con Power Query o con tablas dinámicas, y son opciones válidas. Pero la vía de fórmulas dinámicas tiene una ventaja concreta en reporting: se actualiza al instante cuando cambian los datos, sin refrescar consultas ni tablas. Para un panel de seguimiento de proyectos que se consulta a diario, esa inmediatez marca la diferencia.

Conclusión

Cuando te encuentres una tabla ancha con cabeceras combinadas que no hay por dónde coger, acuérdate del patrón: despivota primero, pivota después. Miki lo resolvió con FILTRAR, SCAN, APILARH y PIVOTARPOR, y Gerson lo dejó reutilizable con LAMBDA. Dos formas de llegar al mismo sitio, y un recordatorio de que en Excel 365 casi cualquier reestructuración de datos cabe en una fórmula. Retos de reporting como este se cuecen cada semana en la comunidad de InflueXcel.

Más casos con estas funciones

Más contenido de Excel en InflueXcel