miércoles, 14 de agosto de 2019

Power Query: Anexar todas las tablas de un libro

Hoy toca una función M de Power Query que nos permite acceder a datos: Excel.CurrentWorkbook()
En concreto conseguiremos, de una sola vez, anexar todas las tablas existentes en nuestro libro actual de trabajo... haya las que haya en cada momento!!.
Pensando en libros con información creciente...

En nuestro ejemplo partiremos de un libro con dos tablas, llamadas:
TblESP
TblGER

Para este ejercicio, y en general en cualquier uso estándar de Excel, el uso de patrones a la hora de asignar nombres a tablas, o nombres definidos, nos ayudará en siguientes etapas.
En mi caso siempre nombre a las tablas siguiendo el patrón 'TblXXXX'

Nuestras tablas en imágenes:

Power Query: Anexar todas las tablas de un libro


Recuerda que el número de tablas con el que trabajar es indeterminado... pero necesitamos anexar cuantas existan!

Accedemos al Editor de 'consultas en blanco' de Power Query (Obtener y transformar).
Ficha Datos > Obtener y transformar > Obtener datos > Desde otras fuentas > Consultas en blanco

Power Query: Anexar todas las tablas de un libro



Ya en el Editor de consultas, nombraremos a nuestra consulta como 'TodasLasTablas' y desde la barra de fórmula (o desde el editor avanzado) escribiremos:
=Excel.CurrentWorkbook()

Power Query: Anexar todas las tablas de un libro


Al presionar 'Enter' tras escribir nuestra función M se generará una Tabla con todas las tablas y nombres definidos que exista en nuestro libro actual...
Aquí es donde cobra fuerza el haber tenido la precaución de llamar a nuestras tablas con el patrón comentado 'TblXXXX', ya que ahora vamos a aplicar un filtro al campo 'Name' de tipo texto, que comience por 'Tbl'.
Esto nos mostrará exclusivamente nuestras tablas de trabajo.

Power Query: Anexar todas las tablas de un libro


En este momento no notaremos diferencia alguna, pero aplicar este filtro es fundamental para evitar recurrencias y registros duplicados en pasos siguientes!!.

Penúltimo paso, expandimos el campo 'Content' de la consulta de PQ que estamos creando.

Power Query: Anexar todas las tablas de un libro


Al gusto de cada uno marcaremos/desmarcaremos la opción de Usar el nombre de la columna original como prefijo.
Al aceptar esto es lo que veremos:

Power Query: Anexar todas las tablas de un libro



Ya podemos 'Cerrar y cargar en' con destino una celda de nuestro libro de trabajo:

Power Query: Anexar todas las tablas de un libro



Lo interesante es que si incluimos una nueva tabla de otro país 'TblFRA', bastará actualizar nuestra consulta para ver los datos refrescados... ¡Increible!

Power Query: Anexar todas las tablas de un libro


Por supuesto las tablas pueden estar ubicadas en hojas diferentes de nuestro libro.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.