Lógica Condicional: Columnas Condicionales

  • Facebook
  • Twitter
  • LinkedIn

Si vienes de Excel, es probable que hayas visto o escuchado sobre las declaraciones IF y su nueva hermana, el IFERROR (o SI.ERROR).

Recuerdo la primera vez que vi una cadena condicional como la siguiente imagen:

  • Facebook
  • Twitter
  • LinkedIn

Sin embargo, se veía mucho mejor como un diagrama que como una fórmula de Excel – funcionaba bien dentro de Excel.

La pregunta es… ¿cómo funcionan los condicionales en Power BI / Power Query? ¿Tenemos una función de IF? tal vez un IFERROR? ESTA es el artículo donde cubriré este tema.

¿Qué tipo de lógica condicional tenemos en Power BI / Power Query?

En esencia, tenemos 2 tipos de expresiones dentro del lenguaje M (también conocidas como «palabras clave»):

  • expresión if (si) –  essentially the same behavior as the IF function that we have in Excel
  • controlador de errores – CASI igual que el IFERROR de Excel, pero incluso mejor.

En este artículo, cubriré la expresión if, cómo funciona y cómo usarla, y en una siguiente publicación de esta serie cubriremos el controlador de errores o IFERROR en Power BI / Power Query.

Declaración IF (SI) en Power BI / Power Query

El caso: Imagina una tabla simple como esta:

Lo que nos gustaría hacer es crear una nueva columna que debería tener el impuesto total de la transacción. Algunas líneas están sujetas a impuestos y otras no, por lo que la condición es la siguiente:

  • Si la columna [Taxable?] es igual a “Yes”, entonces multiplicar el valor de [Tax] por el valor de la columna [Amount] 

Recuerda que Power BI / Power Query es una herramienta orientada al usuario, por lo que tiene esta interfaz de usuario realmente agradable y única que proporciona una experiencia de usuario enriquecida.

Si no quieres aprender ningún código, puedes usar la Interfaz de Usuario (IU) para lograr casi el 80% de lo que deseas hacer cuando se trata de  preparación de datos dentro de Power Query.

Primero usaremos el método orientado a la interfaz de usuario (IU).

Creando de una columna condicional mediante la interfaz de usuario de Power BI / Power Query

Si vas al menú «Agregar columna» (Add Column), verás el botón «Columna condicional» (Conditional Column):

Al hacer clic en él, aparecerá una nueva ventana llamada ventana «Agregar columna condicional» y se verá así:

¡Es genial! Pero déjame decirte cómo funciona.

En la parte superior izquierda verás un «Nombre de nueva columna» (New column name) y aquí es donde ingresarás el nombre de la nueva columna.

Luego vemos una fila que comienza con «if» (si) y ahí es donde ingresé a la lógica condicional, pero falta una pieza y esa es la salida.

Solo podemos ingresar un valor estático o seleccionar una columna. No tenemos una opción para ingresar una fórmula aquí, por lo que no podemos avanzar con esto. Lo primero que debemos hacer es crear esa columna y referirnos a esa columna una vez que esté en nuestra tabla.

Sigamos adelante y cerremos esta ventana por ahora y regresemos a la ventana de Edición de consultas o ventana de Power Query.

Podemos seleccionar ambas columnas y luego hacer una multiplicación simple a través del menú «Agregar columna»:

pero todavía hay una cosa más que debemos hacer y eso es alrededor de ese valor. Entonces, con el resultado de la operación anterior, seleccionamos esa columna y luego vamos al menú «Transformar» (Transform) y hacemos un redondeado de número desde allí:

y con ese valor ahora en la tabla, podemos volver a la columna condicional y simplemente ingresarlo de esta manera:

Después de esto, simplemente podemos eliminar la columna «Multiplicación» (Multiplication) y eso nos dará el siguiente resultado:

que es exactamente lo que estamos buscando.

Una de las advertencias de todo este proceso es que se basa en muchas capas o pasos porque no podemos ingresar la fórmula directamente desde la ventana de «Agregar columna condicional».

Que tal si pudiéramos hacer todos estos 4 pasos:

  1. Multiplicar las columnas
  2. Redondea el valor de la columna «Multiplicación» de la columna
  3. Crear una columna condicional
  4. Remover la columna «Multiplicación» ya que ya no es necesaria

en solo 1 paso en su lugar… ¿podría ser posible? ¡Seguro que lo es! Averigüemos cómo

Crear una columna condicional usando la ventana de la columna personalizada de Power BI / Power Query

Este método requiere que conozcas el código M, pero puedes ahorrar MUCHO tiempo y te ayudará a minimizar tu código para que no esté «inflado» y sea tan difícil de leer y entender después de que hayas terminado con él

En lugar de ir con la «Columna condicional» del menú «Agregar columna», vamos a ir con la «Columna personalizada» (Custom Column):

y ahora, gracias a todas las actualizaciones que Power Query ha estado recibiendo, es más fácil ingresar la fórmula que necesitamos directamente en la ventana de la columna personalizada. Solo mira esto:

La fórmula anterior hace la multiplicación y el redondeo, pero, ¿qué pasa con la instrucción if (si)?

En Power Query todo es sensible a mayúsculas y minúsculas. En este caso, la instrucción if debería verse exactamente así:

if [#»Taxable?»] = «Yes» then
Number.Round( [Tax] * [Amount], 2)
else 0

Observe cómo todas las partes de la sentencia if están coloreadas en azul. Para hacer un SI anidado, usaríamos el SI otra vez después de las demás, de nuevo, todo es sensible a las mayúsculas, así que tenlo en cuenta.

El resultado final debe verse así:

donde todo se hizo en solo 1 paso.

Asegúrate de revisar las siguientes partes de la serie donde veremos:

  • Operadores lógicos y condicionales anidados.
  • IFERROR en Power Query

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.