>_ Black Engine

Cómo automatizar reportes en Excel (con Python o con IA)

Por Black Engine · 6 de noviembre de 2026

Para automatizar reportes en Excel tienes tres caminos según tu nivel: Power Query (incluido en Excel, sin código) para que el reporte se actualice con un clic; Python para que se genere y se envíe solo, sin que nadie abra Excel; y flujos con IA que además redactan el resumen ejecutivo. En los tres casos, el primer paso es el mismo: que tus datos de origen lleguen siempre en el mismo formato.

Paso 0: ordena tus fuentes

Un reporte automático necesita entradas predecibles:

  • Exportaciones del sistema siempre con las mismas columnas y en la misma carpeta.
  • Datos en formato de tabla (sin celdas combinadas, un encabezado por columna, una fila por registro).
  • Nombres de archivo consistentes (ventas_2026-11.xlsx).

Si hoy “arreglas” el archivo a mano antes de hacer el reporte, esa limpieza es justo lo primero que se automatiza.

Opción 1: Power Query (sin programar)

  1. En Excel, ve a Datos → Obtener datos → Desde archivo → Desde carpeta y elige la carpeta donde dejas las exportaciones.
  2. Clic en Combinar y transformar datos. Excel junta todos los archivos.
  3. En el editor de Power Query limpia: quita columnas, cambia tipos (fecha, número), filtra filas vacías. Cada paso queda grabado.
  4. Cerrar y cargar a una hoja o al modelo de datos.
  5. Crea tu tabla dinámica y gráficos sobre esa tabla.
  6. El próximo mes: deja los nuevos archivos en la carpeta y presiona Datos → Actualizar todo.

Puedes configurar que se actualice al abrir el archivo en las propiedades de la consulta. La guía oficial está en el soporte de Microsoft sobre Power Query.

Opción 2: automatizar reportes con Python

Ideal cuando quieres que el reporte se haga solo, a una hora fija, y llegue por correo.

from pathlib import Path
import pandas as pd

# 1. Juntar datos
datos = pd.concat(
    (pd.read_excel(a) for a in Path("exportaciones").glob("ventas_*.xlsx")),
    ignore_index=True,
)
datos["Fecha"] = pd.to_datetime(datos["Fecha"], dayfirst=True)

# 2. Calcular
semana = datos[datos["Fecha"] >= pd.Timestamp.today().normalize() - pd.Timedelta(days=7)]
por_sucursal = semana.pivot_table(index="Sucursal", values="Importe", aggfunc="sum").reset_index()
top_productos = semana.groupby("Producto")["Importe"].sum().nlargest(10).reset_index()

# 3. Escribir el reporte
with pd.ExcelWriter("reporte_semanal.xlsx") as w:
    por_sucursal.to_excel(w, sheet_name="Por sucursal", index=False)
    top_productos.to_excel(w, sheet_name="Top 10", index=False)
    semana.to_excel(w, sheet_name="Detalle", index=False)

Para darle formato (colores, moneda, anchos) usa openpyxl como explicamos en automatizar Excel con Python. Para enviarlo por correo y programarlo, revisa el ejemplo de smtplib y el Programador de tareas en automatizar procesos con Python.

Opción 3: automatizar reportes con IA

La IA no sustituye los cálculos (para eso están Power Query o Python, que no se equivocan con las sumas), pero sí ayuda en dos partes:

Redactar el resumen

Después de calcular, mándale al modelo solo las cifras ya resumidas:

Eres analista de una empresa en Monterrey. Con estos datos de la semana,
escribe 4 viñetas breves para la dirección: qué sucursal creció o cayó más
contra la semana anterior y qué producto destacó. No inventes cifras;
usa solo las que te doy.

Por sucursal (semana actual / anterior): Centro 182,400 / 165,300; Cumbres 98,750 / 110,200; ...

El texto resultante se pega en el cuerpo del correo del reporte. En n8n, Make o Power Automate esto es un paso más del flujo.

Ayudarte a construirlo

Si no programas, pídele a una IA que te escriba la consulta de Power Query (lenguaje M) o el script de Python a partir de la descripción de tus columnas. Más ideas en automatizar Excel con IA.

Ejemplos de reportes que vale la pena automatizar

