Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Power Query: Seleccionado origen de datos

Recientemente me encontraba con una situación algo diferente, me parecía, donde debía resolver una consulta de Power Query eligiendo un origen entre distintas posibilidades...
Veamos el planteamiento en la imagen siguiente:
La situación concreta es la siguiente: Disponemos de tres orígenes de información (tres tablas: Tabla1, Tabla2 y Tabla2). Deseamos construir una única consulta final (que llamaré en su momento 'qryVariable') que se alimente a mi elección, de acuerdo a la celda I2... combinándose con un cuarto origen de datos 'TblColor'.
Además cada uno de las tres fuentes tiene una denominación de campos distintos, así como un número diferente de ellos... aunque sí tienen tres conceptos en común, que serán los que necesitamos: Fecha, País, Unidades.
Es decir, por si aún no he conseguido explicar qué vamos a hacer... Vamos a construir una consulta que permite seleccionar el origen de datos desde una celda validada tipo lista.

Nuestro primer paso será cargar las tres tablas fuentes (Tabla1, Tabla2 y Tabla2) solo como conexión.
En el editor trabajaremos cada una de las tablas cargadas para renombrar las columnas necesarias de igual forma, reordenarlas y eliminar, si fuera el caso, columnas sobrantes.
Pongamos de ejemplo los pasos de la Tabla3 cargada

En las tres tablas habrá que realizar un trabajo similar hasta llegar a mostrar únicamente tres columnas: Fecha, Pais, Uds
Igualmente, solo como conexión, la TblColor... en este caso sin transformación alguna.

En la celda I2 añadimos una validación de datos tipo Lista con tres elementos permitidos: Tabla1, Tabla2 y Tabla2.
No deberías tener problema para esta primera etapa... si fuera el caso revisa la etiqueta del blog Power.
En el segundo paso cargaremos la celda I2, a la que previamente hemos asignado u nnombre definido ('ndOrigen'), solo como conexión y la pasaremos como parámetro.
Desde la ficha Datos > grupo Obtener y transformar > Desde una tabla o rango, y una vez cargada desde el editor de consultas de Power Query, haciendo clic derecho sobre la 'casilla' presionar 'Rastrear desagrupando datos'

Es importante pasar como parámetro este valor de la celda I2 para gestionar la futura elección del origen...

Vamos a por el paso importante. Añadiremos desde el editor de consultas una consulta en blanco, desde la ficha Inicio > grupo Nueva consultas > Nuevo origen > Otros orígenes > Consulta en blanco, y desde la vista de Editor avanzado escribiremos una sentencia condicional... pero no para trabajar entre columnas, sino para trabajar entre orígenes o consultas cargadas!!.
Aquí está la fuerza de este ejercicio ;-)
En la ventana del editor avanzado de nuestra consulta en blanco escribiremos:
let
fuente = if ndOrigen="Tabla1" then Tabla1 else
if ndOrigen="Tabla2" then Tabla2 else
Tabla3
in
fuente

Observamos una estructura múltiple condicional if condición 1 then salida 1 else if...then...else ...
La condición consiste en comparar nuestro parámetro 'ndOrigen' con alguno de las opciones disponibles (Tabla1, Tabla2 o Tabla3), para así dirigir la respuesta a alguno de los orígenes cargados.
Al aceptar veremos:

Sobre esta consulta, ya desde la vista normal completaremos los pasos siguientes:
1-Combinar con la consulta de colores
2-Expandir el campo color

let
fuente = if ndOrigen="Tabla1" then Tabla1 else
if ndOrigen="Tabla2" then Tabla2 else
Tabla3,
#"Consultas combinadas" = Table.NestedJoin(fuente, {"Fecha"}, TblColor, {"Año"}, "TblColor", JoinKind.LeftOuter),
#"Se expandió TblColor" = Table.ExpandTableColumn(#"Consultas combinadas", "TblColor", {"Color"}, {"Color"})

in
#"Se expandió TblColor"

Y listo, ya podemos Cargar y cerrar en... y devolver la consulta a nuestra hoja de cálculo. Daríamos el trabajo por concluido. Cada vez que seleccionemos un origen diferente en I2 y actualicemos... nuestra query devolverá los datos correspondientes :O



This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

Power Query: Seleccionado origen de datos

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×