Excel con Python: guía completa para dominar ambos

  • La integración nativa de Python en Excel permite usar código y DataFrames directamente en celdas mediante =PY y xl(), controlando tipos de salida y recálculo.
  • Las librerías pandas y openpyxl facilitan automatizar lectura, escritura, limpieza, análisis y formato avanzado de libros de Excel desde scripts externos.
  • Las herramientas basadas en IA como Excelmatic permiten describir en lenguaje natural tareas complejas de Excel y obtener informes y gráficos sin escribir código.
  • Combinar Python en Excel, automatización programática y soluciones con IA ofrece un ecosistema flexible que se adapta tanto a perfiles técnicos como de negocio.

cómo usar excel con python

Si trabajas a diario con hojas de cálculo y datos, mezclar Excel con Python es de las combinaciones más potentes que puedes incorporar a tu flujo de trabajo. No solo puedes automatizar tareas repetitivas, también puedes hacer análisis avanzados, limpieza masiva de datos y generar informes profesionales sin dejar de lado tu Excel de toda la vida.

En esta guía completa vas a ver, paso a paso, cómo usar Python con Excel en distintos escenarios: desde la integración nativa de Python en Excel (la función =PY), hasta la automatización clásica con librerías como pandas y openpyxl, pasando por herramientas con IA tipo Excelmatic. Iremos desde la configuración del entorno hasta ejemplos muy prácticos de análisis, limpieza y generación de informes para que puedas aplicar todo esto en tus propios proyectos.

Python dentro de Excel: cómo funciona la integración nativa

Microsoft ha incorporado Python directamente en Excel, de forma que ya no necesitas macros extrañas ni complementos de terceros para ejecutar código. Puedes escribir instrucciones Python en celdas, combinarlo con rangos y decidir si el resultado se devuelve como valor de Excel o como objeto Python.

Activar Python en una celda

