Extracción de Datos desde Excel con Power Automate
Resumen
La extracción de datos en Power Automate es una habilidad fundamental para automatizar procesos que requieren manipulación de información. Dominar esta técnica te permitirá crear flujos de trabajo más sofisticados y eficientes, especialmente cuando necesitas procesar datos de Excel para alimentar otros sistemas o tomar decisiones automatizadas.
¿Cómo extraer datos de Excel con Power Automate?
Hasta ahora, nuestro robot ha manipulado archivos, pero el siguiente paso crucial es capturar datos específicos. Para lograr esto, necesitamos implementar un proceso que nos permita identificar y extraer información relevante de nuestro archivo Excel.
¿Cómo identificar el último registro en Excel?
Para trabajar con el último registro de datos en un archivo Excel, debemos seguir estos pasos:
Identificar la primera fila libre de una columna específica.
Restar 1 a ese valor para obtener la última fila con datos.
Para implementar esto en Power Automate:
Utilizamos la acción "Obtener la primera fila libre de un archivo Excel".
Especificamos la hoja de cálculo y la columna de referencia.
Creamos una variable para almacenar el número de la última fila con datos:
Usamos la acción "Establecer variable" (recomendable usar camelCase).
Nombramos la variable (por ejemplo, "ultimoRegistro").
Asignamos el valor de la fila libre menos 1: %firstRowAndColumn - 1%.
Este enfoque nos permite identificar dinámicamente dónde termina nuestra información, independientemente de cuántos registros tenga el archivo.
¿Cómo extraer la información de una fila específica?
Una vez identificada la última fila, necesitamos extraer su contenido:
Utilizamos la acción "Leer en hoja de cálculo de Excel".
Configuramos para recuperar valores de un rango de celdas.
Los reemplazamos por alternativas seguras (como comillas simples).
Por ejemplo:
Texto para analizar: variable con el código extraído
Texto para buscar: "
Reemplazar con: '
Guardar en: la misma variable original
Este proceso es especialmente importante para campos que contienen código o texto con formato especial, ya que pueden contener caracteres que generan conflictos en consultas SQL o llamadas a API.
¿Cómo verificar que la extracción fue exitosa?
Para comprobar que nuestras variables contienen la información correcta:
Utilizamos la acción "Mostrar mensaje".
Incluimos todas las variables extraídas en el mensaje.
Ejecutamos el flujo y verificamos que los datos mostrados coincidan con lo esperado.
Este paso de verificación es crucial durante el desarrollo y depuración de nuestros flujos automatizados, ya que nos permite confirmar que estamos capturando correctamente la información antes de proceder con acciones posteriores.
La extracción de datos de Excel mediante Power Automate es una técnica poderosa que te permitirá construir automatizaciones más complejas y útiles. Analizar cuidadosamente la estructura de tus archivos Excel te facilitará enormemente este proceso, permitiéndote identificar con precisión dónde se encuentra la información que necesitas. ¿Has utilizado Power Automate para extraer datos de Excel? Comparte tu experiencia en los comentarios.
Para procesar archivos muy grandes con miles de líneas utilizando Power Automate, es crucial asegurarte de que la acción de leer desde Excel esté optimizada. Power Automate puede manejar grandes volúmenes de datos, pero es recomendable segmentar los datos en bloques más pequeños, si es posible. Esto ayuda a reducir el tiempo de ejecución y los riesgos de errores.
Además, si el archivo contiene muchas filas vacías, es útil filtrar esos registros antes de iniciar el procesamiento. Considera usar condiciones dentro de tu flujo para manejar excepciones o errores en el procesamiento.
"Activa Pagination y fija Top Count. Cada llamada devuelve un lote (256 filas por defecto, ajustable) y usa un skip-token para solicitar el siguiente, por lo que sólo ese lote vive en memoria."
"En Settings → Content transfer marca Allow chunking. El conector divide el contenido en bloques (5 – 50 MB) y soporta hasta 1 GB por mensaje, superando el límite estándar de 100 MB"
Hay que tener en cuenta que varias funcionalidades como "GET FILE" y otras más son de uso exclusivo para usuarios premium, lo que quiere decir que usuarios que solo estan aprendiendo o empezando a usar la plataforma no podrán hacer uso de esas funciones, sería clave que hicieran un ruta alterna para hacer el mismo proceso pero sin recurrir a esas funciones premium.
¿Por qué reemplazar comillas antes de guardar datos?
Las bases de datos y las APIs (como la de ChatGPT) utilizan las comillas dobles (" ") para entender dónde empieza y termina un bloque de texto o una instrucción en código JSON. Si el texto que extrajiste de Excel ya contiene comillas dobles, el sistema receptor se confundirá, pensará que la instrucción terminó antes de tiempo y el flujo colapsará. Es como intentar usar una llave maestra en la cerradura equivocada. Para evitar este choque de caracteres, utilizamos la acción de reemplazar texto para cambiar todas las comillas dobles por comillas simples (' '). De esta manera, conservas la integridad del mensaje original pero lo "desinfectas" para que las bases de datos y las inteligencias artificiales lo procesen sin romper la estructura de la solicitud.
💡 Idea 8 Antes de avanzar al siguiente paso, usá la acción "Mostrar mensaje" para imprimir todas las variables en pantalla y verificar que la extracción fue un éxito.
💡 Idea 7 Para limpiar estos caracteres problemáticos, usá la acción "Reemplazar texto" y sobrescribí la misma variable original para mantener tu flujo optimizado.
💡 Idea 6 ⭐⭐⭐⭐⭐ Si extraés fragmentos de código o texto complejo, es obligatorio sanitizar los datos reemplazando comillas dobles por simples para no romper futuras consultas SQL o llamadas a APIs.
💡 Idea 5 Para extraer un dato específico, tenés que usar notación de coordenadas: excel_data[0][3] lee la primera fila de tu rango y la cuarta columna (índice 3).
💡 Idea 4 ¡Cuidado con los índices! A diferencia de Excel que cuenta desde el 1, Power Automate empieza a indexar las columnas desde el 0.
💡 Idea 3 Con la fila identificada, usá la acción "Leer en hoja de cálculo de Excel" definiendo el rango exacto, por ejemplo: A%ultimoRegistro%:I%ultimoRegistro%.
💡 Idea 2 ⭐⭐⭐⭐⭐ La fórmula clave: restale 1 a esa fila libre y guardalo en una variable (%firstRowAndColumn - 1%) para obtener siempre la última fila con datos dinámicamente.
💡 Idea 1 Para que tu bot lea el último registro ingresado, el primer paso es identificar la primera fila libre de tu columna de referencia.
📘📗📙 POWER AUTOMATE + EXCEL
━━━━━━━━━━━━━━━━━━
🎯 OBJETIVO GENERAL
━━━━━━━━━━━━━━━━━━
🔁 Automatizar la extracción de datos desde Excel para:
✔ Alimentar otros sistemas
✔ Tomar decisiones automáticas
✔ Crear flujos dinámicos y robustos
🔑 Clave del proceso: identificar los datos correctos y tratarlos de forma segura.
━━━━━━━━━━━━━━━━━━
📌 PASO 1 · IDENTIFICAR EL ÚLTIMO REGISTRO
━━━━━━━━━━━━━━━━━━
🔍 ¿Qué se necesita?
Saber cuál es la última fila con datos en la hoja.
🧠 Lógica utilizada:
➡ Se obtiene la primera fila vacía de una columna
➡ A ese número se le resta 1
➡ El resultado es la última fila ocupada
💾 Implementación:
🔹 Guardar el valor en la variable ultimoRegistro
🔹 Usar la acción Establecer variable
⭐ Ventaja: el flujo se adapta automáticamente al tamaño del archivo.
━━━━━━━━━━━━━━━━━━
📌 PASO 2 · EXTRAER UNA FILA ESPECÍFICA
━━━━━━━━━━━━━━━━━━
📄 Acción principal:
▶ Leer en hoja de cálculo de Excel
📐 Rango dinámico:
🔹 Se construye usando ultimoRegistro
🔹 Ejemplo:
➡ A%ultimoRegistro%:I%ultimoRegistro%
📦 Resultado:
📥 Los datos se almacenan en la variable excel_data
━━━━━━━━━━━━━━━━━━
📌 PASO 3 · ACCEDER Y MANIPULAR LOS DATOS
━━━━━━━━━━━━━━━━━━
⚠ Regla importante:
🔢 Power Automate empieza a contar columnas desde 0
📊 Ejemplo de índices:
🔹 Columna 1 → índice 0
🔹 Columna 2 → índice 1
🔹 Columna 4 → índice 3
🔑 Acceso a un valor:
▶ Se crean variables individuales
▶ Se usan índices para seleccionar columnas
✉ Ejemplo práctico:
📧 El correo está en la columna 4
➡ Se obtiene con excel_data[0][3]
➡ Se guarda en la variable emailForm
━━━━━━━━━━━━━━━━━━
📌 PASO 4 · SANITIZAR LOS DATOS
━━━━━━━━━━━━━━━━━━
🧼 ¿Por qué hacerlo?
🚫 Evita errores al usar los datos en:
✔ Bases de datos
✔ APIs
✔ Sistemas externos
🔄 Acción recomendada:
▶ Reemplazar texto
🛠 Ejemplo:
❌ " (comilla doble)
✅ ' (comilla simple)
🔁 Especialmente útil en campos con código
━━━━━━━━━━━━━━━━━━
📌 PASO 5 · VERIFICAR LA EXTRACCIÓN
━━━━━━━━━━━━━━━━━━
🔍 Objetivo:
Confirmar que los datos se extrajeron correctamente.
🖥 Cómo comprobarlo:
▶ Usar la acción Mostrar mensaje
▶ Visualizar el contenido de las variables
🐞 Momento clave:
✔ Desarrollo del flujo
✔ Depuración y pruebas
Es común que al trabajar con variables en Power Automate Desktop, se presente el problema de que las expresiones no se evalúan como se espera. Aquí hay algunas posibles soluciones:
Verifica el formato de la variable: Asegúrate de que ExcelData sea efectivamente un DataTable y de que esté correctamente inicializado antes de intentar acceder a sus propiedades.
Uso de la sintaxis correcta: Intenta acceder a los elementos de la tabla usando la expresión de la siguiente manera: ExcelData.Rows[0]["Column3"]. Asegúrate de que la columna y el índice existan.
Ejecuta el flujo desde el principio: A veces, si el flujo no se ha ejecutado completamente desde su inicio, las variables pueden no estar actualizadas.
Depuración: Añade acciones de "Mostrar mensaje" en diferentes puntos del flujo para verificar el contenido de ExcelData antes de intentar acceder a sus propiedades.
Si después de estas verificaciones el problema persiste, consulta la documentación de Power Automate o los foros de la comunidad para verificar si hay errores conocidos relacionados.
Power Automate Desktop no evalúa expresiones: muestra literalmente el nombre de la variable.
Hola,
Estoy trabajando con Power Automate Desktop y tengo una variable de tipo DataTable llamada ExcelData que contiene los datos leídos desde un Excel. El problema es que al intentar acceder a un valor de la tabla o a propiedades como ExcelData.RowsCount, el sistema no evalúa la expresión.
Por ejemplo, en una acción de "Mostrar mensaje", si escribo:
perlCopiarEditar%ExcelData.RowsCount%
...Power Automate me muestra literalmente ExcelData.RowsCount en lugar del valor numérico esperado.
También he intentado establecer variables con expresiones como:
cssCopiarEditarExcelData.Rows[0]["Column3"]
usando el botón fx, pero el resultado sigue siendo una cadena literal o un error. He probado tanto con nombres de columna como "Column3" como con índices, y el comportamiento es el mismo.
Ya he confirmado que:
La tabla tiene datos.
La estructura del DataTable es correcta.
Uso el botón fx o {x} para activar el modo expresión.
El flujo no tiene errores previos.
¿Alguien sabe por qué Power Automate Desktop no interpreta las expresiones dinámicas y cómo solucionarlo?
¿Hay algún bug conocido o configuración que deba revisar?
Gracias de antemano.
Para nosotros quienes despuès de aprender a usar la opciòn que se abra la pàgina web para ver el formulario y lo hacen un par de veces se cansan, pueden desactivar la opciòn de abrir el navegador web. Con la segunda tarea (realmente tercera) de obtener la informaciòn del archivo, se logra perfectamente el ejercicio.