Miguel Escobar Publicada enero 3, 2019

Operaciones de Fusión en Power BI / Power Query – Parte 1: Left Outer Join

Power BIPower BIPower QueryPower Query

Si alguna vez has utilizado Power Query o Power BI, te habrás percatado del botón de «Combinar» (Merge) que despliega una ventana como la siguiente:

image

Esto te permite unir 2 tablas (o consultas) y normalmente una de las preguntas que me hacen más seguido es: ¿Porque hay tantas uniones de diferentes tipos? ¿Son realmente necesarias?

Es por esto que me encuentro escribiendo este blog desde una perspectiva práctica para que tengas un mejor entendimiento de cuando se debe elegir cada una de ellas y el valor agregado que traen a la mesa.

En esta primera parte vamos a comenzar con la unión predeterminada, Left Outer Join (Externa izquierda).

Fuente de la Información

En esta ocasión, vamos a iniciar con 2 tablas:

  • Nuestra Tabla de Ventas Diarias.
image
  • Nuestra Tabla de Productos
image

Escenario 1: Estilo BUSCARV o (VLOOKUP)

Como puedes ver, nuestra tabla de ventas tiene la columna de ProductID, pero nos gustaría usar el Nombre del Producto envés del ID del Producto. ¿Cómo podemos hacer esto posible?

Puedes seguir las instrucciones descargando el archivo de muestra desde el siguiente botón:

Lo primero que tenemos que hacer es cargar ambas tablas en Power Query o Power BI. Para hacer esto, simplemente vamos a Data > Get & Transform Data > Get Data > From File > From Workbook:

SNAGHTML8a3bc1

seleccionamos el archivo que recién descargamos (con el nombre de Sample Data.xlsx). Es en este momento donde seleccionamos la opción de “Select multiple items” y escogemos ambas, la tabla de ventas y la tabla de productos.

SNAGHTML8c7517

Seguimos dándole en ‘Transformar Data’ o ‘Editar’ dependiendo de la versión de Power Query / Power BI que tengas instalada.

Esto debe cargar ambas tablas dentro del editor de Power Query de la siguiente manera:

image

Haciendo la fusión Left Outer Join

En este punto, estamos listos para seleccionar la opción «Combinar Consultas» o (Merge Queries) que ven en el centro superior de la imagen anterior. Asegúrate de seleccionar de la lista, la opción de combinar las consultas como una nueva (Merge Queries as New).

image

Ahora simplemente elige la tabla de ventas como la primera tabla para combinar. En esta tabla selecciona la columna de Product ID. Seguidamente, selecciona la tabla de productos como nuestra segunda tabla para combinar. En este caso, selecciona también la columna de Product ID tal cual describimos en las imágenes a continuación:

image

De manera predeterminada, vas a encontrar la opción de Combinación Externa Izquierda o (Left Outer), así que todo lo que debes hacer es apretar OK.

Esto nos va a traer el siguiente resultado:

image

Cada vez que combinemos dos consultas con diferentes factores de unión pasarán 2 cosas, pero solo una de ellas es obvia a simple vista:

  • Una Nueva Columna es Creada – Puedes ver que esta columna utiliza el nombre de la tabla que llamé anteriormente (productos).
  • La unión ocurre – cuando definimos ambas, la manera en que unimos y la “primera” junto con “segunda” tabla, nosotros estamos básicamente definiendo como nuestra nueva tabla se va a ver. En nuestro caso, EXTERNA IZQUIERDA (Left Outer) significa “Mantén todas las filas de la primera tabla” o, como la tabla indica, “todas las de la primera, que sean iguales a la segunda”.

Con esta nueva columna  creada, que contiene valores, podemos expandir y elegir el Nombre del Producto que estamos buscando, de la siguiente manera:

image

Y el resultado se verá de la siguiente manera:

image

Esto es similar al resultado que pudiésemos obtener de un BUSCARV y esta es la comparación que usualmente tendemos a hacer, solo que esta opción es MUCHO más poderosa y va más allá de lo que pudieses realizar con un BUSCARV.

Escenario 2: Estilo Agrupar por o Group By

Vamos a continuar con pasos muy similares a los que hicimos previamente, pero envés de elegir la tabla de ventas como primera tabla, vamos a preguntarnos: ¿Qué pasa si mi primera tabla es la tabla de productos?

externa izquierda

Los resultados se verán de la siguiente manera:

image

Ya que nuestra primera tabla es la tabla de productos y no la de ventas, nuestra base será entonces la Tabla de Productos y es por esto que solamente vemos 4 filas.

Ahora, envés de expandir los valores de la columna de ventas, hagamos una agregación:

image

Y con esto podremos ver el valor total por productoL

image

Esto es similar al resultado de lo que podrías obtener si quisieras hacer una operación de “Agrupar Por” usando el Nombre del Producto o simplemente el ID del Producto.

En Conclusión, es REALMENTE importante saber cual tabla eliges como “primera tabla” ya que puedes utilizar esto como una ventaja dependiendo de lo que realmente quieras conseguir.

Power BIPower BIPower QueryPower Query
Subscribe
Notify of
guest
5 Comentario
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
osiel

Genial Miguel! el paso de la agregación es simplemente genial, muchas gracias. sls

Lourdes

Hola Miguel, cómo estás?
Hoy estábamos replicando una combinación como está (Left Outer Join) y al combinar las tablas me crecía mucho el tamaño de la tabla inicial.
En el caso que tenga registros duplicados para la clave en la tabla secundaria se me duplican en la tabla de la izquierda? cómo puedo evitarlo?

Bernat Agulló

es posible hacer joins entre pasos de una misma consulta? o hay que defnirlo como 2 consultas independientes primero?