Hacia rato quería hablar de Power Automate Desktop y Excel, y con el curso que estoy armando creo que es un buen momento. Empecemos por algo sencillo y que se que todos querrán hacer: Usar Power Automate Desktop para manipular archivos.
Si aún no has instalado Power Automate de Escritorio, es gratis y puedes hacerlo desde aquí.
Si no sabes porque seguir leyendo, te dejo un video de ejemplo.
Los inicios.
Lo primero siempre será abrir nuestro libro de Excel. Colocamos la acción «Launch Excel» en el Flujo y seleccionamos si queremos un libro nuevo o uno ya existente.
Dentro de esta sección es importante determinar que haremos con el libro para la configuración.
- Si solo queremos obtener información de el libro, usamos las opciones «Make instance visible» en false y «Open as ReadOnly» en true. Esto para ahorrar memoria.
2. En el caso de que vayamos a apretar botones en algún menú de Excel o realizar acciones sobre el libro, dejamos activa la opción «Make instance visible» y desactivamos «Open as ReadOnly»
En la parte de opciones avanzadas, configura siempre si es que tu libro tiene contraseña de apertura, ademas de que si vas a usar algo como Power Query, Power Pivot o macros de inicio, carga los add-ins.
Cuando termines presiona guardar para continuar. Es recomendable también no dejar instancias de Excel abiertas, así que te recomiendo agregar el paso «close Excel». Aqui sabrás si es necesario guardar tu libro o no.
Nota como, una vez que hagas esto, tendras una variable llamada ExcelInstance (si es que no cambiaste su nombre). Esta instancia representa el libro de Excel que seleccionaste, y sobre el cual vamos a poder trabajar ciertas acciones.
Definiendo el espacio de trabajo de Excel.
Ahora vamos al libro. Como puedes ver, yo he seleccionado este libro para poder trabajar, el cual tiene una tabla en la segunda hoja y algunos datos adicionales en la primera.
Ya que Power Automate Desktop no sabe en que hoja de Excel voy a trabajar, necesito definirlo antes de iniciar cualquier acción. Vamos a agregar el paso «Set active Excel Worksheet» en medio del abrir y cerrar libro.
En esta pantalla, veremos que debemos conocer dos cosas: o bien el nombre de la hoja de cálculo, o su indice contando desde la primera hoja hasta el lugar donde se encuentra. Usaremos la misma instancia de Excel para trabajar y escogeremos cómo queremos detectar nuestra hoja de trabajo.
Veras que esta acción no genera ninguna variable, lo cual es correcto ya que seguimos trabajando sobre «ExcelInstance».
Importar datos de nuestra tabla a Power Automate Desktop
Como ya mostré arriba, tenemos una tabla que inicia en A1 y termina en algún lugar que puede ser más largo o menos dependiendo el contenido de los datos. Como no puedo precedir el número de datos que tendrá mi tabla, voy a usar un truco para poder resolverlo.
Primero, selecciona la acción «Get first free column/row form Excel Worksheet» para conocer la siguiente colúmna y fila sin valores dentro de esta hoja.
Esta acción solo te pedirá una instancia de Excel (misma que ya dijimos en que hoja esta trabajando) y arrojara dos variables del tipo número:
- FirstFreeColumn será el número de la primera columna sin valores, osea que no pertenece a nuestra tabla.
- FirstFreeRow con la primer fila sin valores de la tabla, lista para escribirle un nuevo registro a la tabla.
Despues, para tomar todos los valores de esa tabla e importarlos a Power Automate Desktop, usaremos la acción «Read from Excel Worksheet». La cual solicita las coordenadas a leer dentro de la instancia. Configuramos el paso como sigue.
Observa que en este momento usamos las variables «FirstFreeColumn » y «FirstFreeRow« para trabajar, y les restamos un 1. La resta es importante y la tenemos que entender de la siguiente forma:
- Imagina que FirstFreeColumn es 8, lo que quiere decir que la primer columna vacía es la numero 8 o letra H.
- Si nosotros tomamos todo el rango desde la columna 1 hasta la columna FirstFreeColumn, tendriamos una última columna sin valores.
- Al restar 8-1, terminamos con el rango que corre desde la columna 1 (A) hasta la columna 7 (G), lo cual es nuestro rango real de valores.
Lo mismo pasa con las filas, por lo que con este método obtenemos nuestros datos de la hoja una vez corramos el flujo.
Es importante entender que estas acciones solo trabajan correctamente con hoja donde solo hay una tabla, ya que si tienes datos en algún otro lado fuera de la tabla, es posible que la primer fila/columna vacías sean distintos.
Escribiendo una nueva fila/columna a nuestra tabla
Si lo que queremos no es importar, sino escribir, usaremos el mismo paso » Get first free column/row form Excel Worksheet » para saber cual es el próximo espacio de escritura disponible y lo combinaremos con la acción «Write to Excel Worksheet»
El valor a escribir lo podemos colocar nosotros abiertamente, o puede venir de algo que ya tengamos en el flujo dentro de una variable. Para fines prácticos, podremos un nuevo valor en la primer columna vacia y en la fila uno, que representara un nuevo encabezado llamado «conversion».
Observa como he tomado el valor literal de «FirstFreeColumn», lo cual me permite seguir agregando columnas a mi tabla.
Escribir una fórmula a la tabla de Excel.
Por ultimo, vamos a agregar un cálculo dentro de nuestro libro. En la columna vacía y la fila 2 vamos a escribir un cálculo que represente la división de dos columnas, en mi caso la columna siete y seis. Mi formula queda así.
=[@[Vistas hoy]]/[@[Visitas hoy]]
Usando la acción «Write to Excel Worksheet» que vimos en la parte anterior, vamos a escribir en la coordenada la fórmula de arriba.
Si has hecho todos los pasos hasta aquí, tu flujo debe de verse parecido a este.
Ahora, solo es cuestion de correrlo y veras lo facil que es automatizar con Power Automate Desktop y Excel.
Luego profundizamos mas en el tema, por ahora nos leemos abajo.