"¿Cuál es la mejor forma de automatizar Excel?" es una pregunta que casi siempre recibe una respuesta incorrecta, porque está mal planteada. No hay una "mejor" herramienta: hay una herramienta adecuada para tu tarea, tu equipo, tu licencia y la persona que va a mantener la solución dentro de dos años. Para que la comparación sea concreta, resolví la misma tarea con cuatro herramientas: consolidar 12 libros mensuales de ventas (120.000 filas) en una sola tabla.
En este artículo te muestro el código de cada alternativa, los tiempos que medí, los requisitos reales de cada una (con sus límites) y una matriz de decisión para elegir. Una aclaración: el título habla de 2027, pero solo puedo afirmar lo que existe y verifiqué a 9 de octubre de 2026; las herramientas cambian, el método de decidir no.
Resumen. En mi prueba, Power Query (6,7 s; 3,7 s al actualizar), VBA (7,5 s) y Python con pandas (7,0 s) consolidaron 120.000 filas con exactamente el mismo resultado. La velocidad no decide: decide dónde corre, quién lo mantiene y qué más necesitas (formato, correos, flujos en la nube). Regla práctica: usa la herramienta más simple que resuelva el problema.
La tarea: consolidar 12 libros mensuales
Cada libro (ventas-2026-01.xlsx a ventas-2026-12.xlsx) tiene una hoja con cinco columnas (Fecha, Vendedor, Producto, Cantidad, Valor) y 10.000 filas. El objetivo es una tabla consolidada de 120.000 filas, con los tipos de dato correctos, que se pueda repetir cuando llegue un nuevo mes. Verifiqué el resultado con una suma de control: el total de Valor debe ser 11.111.254.600. Lo probé en Windows con Excel 16 y Python 3 con pandas 2.3.

