Saltar al contenido
Agendar diagnóstico
← Volver a los casos

Datos del sector · Ingeniería de datos y visualización

Del Excel gigante a un informe reproducible

En validación · septiembre de 2026

Reconstrucción del informe mensual de evolución del sector que una asociación energética envía a sus socios, a partir de cuatro fuentes públicas, sin tocar el proceso que sigue vivo.

Maqueta de hojas cuadriculadas con una casilla vacía, un informe y una bandeja separada para avisos.

El problema

Cada mes la asociación publica un análisis de la evolución del sector: parque de instalaciones, potencia, energía, horas de funcionamiento, retribución. Los datos son públicos y salen de cuatro organismos distintos —el regulador, el operador del sistema, la liquidación mensual y el mercado— cada uno con su calendario: uno va al día, otro con dos meses y medio de retraso, otro con tres o cuatro y cadencia irregular.

Todo eso se juntaba en dos libros Excel de entre 75 y 95 MB, con cachés de tablas dinámicas de más de un millón de registros, un modelo de clasificación propio escrito dentro de las hojas, vínculos externos frágiles y más de un centenar de gráficas mantenidas a mano. Funcionaba porque una persona sabía dónde estaba cada cosa. Y a partir de una edición, el organismo que publica el libro protegió la estructura de su fichero, así que el maestro tuvo que partirse en dos.

El problema no era el dato. Era que el proceso vivía en la cabeza de quien lo hacía.

La solución

Un paquete autocontenido con un lanzador de un clic que hace, en orden:

  • Descarga el índice de publicaciones del regulador, resuelve el fichero del mes y lo baja.
  • Lee el libro sin Excel. Abre el .xlsx como lo que es —un ZIP de XML— y lee en streaming las cachés de tablas dinámicas. El libro de 90 MB se procesa en segundos, sin openpyxl ni pandas para esta parte.
  • Audita el inventario contra ediciones anteriores para detectar revisiones del dato ya publicado.
  • Aplica el modelo de clasificación y calcula los agregados.
  • Reconstruye el libro y lo cuadra contra el original: totales de control y una hoja de cotejo cifra a cifra. Las diferencias que quedan están documentadas como diferencias de criterio, no como errores.
  • Actualiza las fuentes externas —energía mensual, liquidación, precio del mercado— con extractores propios cuadrados contra lo publicado.
  • Regenera las gráficas en PNG y SVG con un estilo común y el sello de edición.

Produce además los entregables de la reunión mensual de dirección: un comparativo sectorial y un bloque de mercado eléctrico.

Decisión clave

No inventar datos: una celda vacía no se convierte en cero, nada se interpola, y cada anomalía va a un fichero de avisos en vez de desaparecer.

Enfoque

Cómo se abordó

  1. Documentar antes de tocar

    Lo primero fue un diccionario del libro: qué hay en cada hoja, de dónde viene cada columna, qué fórmulas del dominio se aplican, y un catálogo de todas las gráficas con su fuente. Sin eso no se sabe qué hay que reproducir.

  2. Solo lectura sobre las fuentes de verdad

    Los libros maestros nunca se sobrescriben. Todo lo que el pipeline produce va a carpetas propias. El proceso manual sigue funcionando exactamente igual que antes mientras la vía nueva se prueba a su lado.

  3. Localizar por contenido, no por posición

    Las cachés de datos cambian de sitio entre ediciones —la de horas era la sexta en una, la decimotercera en otra, la decimoquinta en una tercera—. El código las identifica por sus campos, busca las cabeceras por texto y lee el mes del propio libro, no del nombre del fichero. Así una edición nueva no rompe nada.

  4. Reimplementar el modelo, y probarlo

    El modelo de clasificación de instalaciones —el único componente que no se descarga— se reescribió en Python con un test propio, reproduciendo a propósito incluso las anomalías del original, para que el resultado cuadre con el histórico y no con lo que «debería» ser.

  5. Sello de procedencia en todo

    Cada fichero externo lleva la fecha en que se descargó. Cada gráfica lleva en el pie la edición de la que sale. Un dato sin fecha es un dato del que no se puede fiar nadie.

Estado y próximos pasos

En validación · septiembre de 2026

Pipeline construido, ejecutado y cuadrado contra el libro histórico. Los extractores de fuentes externas coinciden con los informes publicados.

El proceso vivo sigue siendo el manual, sobre Excel, y lo seguirá siendo durante el traspaso: el siguiente hito es ejecutar una edición completa en paralelo con la persona que hoy lo hace, y mantener ese paralelo al menos seis meses antes de cambiar la vía. Una reconstrucción que cuadra sobre el pasado no es todavía un proceso de producción.

Criterio

La decisión que guía el sistema

No inventar datos: una celda vacía no se convierte en cero, nada se interpola, y cada anomalía va a un fichero de avisos en vez de desaparecer.