lunes, marzo 30, 2020

Otra técnica para comparar listas con Power Query

Dadas dos o más tablas, inevitablemente alguien querrá saber qué elementos tienen en común las tablas, o qué elementos no tienen en común. En este blog hemos explorado varias técnicas para comparar listas y hoy voy a presentar una más.

Supongamos esta tabla que muestra los productos vendidos en cada país en una año determinado:


Para encontrar los elementos comunes a dos (o más) listas usaremos la función List.Intersect. Para poder usarla transformaremos primero las columnas en la tabla de los países que queremos comparar en listas  (sobre la diferencia entre tabla y lista en Power Query ver al final del post).

Cada columna contiene los productos vendidos en un país. Nos piden, por ejemplo, encontrar los productos vendidos también en Argentina y también en España.

Creamos una conexión a la tabla en Power Query y la guardamos cono solo conexión.



En el siguiente paso creamos una consulta usando Referencia



Eliminamos todas las columnas excepto [Argentina] (o el país que hayamos elegido) y usamos Transformar-Cualquier columna-Transformar en lista para convertir la tabla en lista


En esta situación, después de haber cambiado el nombre de la consulta a Argentina, guardamos como solo conexión



Hacemos lo mismo con [España]



Para crear la lista de los elementos comunes, los artículos vendidos en ambos países, empezamos por crear una consulta en blanco. En la barra de las fórmulas ponemos esta fórmula
=List.Intersect({Argentina,España})

Es importante notar que los nombres de los países están entre corchetes "{}". Esto se debe a que el argumento de List.Intersect es una "lista de listas".

Ahora convertimos la lista en tabla


filtramos la columna para eliminar las filas null, opcionalmente cambiamos el nombre de la consulta y la descargamos a una hoja de Excel

Si queremos encontrar los productos que aparecen en  [Argentina] pero no en [España] usaremos la función List.Difference



Hasta aquí la técnica para comparar listas y extraer elementos faltantes o en común.Veamos ahora la diferencia entre los conceptos de "tabla" y "lista". En términos de Excel Clásico (Excel pre Power Query y PowerPivot) tabla y lista eran, de hecho, sinónimos; un rango rectangular de datos con encabezamientos en la primer fila.

En la versión 2003 de Excel, Microsoft introdujo el objeto"Listas" que en la siguiente versión fue rebautizado como "Tablas". Así que a partir de la versión 2007 cuando hablamos de "tabla" nos referimos a las tablas estructuradas; el término "lista" quedó a disposición y discreción del usuario para referirse a una rango organizado de datos, por lo general de una única columna.

Esta situación es completamente distinta cuando nos encontramos en el entorno de Power Query donde Tabla y Lista son dos conceptos completamente distintos.
La Tabla es el elemento más común en Power Query. Prácticamente toda consulta que creamos genera una tabla.
La Lista es una secuencia o serie de valores que pueden contarse.

La diferencia más visible entre ambos elementos es que la lista tiene una sola columna y la presencia de corchetes {} al definirlas.
Además Tablas y Listas tienen su propia colección de funciones (Table.xxx y List.xxx).



1 comentario:

  1. Gracias maestro por compartir estos conocimientos, muy potentes estas funciones.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.