Automatizar reportes en Excel con IA

Ir a inicio
Automatización de reportes en Excel con IA, Power Query y Office Scripts

Configura un pipeline de reporte en Excel que: (1) se actualiza solo desde la fuente de datos, (2) genera visuales y KPIs, (3) redacta insights con IA (Copilot) y (4) envía el reporte final por correo o lo guarda como PDF/Excel en la nube.

🧰 Requisitos

  • Microsoft 365 con Excel de escritorio (preferible) y acceso a Copilot.
  • Conectar a OneDrive/SharePoint para el archivo final.
  • Fuentes de datos (CSV, Excel, DB o API) y permisos.

🚀 Resultado

  • Archivo Reporte.xlsx con pestañas Datos, Modelo, Dashboard, Insights IA.
  • Script que refresca, actualiza visuales y exporta a PDF/Excel.
  • Flujo programado que distribuye el reporte automáticamente.

1) Preparar y limpiar datos con Power Query

  1. ConectarDatos > Obtener datos (CSV/Excel/SQL/API). Cargar como Solo crear conexión y habilitar Agregar al modelo de datos si usarás medidas.
  2. Transformar: abrir Transformar datos y aplicar pasos: tipo de datos, dividir/combinar columnas, quitar nulos, normalizar texto, crear columnas personalizadas.
  3. Parámetros (opcional): en Power Query, Administrar parámetros para rutas/fechas. Útil para mover el archivo sin romper conexiones.
📎 Dataset de ejemplo (CSV)
fecha,region,producto,vendedor,unidades,precio
2025-07-01,Centro,A,María,12,150
2025-07-01,Norte,B,Carlos,9,200
2025-07-02,Sur,A,Luis,5,150
2025-07-03,Centro,C,María,7,300
2025-07-04,Norte,A,Ana,10,150
2025-07-05,Sur,B,Pedro,4,200
Tip: Nombra las consultas de Power Query con prefijos (p.ej. fct_Ventas, dim_Producto) para mantener orden.

2) Modelo, KPIs y tablas dinámicas

En la hoja Modelo crea tus medidas (si usas el Modelo de datos) o columnas calculadas. Para un enfoque directo en Excel, puedes usar Tablas dinámicas desde el rango/consulta.

Medidas básicas (Ejemplos)

  • Unidades Totales: suma de unidades.
  • Ingresos: suma de unidades * precio.
  • Ticket Promedio: Ingresos / Unidades.

Tabla dinámica

  1. Insertar > Tabla dinámica > Fuente: consulta Power Query.
  2. Filas: fecha (mes) • Columnas: región • Valores: Ingresos.
  3. Habilitar segmentadores (slicers) para producto y vendedor.
Con Copilot puedes pedir: “Crea una tabla dinámica con ingresos por mes y región y agrega un gráfico de columnas.”

3) Dashboard con gráficos

En la hoja Dashboard, inserta gráficos (columnas, líneas, mapa si aplica). Nombra rangos para facilitar scripting.

  • Selecciona estilos consistentes y usa formato condicional para KPIs (verde ▲, rojo ▼).
  • Agrega un encabezado con el período (p.ej., Últimos 30 días).
  • Bloque “KPIs”: Ingresos, Unidades, Ticket Promedio, Top producto/Región.

4) Generar insights con IA (Copilot)

Abre Copilot en Excel y utiliza prompts contextuales para obtener explicaciones, tendencias y resúmenes que se actualizan con tus datos.

Prompts recomendados

  • “Analiza la tabla fct_Ventas y resume en 5 puntos las principales tendencias del último mes.”
  • “¿Qué regiones explican el 80% de los ingresos? Devuélvelo en una tabla.”
  • “Genera un texto ejecutivo (80-120 palabras) con hallazgos y recomendaciones accionables.”
  • “Propón 3 alertas automáticas basadas en umbrales (ej., caída > 15% intermensual).”
Privacidad: Evita incluir datos sensibles en los prompts. Usa muestras o vistas con campos mínimos necesarios.

Insertar resultados en la hoja

Pide a Copilot: “Escribe el resumen en la hoja Insights IA, celda A2”. Luego da formato con estilo de informe.

5) Automatizar con Office Scripts (Refresh & Export)

