Operaciones de Fusión en Power BI / Power Query – Parte 4: Right Anti Join

  • Facebook
  • Twitter
  • LinkedIn

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

Hasta ahora he cubierto:

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

En esta, parte 4, repasaremos la combinación correcta de Right Anti Join desde un punto de vista puramente práctico.

Datos fuente

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

  • OriginalTable (Tabla Original) –  esta es una tabla que tiene los task en nuestra línea de tiempo.

  • NewTable (Tabla Nueva) – esta tabla tiene el mismo formato, pero con filas agregadas / actualizadas en un momento posterior de nuestra línea de tiempo

El Objetivo

Queremos comparar la última versión de nuestra tabla de Tareas (NewTable/Tabla Nueva) con la anterior para ver qué nuevas tareas se han agregado o cuáles son las nuevas filas.

El resultado que estamos buscando debería tener este aspecto:

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 Right Anti 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 archivos de muestra

Lo primero que debemos hacer es cargar ambas tablas en Power Query / Power BI. Para hacer eso, 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). Entonces elegimos la opción «Select Multiple Items» y seleccionamos las tablas NewTable (Tabla Nueva) y OriginalTable (Tabla Original):

Después hacemos clic en «Transform Data» o «Edit» 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 Right Anti Join

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

Ahora obtenemos una nueva ventana para configurar la operación de fusión y aquí seleccionamos nuestra primera tabla como tabla de OriginalTable y la segunda tabla debería ser la NewTable.

Para las columnas que necesita seleccionar en cada tabla, simplemente seleccione la Task column en ambas y luego elija el the Right Anti en el menú desplegable Join Kind.

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

¡Se ve bastante extraño! Lo sé, pero tiene todo lo que necesitamos dentro de esa única celda con el valor Tabla.

La razón por la que vemos todos esos valores nulos es por el tipo de tipo de unión que hemos seleccionado. Recuerda que la unión es con «filas solo en la segunda tabla», lo que significa que no se mostrarán filas de la primera tabla (Tabla original) en este caso, sino solo las que no están en OriginalTable y que sí están en NewTable.

Expandiendo la columna recién creada

Ahora necesitamos expandir esa columna de tabla que tiene el nombre de la segunda tabla como se muestra a continuación:

Puedes eliminar la columna de Task y Owner y terminarás con este resultado:

lo que nos da los task que están solo en la nueva tabla (NewTable) y no en la original.

En Conclusión

Puedes aplicar este mismo principio / patrón a otras situaciones en las que te gustaría comparar la misma tabla, pero en diferentes puntos en una línea de tiempo para ver qué ha cambiado desde el punto A hasta el punto B.

Este es más un escenario avanzado y único, no lo utilizo mucho con frecuencia. Desde mi propia experiencia, solo he usado esto unas 10 veces.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.