Miguel Escobar Publicada mayo 28, 2019

Lógica Condicional: Columnas Condicionales

Power BIPower Query

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:

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:

image

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):image

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

image

¡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»:

image

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í:

image

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

image

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

image

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):

image

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:

image

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í:

image

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í:

image

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
Power BIPower Query
Subscribe
Notify of
guest
12 Comentario
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Jose Ambrocio

Genial Miguel gracias por compartir tu conocimiento es de mucho apoyo

lig

hola tengo unas tablas con estado por ejemplo situación de pedido 1,2,3 cada uno tiene un significado que los directivo no entienden no quiero llenarme de tablas con descripción , quiero crear columnas que condicione su valor, en base a otra tabla. agradezco su comentario.

JUAN

BUEN DIA,

TENGO DOS TABLAS RELACIONADAS NECESITO CREAR UNA COLUMNA SIEMPRE Y CUANDO ESE CAMPO RELACIONADO SEAN IGUALES COMO PODRIA HACERLO

Horacio Sánchez

Buen día:
Tengo una consulta, me piden que cree una dimensión donde pueda hacer agrupaciones de datos, esto se refiere a que cree una tabla nueva en Power BI, o se puede hacer dentro de una tabla ya existente?
Muchas Gracias.

luis cardozo

buen dia, en mi editor de power query no me aparece para agregar la columna condicional como es su imagen , esto se debe a mi paquete office o lo sacaron para usar directamente la formula

Alejandro

Estimado, buenas tardes. Tengo una columna(1) con 3 registros de texto, pero 1 vacío (ejemplo: pedro;»vacío»;javier), otra columna(2) con 3 registros con 2 vacíos (ejemplo: vacío, juan; vacío). Como hago para que en una columna(3) se unan los registros no vacíos (ejemplo: pedro; juan; javier)???

Adrian Barrera

Hola, hago esta consulta porque no se donde buscar, tengo el Power BI desktop que se actualizar desde un archivo de Sharepoint, pero hay una columna de esa tabla que power bi no reconoce y directamente no aparece en el editor de power query,
Desde ya agradezco su comentario.
Saludos