Hoy vuelvo ha escribir con otra novedad. Algo que hacemos muy a menudo en nuestros cálculos con formulas en Power BI es validar si tenemos un resultado que es BLANK(), para asignarle un valor adecuado y tener un valor correcto en nuestro visual.

Hasta ahora, lo que se nos ocurría hacer era validar nuestro calculo con una expresión IF. Por ejemplo, veamos el siguiente código:

IF (ISBLANK ( PurchaseOrder[Amount] ),PurchaseOrder[Net Amount],PurchaseOrder [Amount])

Cuando estamos trabajando con measures, en lugar de columnas, el calculo lo solemos hacer con variables, de la siguiente forma:

VAR Result = [TestMeasure]
VAR Default = [TestMeasure2]
VAR ReturnResult = IF (ISBLANK ( Result),Default,Result)
RETURN ReturnResult

En la anterior expresión, estamos evaluando dos veces la misma measure, una vez para hacer el If y otra vez para devolver el resultado en caso de que se haya pasado la validación.

Desde ahora tenemos la función COALESCE disponible en DAX Power BI.

Con la nueva función COALESCE, vamos a tener, por un lado, un código más legible y, por otro lado, una mejora en el performance ya que evaluamos y mostramos el resultado correspondiente, en una sola instrucción.

COALESCE ( [Result], [Default] )

La función COALESCE acepta múltiples argumentos y devuelve el primero que no es blanco. Si el primer argumento es blanco, esta función devuelve el valor que proporcione la expresión en el segundo argumento. Si todos los argumentos son blancos, la función devolverá el valor en blanco.

El código final quedaría así:

VAR Result = [TestMeasure]
VAR Default = [TestMeasure2]
VAR ReturnResult = COALESCE ( [Result], [Default] )
RETURN
ReturnResult

Hay que decir que el rendimiento de la función COALESCE es igual al de un IF, ya que es lo que implementa internamente, pero si que nos ayuda a la legibilidad de nuestro código.

Última modificación: abril 15, 2020

Autor

Comentarios

Comenta o responde a los comentarios

Tu dirección de correo no será publicada.