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

  • Facebook
  • Twitter
  • LinkedIn

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:

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.

  • Nuestra Tabla de Productos

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:

Descargar archivo de muestra

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:

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.

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:

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).

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:

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:

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:

Y el resultado se verá de la siguiente manera:

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?

Los resultados se verán de la siguiente manera:

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:

Y con esto podremos ver el valor total por productoL

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.