En Excel para la Web: Automatizar > Nuevo script. Usa el siguiente script para refrescar consultas y exportar a PDF y guardar una copia Excel.

Script listo para usar

/**
 * Office Script: Refresh & Export
 * - Refresca todas las conexiones/consultas
 * - Actualiza tablas dinámicas
 * - Exporta a PDF (hoja "Dashboard")
 * - Guarda copia con timestamp
 */
async function main(workbook: ExcelScript.Workbook) {
  const date = new Date();
  const yyyy = date.getFullYear();
  const mm = String(date.getMonth()+1).padStart(2,"0");
  const dd = String(date.getDate()).padStart(2,"0");
  const hh = String(date.getHours()).padStart(2,"0");
  const mi = String(date.getMinutes()).padStart(2,"0");
  const stamp = `${yyyy}${mm}${dd}-${hh}${mi}`;

  // 1) Refrescar conexiones/consultas
  try {
    workbook.refreshAllDataConnections();
  } catch(e) { console.log("No data connections or refresh failed:", e); }

  // 2) Actualizar tablas dinámicas
  try {
    const pivots = workbook.getPivotTables();
    pivots.forEach(p => p.refresh());
  } catch(e) { console.log("No pivot tables or refresh failed:", e); }

  // 3) Exportar a PDF solo la hoja Dashboard
  const dashboard = workbook.getWorksheet("Dashboard");
  if (dashboard) {
    const exportOptions: ExcelScript.WorkbookPdfExportOptions = {
      // Ajusta según tus márgenes/área
      onlySelectedWorksheet: true,
      includeDocumentProperties: true,
      scale: 90
    };
    await workbook.getApplication().createPdf(exportOptions);
  }

  // 4) Guardar una copia con timestamp
  const fileName = `Reporte_Automatizado_${stamp}.xlsx`;
  await workbook.saveAs({
    fileName,
    conflictResolution: ExcelScript.SaveConflictResolution.replace,
  });
}
Ajusta el nombre de la hoja de salida (p.ej., "Dashboard") y el scale hasta que el PDF quede perfecto.

6) Programar distribución con Power Automate

  1. Disparador: “Recurrente” (p.ej., cada lunes 08:00).
  2. Acción: Ejecutar script de Excel Online (Business) → selecciona el archivo en OneDrive/SharePoint y el script main.
  3. Acción: Obtener archivo (PDF/Excel) desde la misma carpeta.
  4. Acción: Enviar correo (Outlook) con adjunto o Guardar archivo en SharePoint/Teams con nombre Reporte_Automatizado_{año}{mes}{día}.pdf.
Suma lógica condicional: si “Ingresos < Objetivo” entonces notifica a gerencia con asunto ⚠️.

7) Opcionales potentes

Parámetros de período

Crea una hoja Config con celdas FechaInicio y FechaFin. Úsalas en Power Query para filtrar.

Python en Excel

Para modelos de pronóstico o clasificación, inserta una celda Python (Excel) y calcula predicciones. Exporta resultados a una tabla y conéctala al dashboard.

# Ejemplo mínimo en una celda Python (pseudocódigo)
import pandas as pd
# df = xl("fct_Ventas")  # referencia a una Tabla de Excel
# pronostico = tu_modelo(df)
# xlw("Pronostico", pronostico)  # volcar salida a Excel

Control de calidad

  • Valida tipos de datos en Power Query.
  • Agrega pruebas simples (conteos, totales) y compáralos con períodos previos.
  • Usa formato condicional para destacar outliers.

8) Solución de problemas

  • Conexión falla: verifica credenciales y orígenes en Consultas y conexiones.
  • PDF en blanco: asegúrate de seleccionar la hoja correcta y ajustar el área de impresión.
  • Copilot no responde bien: pide tablas intermedias, limita columnas y refina el prompt con contexto concreto.
  • Lentitud: deshabilita cálculos volátiles, reduce pasos de PQ y usa columnas de tipo entero/fecha.
Recuerda mantener tus datos en OneDrive/SharePoint para que los flujos puedan acceder y no dependan de tu PC encendida.

Tu reporte ahora se actualiza y se distribuye solo. Enfócate en la estrategia, no en el trabajo repetitivo. 🚀

Ir a inicio