Operaciones de Fusión en Power BI / Power Query – Parte 5: Inner Join

  • Facebook
  • Twitter
  • LinkedIn

Al igual que en las publicaciones anteriores de esta serie, te recomiendo que leas las primeras 4 partes (1 | 2 | 3 | 4) que he publicado hasta el momento sobre Combinar / Unir  / JOIN dentro de Power BI / Power Query.

Hasta ahora he cubierto:

  • Left Outer Join
  • Right Outer Join
  • Left Anti Join
  • Right Anti Join

En esta, parte 5, repasaremos la unión interna (Inner Join) desde un punto de vista puramente práctico.

Datos fuente

Al igual que en las publicaciones anteriores, usaremos 2 tablas:

  • OnlineSales (Ventas en línea)– wvendemos algunos de nuestros productos a través de una tienda en línea alojada en Shopify y esta es la exportación que Shopify nos brinda

  • TeleSales – wtambién tenemos un canal diferente al que llamamos TeleSales, que es para todo lo que sucede fuera del canal en línea

El objetivo

Necesitamos una tabla con solo las cuentas (clientes) que tuvieron ventas tanto en OnlineSales como en TeleSales.

Necesitamos una tabla con solo las cuentas (clientes) que tuvieron ventas tanto en OnlineSales como en TeleSales:

La Solución

El siguiente es un proceso paso a paso sobre cómo podemos lograr el resultado deseado con solo unos pocos clics. No se necesita código, solo el uso de Inner Join dentro de Power Query / Power BI.

Loading the Data

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:

luego encontramos el archivo que descargamos (con el nombre de Sample Data.xlsx). A continuación, seleccionamos la opción “Seleccionar varios elementos” y seleccionamos las tablas de ventas en línea (OnlineSales) y televentas (TeleSales):

y luego hacemos clic en “Transformar datos” o “Editar” según la versión de Power Query / Power BI que pueda tener.

Eso debería aterrizar ambas tablas dentro del editor de Power Query como se muestra a continuación:

Haciendo el Inner Join

En esta etapa, estamos listos para hacer clic en el botón “Combinar consultas” (Merge Queries) que se ve en la parte superior central de la imagen anterior. Asegúrate de seleccionar, en el menú desplegable, la opción de combinar consultas como nuevas (Merge Queries as New):

Ahora obtenemos una nueva ventana para configurar la operación de fusión (Merge operation) y aquí depende completamente de ti, puedes seleccionar cualquier orden para las tablas. En mi caso específico, elegí ir con las ventas en línea (Online Sales) como la primera tabla y TeleSales como la segunda.

Para las columnas que necesita seleccionar en cada tabla, solo seleccione la columna Cuenta (Account) en ambas y luego elije Inner del menu desplegable Join Kind como se muestra a continuación:

Después de presionar OK, regresarás al Power Query Editor y deberías de poder verlo así:

OK – Hagamos un resumen rápido para entender qué sucedió o cómo traducir ese resultado en algo que entendamos.

Comenzamos con nuestra tabla de ventas en línea (OnlineSales) que tiene 30 filas. TeleSales tiene 16 filas y esta nueva consulta ‘Merge 1’ solo tiene 13, lo que significa que solo hay 13 cuentas que tuvieron ventas en las tablas OnlineSales y TeleSales.

¡Ahí lo tenemos! Una traducción sencilla de lo que hizo Power Query.

Expandiendo la columna recién creada

Algo bastante útil en este caso específico es que puedes expandir esa columna recién creada para obtener la Cantidad para televentas en nuestra tabla, así como la columna de Cantidad ya disponible para las Ventas en línea (OnlineSales):

y el resultado de eso se verá así:

Conclusiones

Esto es muy diferente a las uniones que hemos visto antes porque se basa en tener coincidencias en ambas tablas, no confiando completamente solo en la primera o la segunda.

Lo he usado varias veces y es principalmente para asegurarnos de que solo cargamos los datos en los que estamos realmente interesados en lugar de más de los “Filtros inteligentes” que hemos visto antes.