Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
Garabujo7
Alteryx
Alteryx

Si eres una de las 750 millones de personas de personas que usan Excel en el mundo, este artículo te interesará.

 

 

 

Garabujo7_1-1599265009032.jpeg

 

 

 

Cuando lo que necesitas es trabajar con varios archivos de Excel, o múltiples archivos que tienen diferentes hojas separadas, leer un rango o si tienes muchos archivos en un directorio y quieres leer sólo el más reciente; estás cubierto con este artículo.

 

 

Cuando lo que necesitas es trabajar con varios archivos de Excel, o múltiples archivos que tienen diferentes hojas separadas, leer un rango o si tienes muchos archivos en un directorio y quieres leer sólo el más reciente; estás cubierto con este artículo.

 

Leer varios archivos usando un comodín

 

Si tienes varios archivos de Excel y los quieres leer sin tener que usar un bloque Datos de entrada para cada uno, lo puedes hacer usando el comodín * que significa: cualquier cosa.

 

 

 

Garabujo7_2-1599265052669.png

 

 

 

En la imagen leerá todos los archivos que comiencen con e y tengan la extensión xslx.

 

Se puede combinar:

 

Para leer todo el contenido de una carpeta, cualquier nombre de archivo de cualquier tipo (Excel, Word, csv): *.*

 

Leer todos los archivos de un solo tipo se agrega la extensión después del punto: *.xlsx o *.csv o *.doc

 

Si lo que se necesita es abrir los archivos que tengan algunas letras o números: abril*.xlsx

 

 

 

Garabujo7_3-1599265052682.png

 

 

 

De esta forma es posible abrir varios archivos al mismo tiempo usando solamente un bloque analítico Datos de Entrada.

 

 

 

Garabujo7_4-1599265052685.png

 

 

 

 

Para diferenciar los archivos que se abrieron se puede modificar el parámetro 5 del Bloque Datos de entrada. Se puede elegir entre agregar el nombre de archivo como un campo que lo incluya o toda la ruta donde se encuentre.

 

 

 

Garabujo7_5-1599265052689.png

 

 

 

* La restricción para utilizar esta funcionalidad es que los archivos para abrir deben tener la misma plantilla, nombre, número de columnas y orden.

 

En caso de que no coincidan, el bloque analítico mostrará un error.

 

 

 

Garabujo7_6-1599265052692.png

 

 

 

 

Este error indica que los archivos tienen formatos diferentes.

 

 

Leer el archivo más reciente

 

 

Cuando comenzamos a sistematizar un proceso de negocio, una de las principales actividades que requieren ser automatizadas es la lectura de archivos, sobre todo cuando usamos exceles o separados por comas.

 

Lo que sucede típicamente es que mes a mes se crea un archivo nuevo y se guarda en una carpeta; para leer siempre el más actual sin intervención del usuario es posible revisar los atributos de cada uno y utilizar la fecha de creación que nos entrega el bloque Directorio.

 

El bloque analítico directorio nos permite leer todos los archivos de una carpeta incluyendo subcarpetas.

 

 

 

Garabujo7_7-1599265052697.png

 

 

 

Tomando la fecha en que se creo y seleccionando siempre la más reciente podremos leer de forma automática el último archivo para alimentar nuestro flujo de trabajo.

 

 

 

Garabujo7_8-1599265052707.png

 

 

 

Ordenamos por fecha de creación -> descendente.

 

 

 

Garabujo7_9-1599265052709.png

 

 

 

Usamos el bloque Muestra para que sólo nos dé el primer registro, que será el de creación más reciente.

 

 

 

Garabujo7_10-1599265052712.png

 

 

Agregamos una Entrada dinámica que nos ayuda a leer el contenido del archivo.

 

 

 

Garabujo7_11-1599265052715.png

 

 

 

 

Si nunca has usado la Entrada dinámica, es muy versátil. Puedes aprender más de ella en nuestra serie de artículos Dominio de bloques analíticos: entrada dinámica.

 

Para agregar el nombre del archivo como referencia en un campo, puedes usar una Fórmula y colocar la expresión FileGetFileName para incluirlo.

 

 

 

Garabujo7_12-1599265052718.png

 

 

 

 

Garabujo7_13-1599265052723.png

 

 

 

 

