Automatizar reportes en Excel con IA
Ir a inicio
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.
Índice
- Preparar y limpiar datos con Power Query
- Modelo, KPIs y tablas dinámicas
- Dashboard con gráficos
- Generar insights con IA (Copilot)
- Automatizar con Office Scripts (refresh & export)
- Programar distribución con Power Automate
- Opcionales: Parámetros, Python en Excel y control de calidad
- Solución de problemas
1) Preparar y limpiar datos con Power Query
- Conectar → Datos > Obtener datos (CSV/Excel/SQL/API). Cargar como Solo crear conexión y habilitar Agregar al modelo de datos si usarás medidas.
- Transformar: abrir Transformar datos y aplicar pasos: tipo de datos, dividir/combinar columnas, quitar nulos, normalizar texto, crear columnas personalizadas.
- 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
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
- Insertar > Tabla dinámica > Fuente: consulta Power Query.
- Filas: fecha (mes) • Columnas: región • Valores: Ingresos.
- Habilitar segmentadores (slicers) para producto y vendedor.
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).”
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,
});
}
"Dashboard"
) y el scale hasta que el PDF quede perfecto.6) Programar distribución con Power Automate
- Disparador: “Recurrente” (p.ej., cada lunes 08:00).
- Acción: Ejecutar script de Excel Online (Business) → selecciona el archivo en OneDrive/SharePoint y el script
main
. - Acción: Obtener archivo (PDF/Excel) desde la misma carpeta.
- Acción: Enviar correo (Outlook) con adjunto o Guardar archivo en SharePoint/Teams con nombre
Reporte_Automatizado_{año}{mes}{día}.pdf
.
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.
Tu reporte ahora se actualiza y se distribuye solo. Enfócate en la estrategia, no en el trabajo repetitivo. 🚀
Ir a inicio