Operadores Lógicos e IFs anidados en Power BI / Power Query

  • Facebook
  • Twitter
  • LinkedIn

En el artículo anterior les mostré cómo crear una columna condicional en Power BI / Power Query usando la interfaz de usuario y luego solo usando el lenguaje de Fórmulas de Power Query (M).

En esta publicación, analizaremos los operadores condicionales disponibles y cómo realizar IF anidados en Power BI / Power Query.

¿Qué son los operadores lógicos?

Probablemente los hayas visto en algún momento en DAX o en el lenguaje de fórmulas de Excel y algunos de ellos son:

  • AND
  • OR
  • NOT

Pero, ¿cómo se escriben en el lenguaje de fórmula de Power Query? ya sabemos que solo podemos usarlos dentro de una columna personalizada, pero ¿qué aspecto tendrá?

Operadores lógicos en Power BI / Power Query

Hagamos algunas pruebas para ver cómo funcionan estos operadores. Tengo esta tabla simple en la que usaré un ejemplo:

Una cosa a tener en cuenta antes de probar esto por sí mism: el lenguaje de fórmulas de Power Query (también conocido como M), distingue entre mayúsculas y minúsculas.

Prueba #1: Uso del operador AND

Estaremos creando una nueva columna si el valor en esta columna es mayor que 8 Y menor que 25. Eso se verá así usando una Custom Column:

[Number] > 8 and [Number] < 25

Y los resultados de esto se deben ver así:

Observa como el resultado es un valor lógico, ya sea TRUE o FALSE.

Prueba #2: Uso del operador OR

Ahora queremos crear una nueva columna que pruebe si el valor es menor que 15 o mayor que 25.

Que en código M se verá así:

[Number]< 15 or [Number] > 25

Y los resultados de esto se deben ver así:

¡y sí! nos da la respuesta correcta de nuevo

Prueba #3: Uso del operador NOT

Para esta prueba final, encontremos todos los valores que NO estén por debajo de 25.

Que en el código M se verá así:

not ([Number] < 25)

Algo realmente importante sobre esta fórmula es que tengo la prueba inicial entre paréntesis, y lo que NOT hace es simplemente cambiar el valor lógico al contrario de eso.

El resultado de eso se verá así:

Casos de uso común de los operadores lógicos

Es posible que hayas visto estos operadores lógicos antes. Si alguna vez haz hecho un filtro en una tabla, mira lo que dice la barra de fórmulas:

Sí – cuando se trata de filtros, a veces puede que se utilicen los operadores lógicos. Específicamente cuando necesitas seleccionar múltiples valores o parámetros para una expresión de filtro.

Aparte de esto, estos operadores lógicos se usan comúnmente en las declaraciones IF, así que echemos un vistazo a ellos.

Declaraciones IF anidadas

Ahora que sabemos qué son los operadores lógicos y cómo usarlos, intentemos usarlos de una manera más práctica.

Haciendo un resumen de cómo funcionan las instrucciones en Power Query, tiene la siguiente fórmula:

if <test> then <resultado si es verdadero> else <resultado si es falso>

Los resultados de  <test> deben de ser TRUE o FALSE, o en otras palabras, un valor lógico.

Teniendo esto en cuenta, para el <result si es verdadero> o el <resultado si es falso> puedes usar otra declaración if sin ningún problema.

Escenario práctico: Cálculo del coste de envío de un pedido

Imagina que tenemos esta tabla:

y a partir de ella debemos calcular el costo de envío según esta lógica:

Traduciendo eso de M al español simple:

  • Si la cuenta del pedido es Prime Y el peso es inferior a 5 kg Y [Amount] es superior a 100, el costo de envío para el cliente será 0 (¡ENVÍO GRATUITO!)
  • Si no ocurre lo anterior, entonces si la cuenta es Prime Y [Amount] es superior a 200, entonces el costo de envío es 0 (¡ENVÍO GRATIS!)
  • Si no ocurre ninguno de estos, simplemente se utilizará una fórmula estándar para calcular el costo del envío, que es el peso por 1.25

El resultado de esto es:

Bastante simple, pero súper útil para entender cómo usar estos operadores lógicos. Puedes combinarlos como desees y de la manera que te sea más práctica o que tenga más sentido para ti.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.