Automatizar Excel consiste en dejar que el programa repita por ti las tareas fijas de siempre: cargar datos, limpiarlos, calcular, formatear, mover información entre archivos o enviarla a otro servicio. En este tutorial recorrerás las cuatro formas que tiene Excel de automatizar trabajo —fórmulas y formato condicional, Power Query, macros VBA y Office Scripts/Power Automate— sobre un mismo ejemplo: una hoja de ventas que cada lunes hay que preparar a mano. Al terminar sabrás elegir la herramienta según tu caso y sabrás cómo subir de nivel cuando lo que tienes se queda corto. Funciona en Microsoft 365, Excel 2024, 2021, 2019 y 2016 para escritorio, además de Excel para la web y para Mac, con las diferencias que se van señalando.
Qué significa automatizar Excel y cuándo merece la pena
Imagina una hoja de ventas que cada lunes alguien tiene que abrir, copiar las filas nuevas de tres tiendas, pegar los totales, aplicar el mismo formato y mandar el informe por correo. Ese trabajo es repetitivo, sigue siempre los mismos pasos y no cambia según el día. Justo ese es el terreno de la automatización: tareas con reglas claras que se repiten una y otra vez.
La idea es sencilla: si puedes explicar los pasos que haces con palabras («abro, copio aquí, sumo, pongo este formato, guardo»), Excel puede hacerlo por ti. En cambio, lo que depende de decisiones de cada momento —si una venta es válida, si un cliente se queda, si conviene cambiar de proveedor— se queda fuera. Ahí sigue mandando la persona.
Lo que sí puedes automatizar y lo que no
- Cargar datos desde un CSV, una base de datos o una carpeta llena de archivos iguales.
- Limpiar columnas: cambiar tipos, quitar duplicados, filtrar filas, dividir campos.
- Calcular con fórmulas que se aplican solas al entrar datos nuevos.
- Dar formato: negrita, separadores de miles, colores según condiciones.
- Mover datos entre hojas, entre archivos o entre Excel y otros servicios.
- Lo que NO se automatiza bien: validar si una cifra tiene sentido, decidir si se acepta o no una excepción, o procesos que dependen de un criterio que cambia cada vez.
Los cuatro niveles de automatización en Excel
| Nivel | Herramienta | Para qué sirve | Cuándo elegirlo |
|---|---|---|---|
| 1 | Fórmulas y formato condicional | Cálculos fijos y avisos visuales | Tareas dentro de una hoja, sin mover datos de fuera |
| 2 | Tablas dinámicas y Power Query | Resumir y limpiar datos de cualquier origen | Cuando los datos cambian cada semana o cada mes |
| 3 | Macros grabadas y VBA | Repetir clics, mover filas, abrir archivos | Cuando siempre haces la misma secuencia de pasos |
| 4 | Office Scripts y Power Automate | Lo mismo que VBA, pero en la web o entre servicios | Cuando trabajas en Excel para la web o conectas con correo, SharePoint o Teams |
La herramienta que ya tienes dentro de Excel
Antes de instalar nada, mira lo que ya viene con Excel. Power Query está integrada desde Excel 2016 para escritorio y en Excel para la web, y sirve para traer datos, limpiarlos y cargarlos sin escribir código. Power Pivot añade un modelo de datos y fórmulas DAX para cruzar tablas grandes. Las macros VBA son las veteranas: grabas lo que haces y Excel lo repite. En Microsoft 365 aparece además la pestaña Automatizar, que conecta con Power Automate para mover datos entre Excel y otros servicios como SharePoint, Outlook o Teams. Conocer qué tienes abierto es lo que evita instalar complementos que sobran.
Power Query: traer y limpiar datos sin tocar la hoja
Power Query es un botón de la cinta que abre un editor visual: ves las filas y columnas, eliges qué transformar y el resultado se carga en una hoja o en una tabla dinámica. Lo que limpias queda guardado, así que la próxima vez basta con pulsar Actualizar.
Desde ahí entras a orígenes como Excel, CSV, Access, SQL Server, páginas web y SharePoint. Las operaciones Combinar (cruzar dos tablas por una columna) y Anexar (pegar tablas una debajo de otra, igual que las UNION de SQL) están en el menú Power Query.
Power Pivot: cuando los datos pasan de un millón de filas
Power Pivot aparece como una pestaña propia cuando la activas y sirve para crear un modelo de datos: varias tablas relacionadas entre sí, sobre las que calculas con fórmulas DAX (lenguaje de expresiones propio de Power Pivot y Power BI). Para más detalles sobre DAX, consulta la documentación oficial de DAX en learn.microsoft.com.
Se usa cuando una sola hoja ya no aguanta o cuando necesitas cruzar ventas con clientes y productos en tablas separadas.
Macros VBA: grabar lo que haces y que Excel lo repita
Una macro es una grabación de tus clics. La pulsas, haces el trabajo una vez, la detienes, y a partir de ahí Excel repite esos pasos cuando se la pidas. VBA (Visual Basic para Aplicaciones) es el lenguaje detrás de esa grabación: lo que la grabadora escribe se puede leer y modificar para hacer cosas más complejas.
La pestaña Programador viene oculta. Para mostrarla, ve a Archivo > Opciones > Personalizar cinta de opciones y marca la casilla Desarrollador (en Mac: Excel > Preferencias > Barra de herramientas). En Excel para la web no hay VBA; ahí se usa Office Scripts, que se explica más abajo.
Power Automate y la pestaña Automatizar
En Microsoft 365 aparece la pestaña Automatizar al activar la pestaña Desarrollador como se ha dicho. Desde ahí entras a Power Automate y creas flujos que se disparan solos: «cuando llega un correo con un adjunto, guardar el archivo en esta carpeta y añadir una fila a esta hoja».
Graba tu primera macro y ahorra clics mañana
Para grabar tu primera macro, abre el archivo de ejemplo "Ventas" con los datos que ves en la hoja de abajo. La macro va a formatear la tabla y dejará el archivo listo para mandar por correo. La idea es que grabes los pasos una vez y, a partir de ahí, un botón en la hoja los repita por ti cada lunes.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tienda | Producto | Unidades | Importe |
| 2 | Centro | Cuaderno | 12 | 38,40 |
| 3 | Centro | Bolígrafo | 30 | 9,00 |
| 4 | Centro | Carpeta | 8 | 12,80 |
| 5 | Norte | Cuaderno | 15 | 48,00 |
| 6 | Norte | Bolígrafo | 22 | 6,60 |
| 7 | Norte | Carpeta | 5 | 8,00 |
| 8 | Sur | Cuaderno | 10 | 32,00 |
| 9 | Sur | Bolígrafo | 18 | 5,40 |
| 10 | Sur | Carpeta | 7 | 11,20 |
| 11 | Centro | Bolígrafo | 25 | 7,50 |
| 12 | Norte | Carpeta | 9 | 14,40 |
| 13 | Sur | Cuaderno | 14 | 44,80 |
Activar la pestaña Programador y grabar la macro
- Si no ves la pestaña Programador, ve a Archivo > Opciones > Personalizar cinta de opciones y marca Desarrollador.
- Clic en Programador > Grabar macro. Escribe el nombre
FormatoVentas, deja "Almacenar macro en" en Este libro y pulsa Aceptar. - Selecciona el rango
A1:D13con el ratón. - Pulsa Ctrl+N para poner en negrita la fila 1.
- Selecciona solo
D2:D13, pulsa Ctrl+1, elige Número con separador de miles y dos decimales, y pulsa Aceptar. - Selecciona de nuevo
A1:D13y pulsa Inicio > Celdas > Formato > Autoajustar ancho de columna. - Clic en Programador > Detener grabación.
FormatoVentas en la lista.Ejecutar la macro con un botón en la hoja
Para no tener que abrir el cuadro de macros cada lunes, dibujas un botón en la propia hoja y le asignas la macro.
- Clic en Programador > Insertar > Botón (control de formulario), dentro de "Controles de formulario".
- Dibuja el botón en una zona libre de la hoja, por ejemplo en F2.
- En el cuadro que aparece, elige la macro
FormatoVentasy pulsa Aceptar. - Cambia el texto del botón a "Aplicar formato" haciendo doble clic sobre él.
Ahora, cada vez que pegues datos nuevos en A1:D13, basta con pulsar el botón para tener el mismo formato de siempre.
Guardar el archivo para que la macro no se pierda
Las macros solo viven en archivos con extensión .xlsm. Si guardas como .xlsx, Excel te avisa y, al volver a abrir, las macros han desaparecido.
- Ve a Archivo > Guardar como.
- En Tipo, elige Libro de Excel habilitado para macros (*.xlsm).
- Ponle un nombre, por ejemplo
VentasSemanal.xlsm, y guarda.
Una macro con VBA que consolida archivos de una carpeta
Cuando grabar no basta, escribes el código a mano. Aquí la macro abre tres archivos (Origen1.xlsx, Origen2.xlsx, Origen3.xlsx) desde C:\Datos\, copia sus filas debajo de la última fila escrita en la hoja Resumen y cierra los archivos sin guardar cambios. La idea es que la próxima vez que entren archivos nuevos en la carpeta, un solo clic junte todos los datos.
El código VBA que recorre los ficheros
Abre el archivo VentasSemanal.xlsm, ve a Programador > Visual Basic, inserta un módulo con Insertar > Módulo y pega este código:
Sub ConsolidarCarpeta()
Dim carpeta As String
Dim archivo As String
Dim wbOrigen As Workbook
Dim wsDestino As Worksheet
Dim ultimaFila As Long
carpeta = "C:\Datos\"
Set wsDestino = ThisWorkbook.Worksheets("Resumen")
archivo = Dir(carpeta & "Origen*.xlsx")
Do While archivo <> ""
Set wbOrigen = Workbooks.Open(carpeta & archivo, ReadOnly:=True)
ultimaFila = wsDestino.Cells(wsDestino.Rows.Count, 1).End(xlUp).Row + 1
wbOrigen.Worksheets(1).UsedRange.Copy _
Destination:=wsDestino.Cells(ultimaFila, 1)
wbOrigen.Close SaveChanges:=False
archivo = Dir()
Loop
End Sub
.FormulaLocal; con inglés y comas, .Formula o .FormulaR1C1.Cómo pegarlo y ejecutarlo paso a paso
- Asegúrate de tener los tres archivos
Origen1.xlsx,Origen2.xlsxyOrigen3.xlsxenC:\Datos\, cada uno con una hoja llamada igual que la tabla de la sección anterior (columnas Tienda, Producto, Unidades, Importe). - En tu libro
VentasSemanal.xlsm, crea una hoja llamadaResumencon los encabezados Tienda, Producto, Unidades, Importe enA1:D1. - Abre el editor con Alt+F11, inserta un módulo y pega el código de arriba.
- Haz clic dentro de la macro
ConsolidarCarpetay pulsa F5. - Vuelve a la hoja
Resumeny comprueba que las filas de los tres archivos están debajo de los encabezados.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Tienda | Producto | Unidades | Importe |
| 2 | Centro | Cuaderno | 12 | 38,40 |
| 3 | Centro | Bolígrafo | 30 | 9,00 |
| 4 | Centro | Carpeta | 8 | 12,80 |
| 5 | Norte | Cuaderno | 15 | 48,00 |
| 6 | Norte | Bolígrafo | 22 | 6,60 |
| 7 | Norte | Carpeta | 5 | 8,00 |
| 8 | Sur | Cuaderno | 10 | 32,00 |
| 9 | Sur | Bolígrafo | 18 | 5,40 |
| 10 | Sur | Carpeta | 7 | 11,20 |
| 11 | Centro | Cuaderno | 9 | 28,80 |
| 12 | Centro | Bolígrafo | 40 | 12,00 |
| 13 | Centro | Carpeta | 6 | 9,60 |
Resumen debe tener 12 filas de datos después de ejecutar la macro (4 de cada archivo de origen).Atajos útiles en el Editor de VBA
- F5: ejecuta la macro donde está el cursor.
- F8: avanza línea a línea, útil para ver dónde falla.
- Ctrl+G: abre la ventana Inmediato, donde puedes escribir
?ActiveSheet.Namey pulsar Entrar para ver el nombre de la hoja activa. - Ctrl+Espacio: despliega la lista de miembros del objeto que estás escribiendo.
- F4: abre la ventana Propiedades para ver las del elemento seleccionado.
;; con coma, ,. Esta nota aparece una sola vez porque la regla depende de la región de Windows, no de la versión de Excel.Power Query: un informe de ventas que se actualiza solo
Power Query es la pieza clave cuando los datos cambian cada semana. Aquí el archivo Ventas2026.csv con las ventas de la semana se importa, se limpia y se carga en una tabla dinámica. La próxima semana solo hay que sustituir el CSV y pulsar Actualizar todo.
El archivo Ventas2026.csv tiene este contenido (una fila por venta, separado por punto y coma):
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Fecha | Tienda | Producto | Unidades | Importe |
| 2 | 02/01/2026 | Centro | Cuaderno | 12 | 38,40 |
| 3 | 02/01/2026 | Centro | Bolígrafo | 30 | 9,00 |
| 4 | 02/01/2026 | Norte | Cuaderno | 15 | 48,00 |
| 5 | 03/01/2026 | Sur | Carpeta | 7 | 11,20 |
| 6 | 03/01/2026 | Sur | Bolígrafo | 18 | 5,40 |
| 7 | 04/01/2026 | Centro | Carpeta | 8 | 12,80 |
| 8 | 04/01/2026 | Norte | Bolígrafo | 22 | 6,60 |
| 9 | 05/01/2026 | Sur | Cuaderno | 10 | 32,00 |
Obtener el CSV y entrar en el Editor de Power Query
- Abre un libro nuevo en blanco y ve a Datos > Obtener datos > De archivo > Desde texto/CSV.
- Elige el archivo
Ventas2026.csvy pulsa Importar. - En la vista previa, pulsa Transformar datos para abrir el Editor de Power Query.
En el editor verás las columnas a la derecha y una lista de pasos aplicados a la izquierda. Cada clic que hagas añade un paso y se puede deshacer con la X del paso.
Cambiar tipos, quitar duplicados y filtrar
Los datos llegan como texto; antes de calcular nada hay que poner cada columna en su tipo.
- Clic en el icono "ABC123" a la izquierda del encabezado Fecha y elige Fecha.
- Repite para cambiar Tienda a Texto, Unidades a Número entero e Importe a Número decimal.
Ahora, quitar duplicados para quedarte solo con la lista de productos:
- Clic en el encabezado Producto para seleccionarla.
- Ve a Inicio > Reducir filas > Quitar duplicados.
Por último, filtra las tiendas con las que quieres trabajar:
- Clic en la flecha del encabezado Tienda, desmarca Seleccionar todo y marca solo Centro y Norte.
Cerrar y cargar en una tabla dinámica
- En el editor de Power Query, ve a Inicio > Cerrar y cargar > Cerrar y cargar en….
- Elige Tabla dinámica y la celda donde colocarla, por ejemplo la celda F1 de una hoja nueva.
- Pulsa Aceptar.
- La semana siguiente, sustituye el CSV por el nuevo y pulsa Datos > Actualizar todo: la tabla se refresca sin tocar la fórmula.
Office Scripts: automatizar en Excel para la web
Office Scripts es la versión moderna de las macros para Excel para la web y para Microsoft 365 en Windows. En lugar de VBA, se escribe en TypeScript (un lenguaje parecido a JavaScript con tipos). La ventaja es que el script se guarda en la nube y se ejecuta desde un botón en la hoja o desde Power Automate.
El script básico que da formato al rango
En Excel para la web, ve a Automatizar > Nuevo script, borra lo que venga y pega este código:
function main(workbook: ExcelScript.Workbook) {
let hoja = workbook.getWorksheet("Ventas");
let rango = hoja.getRange("A1:D13");
rango.getFormat().getFont().setBold(false);
let encabezados = hoja.getRange("A1:D1");
encabezados.getFormat().getFont().setBold(true);
let importe = hoja.getRange("D2:D13");
importe.setNumberFormat("#,##0.00");
rango.getFormat().autofitColumns();
}
Pulsa Guardar script. Lo que hace es quitar la negrita general, poner en negrita solo la fila 1, dar formato de número con dos decimales a la columna Importe y autoajustar el ancho de las columnas, igual que la macro de la sección anterior.
Guardar y ejecutar el script desde un botón
- En el panel Automatizar, junto al nombre del script, haz clic en el menú (tres puntos) y elige Ejecutar.
- Para usarlo sin abrir el editor, pulsa el botón + junto a "Ejecutar script" y elige "Agregar botón en la hoja".
- Dibuja el botón donde quieras, asígnale el script
FormatoVentasWeby guárdalo.
Conectar Excel con otros servicios sin escribir código
Power Automate permite encadenar Excel con otros servicios sin escribir código: SharePoint, Outlook, Teams, Forms, OneDrive, SQL Server. El flujo se dispara por un evento ("cuando se crea un elemento") y ejecuta una acción ("agregar fila en Excel").
Crear el flujo desde la pestaña Automatizar
- En Microsoft 365, abre el libro de Excel donde quieras recibir los datos.
- Ve a Automatizar > Crear flujo.
- Elige la plantilla "Cuando se crea un elemento en SharePoint, agregar fila en Excel".
- Conecta tu cuenta de SharePoint, elige la lista de origen y la tabla de Excel de destino.
- Mapea las columnas: la columna Título de SharePoint con la columna Tienda de Excel, y así con el resto.
- Guarda el flujo.
Comprobar que el flujo se dispara solo
- En la lista de SharePoint conectada, añade un elemento de prueba con los datos de una venta nueva.
- Vuelve a Excel y pulsa Datos > Actualizar todo.
- La nueva fila debe aparecer en la tabla de destino sin que hayas tocado nada más.
Por qué tu automatización falla justo cuando la necesitas
Toda automatización se rompe en algún momento: cuando cambia un nombre de archivo, cuando suben los datos a una carpeta distinta o cuando un compañero abre el archivo en otra versión. Lo importante es saber leer el error y aplicar el arreglo. Los cinco tropiezos más comunes aparecen en la siguiente tabla.
| Error | Síntoma típico | Solución |
|---|---|---|
| Guardar como .xlsx | Al reabrir, el botón no hace nada | Guardar siempre como .xlsm |
| Ruta de carpeta inexistente | La macro VBA da error 76 | Usar msoFileDialogFolderPicker o una constante al inicio |
| Error de privacidad en Power Query | "No se pueden combinar orígenes de niveles de privacidad distintos" | Archivo > Opciones y configuración > Privacidad > Combinar siempre |
| Office Scripts no aparece | La pestaña Automatizar no se ve en Excel 2021 | Solo existe en Excel para la web y en Microsoft 365 actualizado |
| La macro hace lo contrario en otro equipo | Falla una referencia a una librería | Activar la misma referencia en Herramientas > Referencias o usar CreateObject |
La macro se borró al guardar como .xlsx
Excel muestra el aviso "Las características de macros se quitarán si guarda este libro". Al aceptar, el archivo se queda sin macros. El arreglo es guardar siempre como .xlsm y, al compartirlo, avisar al receptor de que tiene que permitir macros. Más sobre las extensiones de archivo de Excel en support.microsoft.com.
La macro VBA no encuentra la carpeta ni los archivos
La causa más frecuente es que la ruta C:\Datos\ no existe en el equipo de destino o el usuario no tiene permisos sobre ella. La solución es dejar que el usuario elija la carpeta cada vez con este fragmento:
Dim carpeta As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Elige la carpeta con los archivos de origen"
If .Show = -1 Then carpeta = .SelectedItems(1) & "\"
End With
Otra opción es poner la ruta en una constante al inicio del módulo para que sea fácil de cambiar sin buscar dentro del código.
Power Query da error de privacidad al combinar dos orígenes
Cuando combinas datos de un archivo local con datos de una web, Power Query puede bloquear la operación por privacidad. El arreglo está en Archivo > Opciones y configuración > Opciones de consulta > Privacidad > Nivel de privacidad global > Combinar siempre, o ajustando cada origen a Privado y luego eligiendo Ignorar niveles de privacidad al combinarlos.
Office Scripts no aparece en mi Excel
La pestaña Automatizar solo está en Excel para la web y en Microsoft 365 para Windows con la actualización que la incluye. En Excel 2021, 2019 o 2016 de escritorio no existe, aunque en Microsoft 365 a veces se activa con una actualización automática. Si tu Excel no la tiene, la alternativa es VBA dentro del libro o Power Automate como flujo independiente.
La macro hace lo contrario en otro equipo
Sucede cuando la macro usa una librería externa marcada en Herramientas > Referencias. La solución es anotar las referencias marcadas en el equipo de origen y activarlas también en el de destino, o reescribir la macro con late binding, usando CreateObject("Nombre.Libreria") en lugar de referencias tempranas.
Qué herramienta elegir según tu caso y tu versión
La herramienta adecuada depende de dos cosas: el problema a resolver y la versión de Excel que tienes delante. No es lo mismo querer aplicar un formato que cruzar cuatro archivos de 500.000 filas cada uno.
Lo que tienes y lo que te falta en tu Excel
| Versión de Excel | Power Query | Macros VBA | Office Scripts | Power Automate |
|---|---|---|---|---|
| Microsoft 365 | Sí | Sí | Sí | Sí |
| Excel 2024 | Sí | Sí | Sí (con la actualización) | Sí |
| Excel 2021 | Sí | Sí | No (salvo actualización) | Sí |
| Excel 2019 | Sí | Sí | No | No |
| Excel 2016 | Sí (algunas ediciones) | Sí | No | No |
| Excel para la web | Sí | No | Sí | Sí |
| Excel para Mac | Sí | Sí | No | No |
Lo que Excel no automatiza por ti
Quedan tres cosas fuera del alcance de cualquier herramienta: las decisiones que dependen de criterio (¿esta venta es válida o no?), las validaciones que requieren mirar fuera del archivo (¿el cliente sigue activo en el sistema externo?) y los procesos que piden intervención legal o humana. Ahí la herramienta se queda corta y toca revisar a mano. La automatización funciona mejor cuando se aplica al trabajo mecánico que rodea a esas decisiones, no a las decisiones mismas.
Lo que ya sabes hacer con la automatización de Excel
- Elegir la herramienta según el caso y la versión de Excel, no instalar nada a ciegas.
- Grabar una macro con la pestaña Programador y ejecutarla desde un botón en la hoja.
- Escribir una macro en VBA con
For Each,Workbooks.Openy.Cells(...).End(xlUp).Rowpara consolidar archivos. - Importar un CSV con Power Query, limpiar tipos, quitar duplicados y cargar en una tabla dinámica que se actualiza sola.
- Crear un script en Office Scripts para Excel para la web y conectarlo a un botón en la hoja.
- Montar un flujo en Power Automate que mueva filas entre SharePoint y Excel sin tocar la hoja.
El siguiente paso es afianzar la base sobre la que se apoya todo esto: BUSCARV (en inglés VLOOKUP) para cruzar datos entre tablas, SUMAR.SI (SUMIF) para totales con condición y tablas dinámicas para resumir. Cuando esas tres piezas se dominan, cualquier automatización de las que se han visto aquí se vuelve mucho más fácil de entender y de ampliar.
Fuentes
- Microsoftcomo hago para habilitar la pestaña automatizar en excel 365 para …consultado el 06/10/2026