Para empezar a usar esta integración, el primer paso es indicar a Excel que una celda va a contener código Python. Tienes dos formas principales de habilitar fórmulas en Python en una celda:

  • Seleccionar una celda, ir a la pestaña Fórmulas de la cinta y pulsar en Insertar Python.
  • Escribir directamente la función =PY( en la celda, seleccionarla en el autocompletado y a continuación incluir el código.

Una vez lo haces, esa celda pasa a ser una “celda Python” y verás un icono PY tanto en la propia celda como en la barra de fórmulas cuando esté seleccionada. Desde ahí puedes escribir varias líneas de código y aprovechar la edición estilo editor (saltos de línea con Enter, ampliar la barra para ver más código, etc.).

Trabajar a gusto en la barra de fórmulas

La barra de fórmulas se convierte prácticamente en un pequeño editor, con un comportamiento mucho más cómodo para escribir bloques de código Python. Puedes pulsar en el icono de flecha hacia abajo para expandirla y ver varias líneas, o usar el atajo Ctrl+Mayús+U para abrirla y cerrarla rápidamente sin tocar el ratón.

Relleno rápido (Flash Fill) en Excel
Artículo relacionado:
Relleno rápido (Flash Fill) en Excel: guía completa y trucos

Referenciar celdas y rangos con la función xl()

El puente entre el mundo de Excel y el de Python en esta integración es la función personalizada xl(), que te permite acceder a rangos, tablas, nombres definidos y consultas:

  • Para una celda concreta, por ejemplo A1, usarías xl(«A1»).
  • Para un rango como B1:C4, usarías xl(«B1:C4»).
  • Para una tabla con nombre, por ejemplo MyTable, podrías usar xl(«MyTable», headers=True) para que se incluya toda la tabla y se gestionen correctamente los encabezados.

De esta manera puedes, por ejemplo, hacer en una celda Python algo del estilo xl(«A1») + xl(«B1») y que el resultado numérico se devuelva en la propia hoja, igual que si fuera cualquier otra fórmula de Excel.

Tipos de salida: valor de Excel u objeto Python

Una de las decisiones importantes al usar Python dentro de Excel es cómo quieres que se devuelva el resultado. Desde el menú de salida en la barra de fórmulas puedes elegir si el cálculo se convierte en un valor clásico de Excel (número, texto, etc.) o si prefieres que se muestre como un objeto Python.

Cuando eliges devolverlo como valor, la celda se comporta como cualquier fórmula normal: ves el número, el texto o lo que se haya calculado. En cambio, si seleccionas devolverlo como objeto Python, la celda muestra un icono de “tarjeta”; al abrirlo puedes ver una vista previa del objeto, lo que es muy útil si trabajas con elementos complejos como listas largas o, sobre todo, DataFrames.

Los DataFrames se convierten en una de las estructuras estrella al usar Python en Excel, porque concentran tablas enteras con columnas, tipos de datos y operaciones típicas de análisis. Esta vista de tarjeta te permite inspeccionar rápidamente el contenido sin volcarlo todo en la hoja.

Importar datos externos para usar con Python en Excel

Un punto clave de esta integración es que Python solo trabaja con datos que ya estén en Excel o lleguen a través de Power Query. Es decir, si quieres usar datos externos (CSV, bases de datos, servicios web…), primero tendrás que traerlos a la hoja o al modelo mediante la opción de Obtener y transformar (Power Query).

La idea es que importes los datos con Power Query, los dejes listos como tabla o rango en Excel, y a partir de ahí apliques tu lógica en Python con xl(), combinando lo mejor de ambos mundos: conectores y transformación de Power Query más análisis fino con Python.

Orden de cálculo y dependencias

El modo en que se recalcula Python dentro de Excel tiene matices importantes. A nivel de código dentro de una misma celda, las instrucciones se ejecutan de arriba a abajo, igual que en un script tradicional. Pero cuando hablamos de varias celdas Python en la hoja, Excel sigue su orden habitual de cálculo por filas: recorre de la columna A hasta la XFD en la primera fila, luego baja a la siguiente, y así sucesivamente.

Eso significa que si defines una variable en una celda Python y luego la usas en otra, debes respetar ese orden: la celda que define la variable tiene que calcularse antes en el orden de lectura por filas. En la práctica, conviene organizar tus fórmulas Python de izquierda a derecha y de arriba abajo de forma coherente, para evitar referencias a variables aún no definidas.

Controlar el recálculo: automático, parcial y manual

Cuando cambias un valor del que dependen celdas Python, Excel puede disparar recálculo automático de todas ellas, lo que en modelos grandes puede hacer que todo vaya más lento de la cuenta. Para evitarlo, puedes ajustar las Opciones de cálculo en la pestaña Fórmulas y usar:

  • Modo de cálculo parcial, donde se limita qué partes se recalculan automáticamente.
  • Modo de cálculo manual, donde tú decides cuándo recalcular todo.

En estos modos, puedes activar el recálculo manualmente con F9, usando Fórmulas > Calcular ahora, o desde el aviso de error que aparece en celdas con valor obsoleto (tachadas), eligiendo de nuevo Calcular ahora. Es un truco muy útil cuando estás desarrollando fórmulas complejas y no quieres que cada pequeño cambio dispare cálculos pesados.

Errores típicos en Python para Excel

Al usar Python dentro de Excel pueden aparecer códigos de error específicos como #PYTHON!, #BUSY! o #CONNECT!. Cada uno indica un tipo de problema diferente: errores de ejecución en el código Python, procesos aún en curso o conflictos de conexión con el entorno Python.

Conviene familiarizarse con estos códigos y con la documentación de solución de problemas de Python en Excel para entender, por ejemplo, si el error viene de una librería no disponible, de un timeout, de un bucle que no termina o de una referencia de rango mal construida con xl().

El otro camino: automatizar Excel con Python fuera de Excel

aprende a usar python en excel

La integración nativa está muy bien para análisis dentro del propio archivo, pero hay muchas situaciones en las que interesa automatizar Excel desde fuera: procesos en servidor, trabajos programados, canalizaciones de datos o aplicaciones completas. Ahí es donde entran en juego librerías como openpyxl, pandas y soluciones más modernas basadas en IA.

Dos enfoques principales de automatización

Cuando hablamos de automatizar Excel desde Python, nos encontramos básicamente con dos grandes enfoques que se complementan:

  1. El enfoque programático clásico con openpyxl y pandas, donde controlas al detalle lectura, escritura, formato, fórmulas y gráficos mediante código. Es perfecto si eres desarrollador o te mueves cómodo en scripts, y necesitas automatización robusta y repetible.
  2. El enfoque impulsado por IA con herramientas tipo Excelmatic, donde subes archivos de Excel, describes en lenguaje natural lo que quieres (limpiezas, informes, gráficos, fórmulas…) y la herramienta hace el trabajo sin que tengas que picar una sola línea de código.

Vamos a desgranarlos con calma porque, según tu perfil, te interesará más uno u otro… o combinar los dos.

Cómo insertar archivos en documentos de Office como objetos incrustados
Artículo relacionado:
Cómo insertar archivos en documentos de Office como objetos incrustados

Automatización “clásica” con openpyxl y pandas

Si vienes del mundo del desarrollo o de la ciencia de datos, lo más natural es tirar de librerías especializadas. Las piezas clave para trabajar con archivos .xlsx y .xlsm suelen ser pandas y openpyxl, a las que se pueden sumar complementos como numpy o xlsxwriter en función de lo que necesites.

Instalación y entorno recomendados

Para evitar líos de versiones y conflictos entre librerías, lo más sensato es montar un entorno virtual y un buen IDE y dentro instalar las dependencias necesarias. Un flujo típico sería:

  • Verificar que tienes Python 3.8 o superior instalado (comando python –version o python3 –version).
  • Crear un entorno, por ejemplo python -m venv excel_automation, y activarlo.
  • Instalar paquetes clave como pandas, openpyxl, numpy, xlsxwriter con pip y, si quieres ir sobre seguro, fijar versiones concretas.

Muchos equipos preparan incluso un script de verificación que comprueba versiones y presencia de paquetes para asegurarse de que todos los miembros del proyecto tienen el mismo entorno de trabajo. Es una buena práctica si vas en serio con la automatización.

pandas y openpyxl: qué hace cada uno

Aunque se usan juntos con frecuencia, cada librería tiene su enfoque. Con pandas trabajas principalmente con DataFrames: estructuras tabulares orientadas a análisis, filtrados, agregaciones y transformaciones de datos. Con openpyxl manipulas el libro de Excel “en crudo”: hojas, celdas, estilos, gráficos, estructuras, plantillas…

En un flujo realista, lo habitual es usar pandas para leer y procesar los datos y luego, cuando necesitas un control fino sobre aspecto y estructura del .xlsx final, pasar el resultado a openpyxl o a otro motor de escritura y rematar el formato.

Leer y escribir Excel con pandas

La función reina para leer archivos es pd.read_excel(), que te permite cargar desde un simple .xlsx hasta libros con varias hojas, elegir solo algunas columnas, saltarte filas, etc. Por ejemplo:

Leer un archivo completo y mostrar las primeras filas:

import pandas as pd
df = pd.read_excel("ejemplo_excel.xlsx")
print(df.head())

Si solo te interesan determinadas hojas o columnas, puedes pasar sheet_name o usecols para limitar lo que se carga, lo cual mejora rendimiento y reduce consumo de memoria, algo clave cuando trabajas con ficheros grandes.

Una vez transformados los datos (filtrados, agrupados, añadidas columnas calculadas…), puedes guardarlos de vuelta a Excel con df.to_excel(), eligiendo el nombre del archivo y si quieres o no incluir el índice. Es una forma muy directa de construir informes y tablas limpias a partir de datos crudos.

Automatizar la consolidación de múltiples archivos

Un caso típico de la vida real es tener decenas de archivos de Excel con la misma estructura (por ejemplo, reportes por tienda, mes o departamento) y querer fusionarlos todos en un solo libro para analizarlos. Con pandas, el patrón es siempre muy parecido: localizar los archivos con glob, leer cada uno con read_excel, concatenar y guardar.

Este enfoque te permite montar en pocos minutos procesos de integración de datos que serían un infierno de copiar-pegar manual en Excel, y además es repetible y escalable para cuando entren nuevos ficheros.

Manipulación avanzada de libros con openpyxl

Cuando lo que necesitas no es solo datos, sino control fino del libro de Excel (estilos, bordes, formato condicional, fórmulas, gráficos…), entra en juego openpyxl. Algunas de sus capacidades principales son:

  • Abrir libros existentes con load_workbook o crear nuevos con Workbook().
  • Acceder a hojas activas o por nombre, insertar y borrar filas/columnas, cambiar títulos de hojas, congelar paneles, etc.
  • Leer y escribir celdas tanto por notación tipo «A1» como por fila/columna (sheet.cell(row=1, column=1)).
  • Definir estilos personalizados: fuentes en negrita, colores de fondo, alineación, bordes, formatos numéricos… usando objetos como Font, PatternFill, Alignment o NamedStyle.
  • Crear y colocar gráficos (barras, líneas, etc.) a partir de rangos de datos definidos con Reference, y añadirlos a la hoja con sheet.add_chart().
  • Insertar fórmulas de Excel escribiendo directamente la cadena (por ejemplo, «=SUM(A1:A2)») en la celda correspondiente.

Ten en cuenta que openpyxl no calcula las fórmulas, solo las escribe en el archivo. El cálculo real lo hace Excel cuando abres el libro. Para muchos procesos de reporting esto es perfecto, porque te aseguras de que el usuario final puede seguir editando las fórmulas y recalculando como quiera.

Ejemplos realistas: generación de informes y limpieza de datos

Un patrón de uso muy potente es generar primero datos de muestra y entornos de prueba con scripts de Python (por ejemplo, varios archivos de ventas con fechas, categorías, importes y comerciales, y otro con datos “sucios” de clientes). Después ejecutas otro script que:

  • Verifica que están todos los archivos necesarios.
  • Combina los Excel de ventas en un único DataFrame.
  • Calcula resúmenes mensuales, por categoría, estadísticas y métricas clave.
  • Limpia el fichero “desordenado” de clientes eliminando duplicados, corrigiendo formatos, estandarizando textos y arreglando correos y fechas.
  • Genera un libro de resultados con varias hojas: resumen mensual, análisis por categoría, clientes limpios, muestra de datos y tabla de estadísticas.

Este tipo de script convierte lo que antes era varias horas de trabajo manual en Excel en una ejecución de segundos. Y si añades manejo de errores (comprobaciones de permisos, archivos abiertos, versiones de librerías) te queda un flujo robusto para ejecutar en local o programar en un servidor.

Enfoque moderno: automatizar Excel con IA (Excelmatic y similares)

No todo el mundo quiere o puede aprender a programar. Para profesionales de negocio, marketing, ventas u operaciones, sentarse a escribir código con pandas u openpyxl puede ser directamente un muro de entrada. Ahí brillan las herramientas basadas en IA como Excelmatic.

Qué aporta una herramienta de IA sobre Excel

El planteamiento es radicalmente distinto: en lugar de pensar en términos de funciones, bucles y DataFrames, te limitas a describir en lenguaje natural lo que quieres hacer. El flujo acostumbrado es algo como:

  1. Subir uno o varios archivos de Excel a la herramienta.
  2. Escribir peticiones del tipo: “Limpia los datos, quita duplicados, corrige los emails y crea una tabla con ventas totales por mes y categoría”.
  3. Revisar la salida: tablas procesadas, gráficos, nuevas columnas, fórmulas añadidas… y descargar el nuevo Excel.

Bajo el capó, el sistema traduce tu intención a operaciones técnicas: llamadas a librerías de análisis, reglas de limpieza, formato, creación de gráficos, etc. Pero tú no te preocupas de nada de eso; solo te centras en lo que quieres conseguir a nivel de negocio.

Tareas típicas que resuelve muy bien la IA

Este tipo de herramientas destaca en:

  • Limpieza de datos rápida: espacios extra, mayúsculas/minúsculas inconsistentes, formatos de fecha mezclados, categorías mal escritas, campos vacíos, etc.
  • Creación de informes ad hoc: pides “un resumen de ventas trimestrales por región con gráfico de barras” y te genera tablas y visualizaciones en segundos.
  • Aplicar formato y estilos coherentes: cabeceras con color corporativo, fuente homogénea, formatos de número y fecha adecuados sin navegar por mil menús.
  • Generar y rellenar fórmulas sin necesidad de conocer la sintaxis exacta: “Calcular margen bruto en la columna D a partir de B y C” y listo.

Para equipos no técnicos que necesitan informes a toda velocidad, la IA se convierte en el atajo perfecto para pasar de datos crudos a insights accionables sin pasar por desarrollo.

¿Y qué pasa con el control y la reproducibilidad?

La contrapartida es que con una herramienta de IA tienes menos control fino que con un script de Python. Si necesitas un flujo que se ejecute exactamente igual todas las noches en un servidor, lo más sólido sigue siendo un script programático. La IA encaja mejor en tareas exploratorias, análisis puntuales, informes que cambian cada dos por tres y usuarios que prefieren hablar en lenguaje natural antes que editar código.

Comparativa: ¿cuándo usar cada enfoque?

Elegir entre Python dentro de Excel, scripts externos o soluciones con IA no es un todo o nada; lo sensato es combinar según el contexto y tu perfil. A grandes rasgos, podríamos decir:

  • Python nativo en Excel es ideal si ya eres usuario fuerte de Excel, quieres seguir trabajando en la misma interfaz y necesitas análisis más avanzados (DataFrames, lógica compleja) sin salir del archivo. Perfecto para dashboards avanzados, prototipos analíticos o modelos que quieras compartir con gente que vive en Excel.
  • pandas + openpyxl son tu opción si necesitas automatización robusta, integración con otros sistemas, ejecución en servidor, programación de tareas o pipelines complejos. Es el terreno natural de desarrolladores y científicos de datos.
  • Herramientas de IA tipo Excelmatic encajan con perfiles de negocio que buscan resultados rápidos sin pelearse con el código, o con equipos que quieren validar ideas y generar informes sobre la marcha de la forma más natural posible.

De hecho, muchos proyectos combinan los tres mundos: se generan datos con scripts en servidor, se pulen informes finales con openpyxl, se exploran resultados con Python en Excel y se preparan vistas específicas para managers usando una herramienta con IA que les permita jugar con los datos a su ritmo.

Mejores IDEs para Windows 11
Artículo relacionado:
IDE y editores imprescindibles para programar en Windows 11

Dominar cómo se conectan Excel y Python, tanto desde la integración nativa con =PY y xl(), como desde librerías como pandas y openpyxl o herramientas de IA, te da un abanico enorme de posibilidades: desde limpiar miles de filas en un clic hasta construir informes de múltiples hojas, gráficos y KPIs listos para presentar, pasando por automatizaciones que se ejecutan solas cada noche; cuanto mejor sepas combinar estos enfoques, más fácil te resultará pasar de hojas de cálculo caóticas a flujos de trabajo sólidos, rápidos y, sobre todo, mucho menos tediosos. Comparte esta guía de información y más usuarios conocerán del tema.


Add as preferred source