En nuestro ejemplo, la expresión a evaluar ([Category]) devuelve un texto y, como hemos visto, la función SWITCH devuelve el resultado asociado a la primera coincidencia que se encuentre. Esto nos permite usar la expresión de otra forma muy interesante: si la expresión a evaluar devolviese un booleano (True, por ejemplo), la función devolvería el resultado asociado al primer “True” que se encuentre, lo que abre la puerta a usar la función SWITCH con condicionales.
Por ejemplo, imaginemos que queremos dar a cada categoría una etiqueta en función del rango de ventas asociado, pero aplicando más de una condición: Por ejemplo, queremos aplicar la etiqueta “High” si las ventas son mayores o igual a 100 mil euros, “Regular” si, siendo inferiores a 100 mil euros, son mayores o igual a 50 mil euros, y “Low” si no llegan a 50 mil euros. Como ya sabemos, podríamos aplicar funciones IF anidadas, de la siguiente forma:
IF(
[Sales] >= 100000,
"High",
IF(
[Sales] >= 50000,
"Regular",
"Low"
)
)
Esto devolvería el resultado esperado:
Pero, usando la función SWITCH, nuestra columna calculada quedaría del siguiente modo:
SWITCH(
TRUE(),
[Sales] >= 100000, "High",
[Sales] >= 50000, "Regular",
"Low"
)
Es decir, una vez evaluada la expresión (TRUE()), se va comparando este valor con el devuelvo por las comparaciones que se han incluido como argumentos pares (y que, al tratarse de comparaciones, van a devolver True o False) y se devuelve el resultado asociado a la primera coincidencia. Es decir, estamos devolviendo el resultado asociado a la primera condición que se cumpla.