lunes, julio 29, 2019

Dividir columnas con Power Query - segunda nota

En la nota anterior comparamos Texto en columnas  de Excel Clásico con Dividir Columna  de Power Query para mostrar cuanto más eficiente es esta última herramienta.
En esta nota voy a mostrar una situación imposible de resolver cob Texto en Columnas  y que Power Query lo hace con facilidad.
Consideremos esta tabla de clientes agrupados por vendedores


En otra tabla tenemos las ventas a cada cliente. Ahora supongamos que se nos pide calcular las comisiones de cada vendedor para lo cual tenemos que totalizar las ventas por vendedor. Obviamente los datos están organizados de manera tal que no podemos realizar la tarea. Necesitamos "aplanar" la tabla de tal manera que en cada fila haya una celda con el nombre del vendedor y la la celda contigua el nombre del cliente. De esa manera podremos usar Combinar consultas del Power Query para calcular las ventas por vendedor (o, si prefieran y espero que no lo prefieran, usar BUSCARV para extraer las ventas en cada fila y luego resumirlas con una tabla dinámica o SUMAR.SI).
Vamos a mostrar como hacerlo con Power Query es cuestión de segundos.



Como siempre, empezamos por crear una consulta


Seleccionamos la columna "Clientes" y accionamos Dividir Columna - Por delimitador



Nos aseguramos que el delimitador sea "coma", dejamos seleccionada la opción Cada aparición del delimitador  y abrimos las Opciones avanzadas


Seleccionamos Filas, apretamos Aceptar y "¡abracadabra!"


Hasta aquí el tema de este post. Lo que acabamos de hacer con Power Query no es posible con Excel Clásico. Por supuesto podríamos hacerlo con Vba,, para lo cual tendríamos que invertir una cantidad de tiempo nada despreciable escribiendo el código.
Ahora que hemos ordenado nuestra tabla vamos a utilizar Combinar consultas  para calcular las ventas por vendedor.

Previamente hemos creado una conexión a los datos de ventas que se encuentran en una base de datos (como siempre en mis ejemplos, la base de datos de la imaginaria empresa  Northwind en Access).

Abrimos la primer consulta (Vendedores-Clientes) en el editor y usamos Combinar consultas 


Seleccionamos la tabla "Ventas" como segunda usando los campos Clientes y Customers... como columnas coincidentes; nos aseguramos que el tipo de combinación sea Externa izquierda y apretamos Aceptar

Como ya hemos visto en notas anteriores, Power Query agrega una columna a la primer consulta que de hecho es toda la segunda tabla. Vamos a detenernos un instante para observar al consulta "Ventas".
La consulta "Tabla2"(vendedores-clientes) tiene 21 filas; la consulta "Ventas" tiene 2155. Si expandimos la columna "Ventas" obtendremos una tabla combinada de 415 filas (hay otros clientes además de los que aparecen en Tabla2) así que tendríamos que resumir esta nueva tabla ya sea con Agrupar por del Power Query o con una tabla dinámica.
Pero Power Query nos ofrece otra posibilidad. Al expandir la columna vemos que hay dos posibilidades; Expandir y Agregar


Seleccionamos "Extended price" (las ventas) y Agregar



Seleccionamos la opción Suma de... y nuevamente la magia de Power Query entra en acción


La tabla con el resumen de ventas por vendedor-cliente con unos pocos clics! Podemos dar una paso más y resumir la tabla por vendedor usando Agrupar por


Todo los que nos queda por hacer es cargar la consulta en una hoja de Excel.

El video con todo el proceso puede verse aquí.

2 comentarios:

  1. Estupendo maestro Jorge, las maravillas de PQ, adiós al buscarv y lenguaje VBA. Gracias por compartir-

    ResponderBorrar

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