Leer un rango dentro de un Excel

 

Para leer solamente un rango dentro de un archivo, al abrirlo hay que seleccionar el rango y eso es todo.

 

 

 

Garabujo7_14-1599265052728.png

 

 

 

El rango tiene el mismo formato que en Excel, columna-fila inicial y columna-fila final.

 

 

 

Garabujo7_15-1599265052730.png

 

 

 

Leer un rango nombrado de Excel

 

 

Si el archivo de Excel tiene un rango con nombre, en Alteryx es muy sencillo de leerlo, solamente hay que escoger la opción leer rango nombrado y los rangos con nombre aparecerán automáticamente.

 

 

 

Garabujo7_16-1599265052736.png

 

 

 

Cuando abrimos el archivo veremos sólo el contenido del rango seleccionado.

 

 

 

Garabujo7_17-1599265052744.png

 

 

 

 

Leer diferentes hojas en un mismo archivo

 

 

Para leer diferentes hojas dentro de un archivo de Excel lo podemos hacer mediante el bloque analítico Datos de entrada en combinación con una Entrada Dinámica.

 

En el bloque Datos de entrada hay que seleccionar la opción Importar solo la lista de nombres de hojas.

 

 

 

 

Garabujo7_18-1599265052749.png

 

 

 

 

Luego colocas una Entrada dinámica que lea el contenido de las hojas.

 

 

 

 

Garabujo7_19-1599265052752.png

 

 

 

Para obtener el nombre de cada hoja y poder tener la referencia como un campo, usamos una expresión regular.

 

 

 

Garabujo7_20-1599265052759.png

 

 

 

 

Las expresiones regulares nos permiten buscar patrones de caracteres (letras y números) en lugar de palabras específicas para reemplazarlas o identificarlas.

 

Usando este bloque analítico podemos extraer solamente el nombre de la hoja que está dentro de la ruta completa con la ubicación del archivo.

 

 

 

 

Garabujo7_21-1599265052762.png

 

 

 

En el ejemplo de arriba identificamos el patrón con 3 “\” y extraemos todo lo que hay después.

 

 

 

Garabujo7_22-1599265052765.png

 

 

 

Para contar así con el nombre de cada hoja.

 

Finalmente usamos un bloque Seleccionar para ocultar las columnas que no necesitamos.

 

 

 

 

Garabujo7_23-1599265052768.png

 

 

 

 

* La restricción para utilizar esta funcionalidad es que los archivos para abrir deben tener la misma plantilla, número de columnas y orden.

 

 

 

Garabujo7_24-1599265052771.png

 

 

 

En caso de que no coincidan, el bloque analítico mostrará una alerta y sólo traerá el contenido de las que sean iguales.

 

 

 

Garabujo7_25-1599265052774.png

 

 

 

Leer varios archivos con múltiples hojas y plantillas diferentes

 

Si los casos anteriores no resolvieron lo que necesitas a continuación está la solución.

 

Esta opción utiliza una macro de procesamiento por lotes (batch).

 

 

Macros

 

 

Las macros son muy útiles para encapsular en un bloque analítico procesos de negocio amplios y facilita compartirlos con más personas.

 

En Alteryx tenemos 3 tipos:

 

  • Estándar

Si quieres comenzar a aprender de Macros estándar con Alteryx, puedes ir a este artículo.

 

  • Por lotes

En el caso de las macros de procesamiento por lotes lo que hacen es ejecutar el flujo completo con cada registro de forma individual. Lo que les da la posibilidad de modificar el resultado de acuerdo con el contenido de cada fila, dándole gran flexibilidad al procesamiento de datos.

 

  • Iterativas

Que corren hasta que una condición se cumplea.

 

¿Por qué usar una macro iterativa?

 

Como vimos en los procesos anteriores, si usamos un bloque Datos de entrada normal siempre necesitamos que los archivos u hojas tengan la misma plantilla para poder leerlas al mismo tiempo, si no coinciden los formatos nos da error o no lee el contenido.

 

 

Macro por lotes (batch) para leer varios exceles con diferentes hojas y formatos distintos

 

 

Es aquí donde entra el poder de la macro por lotes. Como se ejecuta un registro a la vez, no importa que cada archivo tenga una plantilla diferente, más o menos columnas o nombres distintos.

 

