A nivel de análisis una de las herramientas mas importantes que podemos encontrar es la capacidad de establecer sentencias condicionales.
Todo analista en cualquier momento va a necesitar agrupar datos para poder realizar un mejor análisis.
Aquí es donde nos encontramos en Power BI con IF y SWITCH.
Función IF
En primer lugar vamos a definir la función IF con la descripción que Power BI nos proporciona.
IF = Comprueba si se cumple una condición y devuelve un valor si se evalúa como TRUE y otro valor si se evalúa como FALSE.
Su sintaxis es la siguiente:
IF(
logical_test,
value_if_true
[, value_if_false])
¿Qué significa esto?
Logical_test : Se trata de la condición que vamos a evaluar y de cuyo resultado dependerá la devolución del valor que pongamos en value_if_true y value_if_false.
value_if_true : Es el valor que nos devolverá si la condición logical_test resulta ser verdadera.
value_if_false : Es el valor que nos devolverá si la condición logical_test resulta ser falsa.
como es mejor verlo que contarlo vamos a comprender su funcionamiento con un ejemplo.
En nuestro ejemplo queremos clasificar a nuestros agentes en 3 rangos de edad:
De 20-29
De 30-39
+ 40.
Para poder realizar el ejemplo lo haremos mediante la creación de una columna calculada utilizando la sintaxis que hemos comentado anteriormente con los datos de nuestra tabla d_Agentes de TI.
Rango edad IF = IF('d_Agentes de TI'[Edad]<30,"20-29",
IF('d_Agentes de TI'[Edad]<40,"30-39",
"40 +"))
La función IF de Power BI DAX utilizada para la creación del rango de edad, verifica si la edad de cada fila es menor que 30 y menor que 40.
Si es verdadero, la columna devuelve los rangos detallados en la función; de lo contrario, devolverá 40 +.
Función SWITCH
Tal y como hemos hecho en IF vamos a definir la función SWITCH como lo hace Power BI.
SWITCH = Devuelve resultados diferentes en función del valor de una expresión.
La función SWITCH tiene dos sintaxis diferentes:
SWITCH(
expression,
value, result
[, value, result]…
[, else])
SWITCH(
TRUE(),
condition, result
[, condition, result]…
[, else])
¿Y qué significa todo esto?
Expression : Es la expresión que vamos a evaluar y nos tiene que devolver un escalar.
Condition : Es la expresión que vamos a evaluar y nos tiene que devolver un booleano.
Value: Valor constante con el que vamos a comparar el resultado de la evaluación de la Expression.
Result: Es el valor que nos devuelve en el caso de que Value coincida con el resultado de la Expression o si se satisface el resultado la condición incluida en el argumento Condition.
Else: Es el argumento opcional que incluimos cuando queremos que nos devuelva un valor diferente si no se cumple el resultado de la Expression o no satisface la condición incluida en Condition.
Siguiendo el ejemplo de los rangos de edades vamos a crear una nueva columna con SWITCH para comprobar las diferencias entre ambas funciones. En nuestro caso vamos a utilizar la segunda sintaxis con TRUE.
Rango edad switch = SWITCH(
TRUE(),
'd_Agentes de TI'[Edad]<30,"20-29",
'd_Agentes de TI'[Edad]<40,"30-39",
"40 +")
Como podéis observar nos devuelve exactamente el mismo resultado. A simple vista podemos ver que para SWITCH no hemos tenido que utilizar SWITCH en cada expresión como sí ocurre en IF.
¿Cuál es la diferencia entre IF y SWITCH?
La función IF se utilza cuando queremos comprobar un verdadero o falso, en cambio la función SWITCH es para comparar un valor contra una serie de valores.
La función IF se utiliza para valores booleanos mientras que la función SWITCH es utilizada para valores de datos fijos.
Si vamos a seleccionar entre un gran número de valores la función SWITCH funcionará con más velocidad que la función IF.
La función SWITCH es más legible que una función IF.
Y ya sabes, si te ha resultado útil esta información ayudame compartiéndola en tu red social favorita.
Excelente información Noelia!!
Muchas Gracias!
Muchas gracias Oscar, me alegro de que te sea útil 😊
Excelente, muy buena iniciativa, yo estoy en el mismo camino de pasarme a Análisis de datos y esta es una gran forma de hacerlo. Gracias por la inspiración
Exelente. Gracias por compartir.
La manera en la que enseñas es muy didáctica y simple de aplicar. Gracias por hacerlo de esa forma.
Muchas gracias Jaime!