miércoles, septiembre 11, 2019

Coincidencia numérica aproximada en Power Query

En la nota anterior exploramos las posibilidades de combinar consultas en Power Query con coincidencia aproximada. Además de exponer algún problema potencial que puede surgir, señalamos que no se puede usar coincidencia aproximada en campos numéricos.

Supongamos el siguiente ejemplo. Tenemos una tabla de descuentos a clientes en función del monto de sus compras y un segunda tabla con las compras de los clientes


Calcular el porcentaje que le corresponde a cada cliente es una tarea sencilla con Excel Clásico; usamos BUSCARV con el cuarto parámetro en blanco (o con el valor 1) para una búsqueda aproximada


Lo único que tenemos que asegurarnos es que la tabla de descuentos (tbl_Descuentos) esté ordenada de menor a mayor.

¿Como lo haríamos con Power Query?

Si intentamos aplicar la técnica de combinación con coincidencia aproximada que mostramos en el post anterior, obtendremos un error


El alerta en inglés nos informa que Coincidencia aproximada funciona solamente con columnas de texto.

Vamos a mostrar como hacerlo en Power Query, usando solamente la interfaz de usuario.

Como siempre empezamos por crear consultas a las tabla de datos, guardándolas como "solo conexión"

Importante! Las columnas de los montos en ambas tablas tienen que tener el mismo nombre. En nuestro ejemplo las tablas comparten la columna [Compra]

Ahora vamos a hacer algo similar a lo que hicimos en la nota anterior: vamos a anexar ambas tablas a pesar de tener estructuras distintas

con este resultado


Nuestro próximo paso es ordenar las filas de la tabla de menor a mayor (orden ascendente) según la columna [Compra]



Ahora aplicamos Rellenar-Abajo en la columna [Descuento]



Filtramos al columna [Cliente] para quitar los null, es decir, quitamos las filas que no pertenecen a clientes

Multiplicamos la columna [Compra] por la columna [Descuento] para obtener el total de descuento del cliente

Todo lo que nos queda por hacer es descargar la consulta en una hoja del cuaderno y aplicar los formatos necesarios


A partir de este momento tenemos un modelo totalmente dinámico. Podemos agregar o quitar clientes, cambiar los montos, cambiar la tabla de descuentos; todo se actualizará con un simple clic al icono "Actualizar todo".

Apéndice

A lo largo del proceso hemos alterado el orden de la tabla de clientes. Si queremos conservar el orden original hacemos lo siguiente:

# - agregamos una columna [Índice] inmediatamente después del primer paso


# - al final de proceso agregamos un paso: ordenamos la columna [Índice] en forma ascendente


# - quitamos la columna [Índice] y descargamos la consulta a la hoja de Excel.

1 comentario:

  1. Perfecto, con este proceso quitamos cálculos (funciones Excel), Relación de tablas y Dax (Related), además de ser dinámico. Gracias maestro Jorge.

    ResponderBorrar

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