jueves, 15 de febrero de 2018

Power Query: Listado elementos únicos

Aprenderemos algo más sobre el uso de esta gran herramienta: Obtener y transformar (Power Query)

Hoy en concreto veremos como conseguir un listado de elementos únicos, sin repetición, empleando la función Table.Distinct,
que podemos obtner desde las opciones del Editor de consultas, con un viejo conocido de la hoja de cálculo, como es el Quitar duplicados.

Power Query: Listado elementos únicos



A partir de la tabla azul, de la izquierda (de nombre 'Tbl_Pdtos') llamaremos al Editor de consultas desde la ficha Datos > grupo Obtener y transformar > botón Desde una tabla

Con la tabla cargada, le cambiamos el nombre la consulta y la llamo 'Quitar_Duplicados'.
En el paso siguiente seleccionamos el campo 'Producto', y hacemos clic derecho para seleccionar la opción: Quitar otras columnas. Esto elimina el resto de columnas de la tabla cargada, dejando visible únicamente la del campo 'Producto'

Power Query: Listado elementos únicos



YA con solo un campo visible, realizamos la última acción.
Desde la ficha de Inicio de editor de consultas > grupo Reducir filas > desplegable Quitar filas > Quitar duplicados

Power Query: Listado elementos únicos



Listo. Podemos Cerrar y Cargar el resultado en nuestra hoja de cálculo... obteniendo una tabla de elemento únicos como veíamos en la primera imagen.

Si accedemos al Editor avanzado de la consulta veríamos el siguiente código:

let
    Origen = Excel.CurrentWorkbook(){[Name="Tbl_Pdtos"]}[Content],
    #"Otras columnas quitadas" = Table.SelectColumns(Origen,{"Producto"}),
    #"Duplicados quitados" = Table.Distinct(#"Otras columnas quitadas")
in
    #"Duplicados quitados"


Comprobamos como la acción de Quitar duplicados ha dejado grabada la función Table.Distinct

Otra forma de llegar a lo mismo sería directamente insertar una consulta en blanco (ficha Inicio > grupo Nueva consulta > Nuevo origen > Otros orígenes > Consulta en blanco).
Y desde el editor avanzado escribir:

Table.Distinct(  
    Table.SelectColumns(Excel.CurrentWorkbook(){[Name="Tbl_Pdtos"]}[Content],{"Producto"})
, "Producto")


Sin duda más simple y directo.. pero con igual resultado que con el asistente.

No hay comentarios:

Publicar un comentario