Estos son los reportes que en oficinas y pymes se arman a mano cada semana o cada mes, y que suelen ser buenos candidatos:

  • Ventas por sucursal, vendedor o producto: exportación del punto de venta o del ERP, tabla dinámica y comparación contra el periodo anterior.
  • Cuentas por cobrar con antigüedad: clientes con saldo, días de atraso y a quién llamar primero. Ver también automatizar cuentas por pagar, que usa la misma lógica del lado de proveedores.
  • Inventario y reorden: existencias contra punto de reorden, con los productos que se van a acabar marcados en rojo.
  • Facturación del mes: total facturado, cancelado y por cliente a partir de los XML de tus CFDI. Si hoy los descargas uno por uno, empieza por automatizar la descarga de CFDI del SAT.
  • Horas o asistencia: registros del checador agrupados por persona y semana.

Si un reporte se hace igual cada vez y solo cambian los datos, se puede automatizar.

Cómo elegir entre las tres opciones

  • Una persona abre el archivo y lo revisa cada semana: Power Query. Es lo más fácil de mantener para alguien que no programa.
  • Nadie debería tener que abrir nada: Python programado o un flujo en n8n o Power Automate.
  • La dirección quiere un texto, no una tabla: agrega el paso de IA para redactar el resumen, pero encima de cálculos hechos con Power Query o Python.
  • Los archivos son enormes o vienen de varios sistemas: Python, o una base de datos intermedia si ya pasan de lo que Excel maneja con comodidad.

Antes de confiar en el reporte automático

  1. Cuádralo contra el manual. Durante dos o tres periodos, genera los dos y compara totales. Si no coinciden, encuentra por qué antes de apagar el manual.
  2. Revisa los casos raros: devoluciones, notas de crédito, ventas canceladas, fechas en otro formato.
  3. Define quién es el dueño: alguien debe saber dónde vive el archivo o el script y a quién avisarle si falla.
  4. Deja un aviso de error: si el reporte no se generó, que llegue un correo diciendo eso, en lugar de silencio.

Enviar el reporte automáticamente

Si usas… Cómo enviarlo solo
Excel en OneDrive/SharePoint Power Automate: flujo programado → adjuntar archivo → enviar correo de Outlook
Python Script programado que genera el archivo y lo envía por SMTP o la API de tu correo
n8n o Make Flujo programado: leer datos → generar archivo → paso de IA → enviar correo

Si tus reportes están en Power BI en lugar de Excel, revisa automatizar reportes de Power BI.

Errores comunes

  • Rutas de archivo fijas a la computadora de alguien: cuando esa persona se va, el reporte se rompe. Usa carpetas compartidas.
  • Columnas que cambian de nombre en la exportación del sistema: el reporte falla. Agrega una validación que avise.
  • Que la IA calcule: los modelos de lenguaje pueden equivocarse con operaciones; calcula con fórmulas o código y usa la IA solo para redactar.
  • Mandar el reporte aunque esté vacío: valida que haya datos antes de enviar.

Cuándo pedir ayuda

Si cada semana alguien pierde horas armando el mismo reporte, automatizarlo suele ser de los proyectos con retorno más rápido. Si involucra varios sistemas o datos sensibles, conviene que lo construya alguien con experiencia. En Black Engine automatizamos reportes en Excel con Power Query, Python e IA; escríbenos por WhatsApp.

Preguntas frecuentes

¿Cuál es la forma más fácil de automatizar un reporte en Excel?

Power Query, que viene incluido en Excel: conectas tus fuentes una vez y después el reporte se actualiza con el botón 'Actualizar todo'. No requiere programar.

¿Cómo hago que el reporte se envíe solo por correo?

Con Power Automate si tu archivo está en OneDrive o SharePoint, o con un script de Python programado que genere el archivo y lo mande por correo.

¿La IA puede escribir el análisis del reporte?

Sí. Puedes mandarle a un modelo de IA el resumen de cifras y pedirle que redacte los hallazgos principales. Pásale cifras ya calculadas, no la base completa, y revisa lo que escribe.

¿Python o Power Query para reportes?

Power Query es ideal si el reporte vive en Excel y lo actualiza una persona. Python es mejor si quieres que corra sin nadie, con muchas fuentes o archivos grandes.

Pide ayuda por WhatsApp