Como la lectura la hace uno por uno y escribe el resultado, lo único que necesitamos al final es unir el contenido de cada archivo usando el comportamiento del bloque analítico unión.

 

El elemento que la convierte en procesamiento por lotes es el parámetro de control.

 

 

 

Garabujo7_26-1599265052776.png

 

 

 

 

Este le indica a la macro que debe leer los registros uno a uno y escribir el resultado sucesivamente hasta que termine con todos.

 

Lo que cambiará cada que lea un archivo será la plantilla y como se ejecutan de forma individual, no generará errores.

 

Como mencioné, una macro es un proceso encapsulado, para utilizarla sólo necesitamos un bloque analítico que podemos personalizar.

 

 

 

Garabujo7_27-1599265052778.png

 

 

 

Para ver el contenido de la macro, hacemos clic derecho sobre el bloque analítico y seleccionamos la opción Abrir macro.

 

 

 

Garabujo7_28-1599265052783.png

 

 

 

 

Este es el contenido de la macro. La lógica que procesa los archivos está empaquetada en un único bloque analítico que además le aporta orden, claridad y convierte nuestros flujos en modulares.

 

 

 

Garabujo7_29-1599265052786.png

 

 

 

Una vez que insertamos la macro, le agregamos un bloque Directorio para leer todos los archivos que requerimos.

 

 

 

Garabujo7_30-1599265052787.png

 

 

 

Lo conectamos a la macro y ejecutamos.

 

Dependiendo de la configuración, podemos obtener resultados distintos.

 

Teniendo la macro abierta, podemos cambiar la configuración.

 

Seleccionando en el menú vista -> Interfaz Designer.

 

Cuando se muestre la pantalla de interfaz, seleccionamos el engrane.

 

Si queremos colocarle un icono personalizado a la macro, podemos hacerlo seleccionando la opción de icono personalizado.

Para cambiar el comportamiento de la unión de los resultados seleccionamos la opción por nombre o por posición.

 

La diferencia es que por nombre apilará el contenido de las columnas que tengan el mismo nombre y las que no coincidan las pondrá al final, mientras que la opción por posición lo hará de acuerdo a su ubicación en el primer archivo.

 

Revisa más detalles del funcionamiento en el bloque unión.

 

 

 

Garabujo7_31-1599265052792.png

 

 

 

 

 

Garabujo7_32-1599265052801.png

 

 

 

Agregar la macro a la paleta de bloques analíticos de Alteryx Designer.

 

Aquí están las instrucciones de como hacerlo o puedes ver el siguiente artículo.

 

https://community.alteryx.com/t5/Blog-Espanol/Agregar-una-Macro-a-la-barra-de-bloques-analiticos-de-...

 

 

Para poder agregar tu macro personalizada u otras que descargues de la galería publica en Designer, selecciona opciones -> Editar la configuración del usuario.

 

 

 

Garabujo7_33-1599265052806.png

 

 

Una vez ahí, escoger la categoría Macros, clic en el signo de +, le pones un nombre a la carpeta para identificarla de forma sencilla como Macros y haces clic en Guardar.

 

 

 

Garabujo7_34-1599265052808.png

 

 

Garabujo7_35-1599265052810.png

 

 

Garabujo7_36-1599265052811.png

 

 

 

Ahora todas las macros que crees o descargues las puedes colocar en esa carpeta y Designer las reconocerá automáticamente y aparecerán en una pestaña con el nombre que le hayas puesto, en mi caso se llama macros la categoría.

 

 

 

Galería de Alteryx

 

 

 

La galería pública de Alteryx cuenta con muchas macros prediseñadas que puedes descargar y utilizar en tus flujos.

 

 

 

Garabujo7_37-1599265052823.png

 

 

 

 

Estás son las opciones que tenemos para leer contenido de varios archivos de Excel al mismo tiempo.

 

Espero que esto facilite tus procesos tanto como lo ha hecho con los míos.

 

Si tienes cualquier pregunta al respecto, no dudes en hacerla en los comentarios de esta publicación.

 

 

 

 

Dance.gif

 

 

Adjunto a este artículo se encuentra un flujo de ejemplo con cada una de las opciones, listo para que lo utilices.

 

 

Comentarios
Etiquetas