lunes, agosto 26, 2019

Cálculo condicional en Power Query

Casi todo proceso de transformación de datos incluye, en algún momento, un cálculo condicional. Este cálculo puede ser un simple si condición, entonces resultado, sino otro resultado  hasta una compleja serie de SI anidados.

En Excel Clásico disponemos de la función SI donde separamos las condiciones con comas y podemos anidar hasta 64 condiciones (aunque como ya he señalado es preferible usar BUSCARV en lugar de complicarnos la vida, que bastante complicada es aún sin nuestra colaboración).

En Power Query, como era de esperar, podemos usar la interfaz de usuario para escribir fórmulas condicionales

pero en ciertos casos no podemos apoyarnos en la interfaz y tendremos que escribir la fórmula por nuestros propios medios.
En este post voy a mostrar las dos posibilidades.



Supongamos que queremos calcular las comisiones de los vendedores que aparecen en la tabla. El porcentaje depende del total de las ventas de cada uno. La comisión es el 5% si el total de ventas es mayor a 50 mil y menor de 100 mil (pesos, euros, dólares, la moneda no importa para el ejemplo); 7.5% si el monto supera los 100 mil y sin comisión si las ventas son inferiores a los 50 mil.

A partir de la base de datos hemos creado una consulta con el total de ventas por vendedor.




Cálculo usando solamente de interfaz de usuario.

Abrimos la opción Columna Condicional 


En Nombre de columna seleccionamos la columna a evaluar. En Operador  elegimos entre las distintas posibilidades (igual a, mayor que, etc.). En valor establecemos el criterio (aquí podemos elegir una columna de la tabla o poner una constante). En la casilla Salida (¿por qué "Salida"?, tendría que ser "Resultado") ponemos el resultado si se cumple la condición.

Ahora tenemos una columna con los porcentajes que podemos multiplicar por las ventas para obtener las comisiones de cada vendedor. Seleccionamos ambas columnas y en Agregar columna usamos Estándar-Multiplicar 


Todo lo que nos queda por hacer es cambiar el encabezamiento de la nueva columna a "Comisión".

Introduciendo manualmente las fórmulas.

Algunos de nis suspicaces lectores se estarán preguntando: ¿por qué no ahorrarnos un paso y hacer el cálculo de la comisión directamente en la interfaz? Estaríamos tentados a hacer los siguiente

es decir, hacer la multiplicación en la casilla Salida. El problema es que no se puede. Si bien Power Query aceptará la "fórmula", de hecho la interpretará como texto


Para ahorrarnos el paso tendremos que escribir la fórmula condicional por nuestros propios medios usando Agregar Columna-Columna Personalizada

Nótese que usamos if, else if, else, en inglés y en minúsculas. Además podemos agregar líneas en el editor de las fórmulas para facilitar la lectura y el control, como también agregar sangría (indentation). Obtenemos el mismo resultado, obviamente, como en el caso anterior


6 comentarios:

  1. Muchas gracias maestro, me ha surgido la duda de si se puede hacer lo mismo utilizando select case en caso de que cada vendedor tuviera tramos diferentes de comisión. He investigado por internet y no he visto esta opción.

    ResponderBorrar
    Respuestas
    1. Si, se puede. Irá un post sobre el tema.

      Borrar
    2. Muchas gracias, lo acabo de leer. Como siempre me deja fascinado tus conocimientos de excel.

      Muy agradecido puesto que tenia este situación en mi empresa y lo quería hacer también con powerquery en vez de con formulas. saludos

      Borrar
  2. Buenas noches
    Quisiera saber como usar contara con power querry, te lo agradeceria

    ResponderBorrar
    Respuestas
    1. Hay varias formas de hacerlo dependiendo del contexto. Lo más directo, es decir usando solamente la interfaz de usuario, es usar "Agrupar por".

      Borrar

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