IF vs SWITCH en DAX y Power BI

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.

Facebook
Twitter
LinkedIn
WhatsApp

🤞 ¡No te pierdas ningún artículo!

¡No hacemos spam!

Noelia Navarro

Empecé mi carrera profesional en departamentos de administración contable, laboral y logística permitiéndome desarrollar nuevas técnicas para mejorar mi trabajo y descubrir así mi verdadera pasión el análisis de datos.
4.3 3 votes
Article Rating
Subscribe
Notify of
guest

6 Comentarios
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Oscar

Excelente información Noelia!!
Muchas Gracias!

Emmanuel

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

Marcelo Femenía

Exelente. Gracias por compartir.

JAIME

La manera en la que enseñas es muy didáctica y simple de aplicar. Gracias por hacerlo de esa forma.