Opción 1: Power Query (sin escribir código en la hoja)
Power Query es el conector de datos de Excel: Datos > Obtener datos > Desde un archivo > Desde la carpeta. Se define una vez y se actualiza con un clic. Este es el código M (Editor avanzado) que usé:
let
Origen = Folder.Files("C:\RUTA\datos"),
Solo = Table.SelectRows(Origen, each [Extension] = ".xlsx" and not Text.StartsWith([Name], "~$")),
Leer = Table.AddColumn(Solo, "Datos", each Excel.Workbook([Content], true){0}[Data]),
Combinado = Table.Combine(Leer[Datos]),
Tipos = Table.TransformColumnTypes(Combinado,
{{"Fecha", type date}, {"Vendedor", type text}, {"Producto", type text},
{"Cantidad", Int64.Type}, {"Valor", type number}})
in
Tipos
Resultado: 120.000 filas, suma 11.111.254.600, 6,7 segundos la primera carga y 3,7 al actualizar. Ventajas: sin macros, auditable (cada paso queda registrado), se actualiza agregando el archivo del mes nuevo a la carpeta. Límites: no formatea ni envía correos; está pensado para importar, limpiar y combinar datos. Lo explico a fondo, con el caso de las fechas y los valores en pesos, en el artículo sobre cómo importar un CSV correctamente.
Opción 2: VBA (macros en el escritorio)
VBA es el lenguaje de macros de Excel. Sirve para consolidar, pero su fuerte es lo que viene después: dar formato, crear PDF por vendedor, enviar correos. Esta macro, que lee cada archivo en una matriz y la escribe de un golpe, es la versión eficiente:
Sub Consolidar(ByVal carpeta As String)
Dim destino As Worksheet, archivo As String, wb As Workbook
Dim datos As Variant, fila As Long, n As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set destino = ThisWorkbook.Worksheets("Consolidado")
destino.Cells.Clear
destino.Range("A1:E1").Value = Array("Fecha", "Vendedor", "Producto", "Cantidad", "Valor")
fila = 2
archivo = Dir(carpeta & "\ventas-2026-*.xlsx")
Do While archivo <> ""
Set wb = Workbooks.Open(carpeta & "\" & archivo, ReadOnly:=True, UpdateLinks:=0)
With wb.Worksheets(1).UsedRange
n = .Rows.Count - 1
If n > 0 Then
datos = .Offset(1, 0).Resize(n, 5).Value2 ' sin encabezado
destino.Cells(fila, 1).Resize(n, 5).Value2 = datos
fila = fila + n
End If
End With
wb.Close SaveChanges:=False
archivo = Dir()
Loop
destino.Range("A:A").NumberFormat = "dd/mm/yyyy"
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Resultado: 120.000 filas, suma 11.111.254.600, 7,5 segundos. Ventajas: control total del proceso y de la presentación; hay mucho conocimiento en español. Límites: solo funciona en Excel de escritorio (no en Excel para la web), el archivo debe guardarse como .xlsm y Microsoft bloquea por defecto las macros de archivos descargados de internet, así que quien las reciba tiene que desbloquearlas; además, requiere disciplina de mantenimiento (comentarios, versiones). Para ver macros listas para usar, mira ¿Excel está muerto en la era de la IA? y las plantillas de la sección de Excel.
Opción 3: Office Scripts (Excel en la nube) y Power Automate
Office Scripts es el equivalente moderno de las macros, escrito en TypeScript, para Excel en la web (y versiones recientes de escritorio, según Microsoft). Un punto clave: un script trabaja sobre el libro en el que se ejecuta; para recorrer una carpeta de archivos se orquesta con Power Automate: un flujo lista los archivos, ejecuta el script de lectura en cada uno y luego un script de escritura en el libro consolidado. Este es el patrón (escrito a partir de la documentación; no lo ejecuté, porque requiere Excel en la web, OneDrive o SharePoint y Power Automate):
// Script 1 (se ejecuta en cada libro mensual): devuelve los datos sin el encabezado
function main(workbook: ExcelScript.Workbook): (string | number | boolean)[][] {
const hoja = workbook.getWorksheets()[0];
return hoja.getUsedRange().getValues().slice(1);
}
// Script 2 (se ejecuta en el libro consolidado): agrega un lote de filas
function main(workbook: ExcelScript.Workbook, filas: (string | number | boolean)[][]) {
const hoja = workbook.getWorksheet("Consolidado");
const siguiente = hoja.getUsedRange().getRowCount();
hoja.getRangeByIndexes(siguiente, 0, filas.length, filas[0].length).setValues(filas);
}
Ventajas: corre en la nube sin que tu computador esté encendido, se programa y se integra con Teams, correo y SharePoint. Límites que Microsoft documenta: las solicitudes y respuestas en Excel para la web se limitan a 5 MB, hay 1.600 llamadas por día y por usuario a la acción "Ejecutar script" y un tiempo máximo de 120 segundos en operaciones síncronas de Power Automate; usar Office Scripts con Power Automate requiere una licencia empresarial de Microsoft 365. Para 120.000 filas hay que enviar lotes. Es una solución para equipos que ya trabajan en SharePoint y Power Automate, no para una pyme con un computador y archivos locales.
Opción 4: Python (dentro y fuera de Excel)
Hay dos cosas distintas. Python en Excel (la función =PY()) corre en la nube de Microsoft, en un entorno aislado sin acceso a tus archivos locales ni a la red: los datos entran solo con la función xl() y no puedes instalar paquetes propios, solo los de la distribución curada de Anaconda. Por eso no puede consolidar una carpeta: sirve para analizar y graficar los datos que ya están en el libro (por ejemplo, la tabla que dejó Power Query). Y Python fuera de Excel (en tu computador o en un servidor) sí lee archivos y es la opción para grandes volúmenes y tareas programadas:
import glob
import pandas as pd
archivos = sorted(glob.glob(r"C:\RUTA\datos\ventas-2026-*.xlsx"))
df = pd.concat((pd.read_excel(a) for a in archivos), ignore_index=True)
print(len(df), int(df["Valor"].sum())) # 120000 11111254600
print(df.groupby("Vendedor")["Valor"].sum().sort_values(ascending=False))
df.to_excel("consolidado.xlsx", index=False)
Resultado: 120.000 filas, suma 11.111.254.600, 7,0 segundos. Ventajas: potente para análisis, estadística y volúmenes mayores; el código es corto y reutilizable. Límites: hay que instalar Python y pandas y mantener el entorno, y no es lo que la mayoría de oficinas tiene a la mano.

Matriz de decisión: ¿cuál elijo?
Este es el recurso aplicable. Responde estas preguntas en orden y quédate con la primera herramienta que resuelva tu caso:
| Si tu necesidad es… | Elige | Por qué |
|---|---|---|
| Traer, limpiar y combinar datos de archivos, carpetas o bases, y repetirlo cada mes | Power Query | Sin código en la hoja, auditable, se actualiza con un clic. |
| Dar formato, generar PDF, enviar correos o ejecutar un proceso paso a paso en el escritorio | VBA | Control total del entorno de escritorio y mucha documentación. |
| Que el proceso corra en la nube, sin tu computador, integrado con SharePoint, Teams o correo | Office Scripts + Power Automate | Orquestación en la nube, con sus límites y licencia empresarial. |
| Analizar, modelar o graficar datos ya cargados en el libro | Python en Excel (si tu plan lo incluye) | Pandas y gráficos sin salir de Excel, pero sin acceso a archivos locales. |
| Volúmenes muy grandes, tareas programadas o procesamiento fuera de Excel | Python fuera de Excel | Flexible y escalable, con mantenimiento propio. |
| Reglas fijas y repetibles, pero sin saber programar | Una plantilla ya hecha | La solución más rápida y barata si existe y encaja. |
Y cuatro preguntas de desempate: 1) ¿Quién lo mantendrá dentro de dos años? (si solo tú sabes cómo funciona, es un riesgo). 2) ¿Dónde corre? (escritorio, web, servidor). 3) ¿Qué licencia tienes? (algunas funciones requieren planes empresariales). 4) ¿Qué pasa si falla? (¿es auditable y reversible?, lo trato en el artículo sobre el riesgo oculto de Excel).
Colombia, Latinoamérica y el mundo: dónde importa cada opción
En el mundo corporativo, la tendencia es combinar: Power Query para los datos, Python o BI para el análisis y flujos en la nube para la orquestación. En Colombia y buena parte de Latinoamérica, la realidad de muchas pymes, oficinas contables y colegios es otra: Excel de escritorio sobre Windows, archivos locales, a veces sin licencia empresarial. Por eso, en mi experiencia, Power Query y VBA resuelven la mayoría de los casos reales: están en el Excel que ya tienes y existe mucha documentación en español. Office Scripts y Python en Excel brillan cuando hay licencias empresariales y trabajo en la nube. Para un contador, Power Query para conciliar y VBA para generar documentos; para un docente, Power Query para unir listas de cursos y plantillas con macros para boletines; para un gerente, lo más importante es que el proceso no dependa de una sola persona.
Herramientas para automatizar sin empezar de cero
Si el proceso que necesitas ya existe como macro probada, ahórrate meses de desarrollo. Enviar correos masivos con adjuntos y copias CC y CCO y Combinar correspondencia y generar PDF individuales son aplicaciones en VBA listas para usar desde tus listas de Excel; y si quieres adaptar la lógica a tu caso, la asesoría PLUS te acompaña. Para empezar con IA y macros gratuitas, descarga el kit Excel con IA, y aprende más en mi lista de Excel en YouTube.
Sigue leyendo: cómo automatizar tareas en Excel y reducir errores y agentes de IA con acceso a tus sistemas.
Preguntas frecuentes
¿VBA está obsoleto?
No. Sigue funcionando y es muy útil en Excel de escritorio. Pero no corre en Excel para la web ni en la nube, y Microsoft bloquea por defecto las macros de archivos descargados de internet. Para tareas en la nube existen Office Scripts y Power Automate.
¿Power Query reemplaza a las macros?
Para importar, limpiar y combinar datos, casi siempre sí y con ventajas. Para dar formato, enviar correos o generar documentos, no: ahí siguen las macros.
¿Puede Python en Excel leer archivos de mi computador?
No. Corre en la nube de Microsoft en un entorno aislado sin acceso a archivos locales; los datos entran con xl(). Para leer archivos usa Power Query o Python fuera de Excel.
¿Necesito saber programar para automatizar Excel?
No siempre. Power Query se maneja con una interfaz gráfica, y existen plantillas listas. Programar ayuda cuando el proceso es único o complejo.
¿Cuál es más rápido?
En mi prueba con 120.000 filas, los tiempos fueron muy parecidos (entre 6,7 y 7,5 segundos; Power Query baja a 3,7 al actualizar). La velocidad rara vez es el criterio: importa más dónde corre y quién lo mantiene.
Elige con la matriz. Anota una tarea repetitiva de tu trabajo, responde las cuatro preguntas de desempate y escoge la herramienta más simple que la resuelva. Si ya existe como plantilla, empieza por ahí: correos masivos con adjuntos o PDF individuales.
Para pensar
Cada vez que automatizamos una tarea, la escondemos: el proceso deja de ser visible y pasa a depender de quien lo construyó. Si la mejor automatización es la que nadie nota, ¿cómo evitamos que se convierta en una caja negra que nadie entiende, y quién debería responder cuando falle: quien la programó, quien la usa o quien decidió no documentarla? ¿Y vale la pena aprender la herramienta de moda o la que seguirá funcionando cuando la moda cambie?
¿Te sirvió este artículo?
Reacciona y compártelo con alguien a quien le pueda servir.
- Me gusta 0
- Útil 0
- Aplausos 0
- Me encanta 0
- Me hizo pensar 0
¿Prefieres tenerlo listo?
Más guías en Excel y automatización de oficina