Si no ha leído la Parte 1 y la Parte 2 de esta serie, te recomiendo que las leas antes de esta publicación.
En publicaciones anteriores, vimos el LEFT OUTER JOIN / unión externa izquierda y el RIGHT OUTER JOIN / unión externa derecha. Vimos lo básico sobre cómo funcionan las operaciones de fusión / unión dentro de Power Query / Power BI. Es hora de ser aún más inteligente con el uso de Operaciones de fusión.
Entremos en material, empecemos con el Left Anti Join, de inmediato desde un punto de vista práctico.
Datos fuente
Similar al artículo anterior, vamos a utilizar 2 tablas:
- ExportedData – al igual que en la publicación anterior, puedes imaginar que esta tabla sale del sistema global que usa la compañía y viene con algunos datos que realmente no necesito.
- ExclusionTable (Tabla de Exclusiones) – con la combinación de valores que queremos filtrar fuera de la tabla ExportedData
El Objetivo
En la publicación anterior definimos qué combinación de valores queríamos mantener, pero en este caso estamos creando básicamente una tabla de Exclusiones o valores que queremos eliminar de la tabla ExportedData original.
El resultado que estamos buscando debe de lucir de la siguiente manera:
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 Left Anti Join dentro de Power Query / Power BI.
Cargando los Datos
Puedes seguir las instrucciones descargando el archivo de muestra desde el siguiente botón:
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 seleccionamos el archivo que descargamos (con el nombre de Sample Data.xlsx). Continuamos seleccionando la opción «Select multiple items» y seleccionamos las tablas ExportedData y ExclusionTable:
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 el Left Anti 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 obtenemos una nueva ventana para configurar la operación de combinación / fusión y aquí seleccionamos nuestra primera tabla como ExportedData y la segunda tabla debería ser ExclusionTable.
De manera similar a lo que hicimos en la Parte 2 de esta serie, no solo estamos haciendo una fusión basada en 1 columna, sino en múltiples, como se muestra a continuación:
¡No te olvides de seleccionar el Left Anti de la lista de selección de Join Kind!
Después de presionar OK, regresará al Power Query Editor y deberías de poder verlo así:
Te podrías preguntar y ¿Qué pasó? En resumen, nos deshicimos de la fila en la que la Región era Asia y el Código de Categoría era 2 al realizar esa simple operación de Combinación / Fusión.
Algo que también puedes hacer es jugar con esos valores en la tabla original del ExclusionTable para simplemente deshacerte de los valores y conservar los que necesitas. ¡Incluso puedes agregar más combinaciones!
Por ejemplo, digamos que cambio los valores de ExlusionTable para que sean como los siguientes:
entonces la tabla de consulta / salida final se verá así:
Pensamientos finales
Esto es lo que me gusta llamar un “filtro inteligente”, pero más específicamente una tabla de exclusión donde puedes definir qué filas NO cargar.
En mi caso, realmente no necesito hacer nada con la columna recién creada, así que simplemente elimino esa columna después de realizar la operación de combinación. Así es cómo se ve mi consulta después de eliminar esa columna y, nuevamente, la parte importante aquí es la operación de unir y el nuevo subconjunto de mi tabla original: