Course
Dominar SWITCH en DAX para Power BI: Guía completa
La función SWITCH()
de Power BI es una función DAX lógica que proporciona una forma más estructurada y legible de manejar múltiples condiciones que las sentencias IF()
anidadas.
En este tutorial, examinaremos en detalle la función SWITCH()
. Hablaremos de lo que es, de cómo utilizarla y de algunos escollos comunes y buenas prácticas para utilizar la función.
Para iniciarte en Power BI y DAX, consulta nuestro tema de habilidades Fundamentos de Power BI y ten a mano nuestra Hoja de trucos DAX para tener una referencia rápida sobre muchas de las funciones DAX más útiles que encontrarás.
¿Qué es la función SWITCH en Power BI?
La función SWITCH()
de DAX para Power BI facilita la escritura de sentencias condicionales. Evalúa una expresión y luego la compara con una serie de valores, devolviendo el primer resultado coincidente.
SWITCH()
puede sustituir a varias declaraciones anidadas IF()
condensando varias condiciones en una sola función. Esto da lugar a expresiones DAX más limpias y sencillas, más fáciles de leer y mantener. También mejora la legibilidad de tus fórmulas, facilitándote a ti y a los demás la comprensión y modificación de tus cálculos.
Sintaxis básica y uso
La sintaxis básica de la función SWITCH()
es:
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
- Expresión: La expresión que se evalúa.
- Valor: Los valores que se comparan con la expresión.
- Resultado: Los resultados que se devuelven si la expresión coincide con el valor correspondiente.
- Else: Un resultado opcional que se devuelve si ninguno de los valores coincide con la expresión.
Aquí tienes un consejo rápido para leer declaraciones de sintaxis básica (como la anterior) que encontrarás habitualmente en tutoriales y en la documentación oficial de Microsoft Power BI. La declaración anterior muestra dos conjuntos de parámetros y
, con el segundo conjunto entre corchetes. Esto significa que puede haber más de un conjunto de valores y resultados opcionales para la función
SWITCH()
. Del mismo modo, la parte de la función también va entre corchetes, por lo que también es opcional.
Comparación con declaraciones IF anidadas
La forma tradicional de manejar múltiples condiciones en DAX implicaría sentencias SI anidadas, que pueden volverse rápidamente complejas y difíciles de leer. Por ejemplo, manejar cuatro condiciones requeriría tres funciones IF anidadas. En cambio, la función SWITCH()
agiliza esto al permitir una lista directa de pares condición-resultado, mejorando tanto la legibilidad como la mantenibilidad.
Aunque varias sentencias IF anidadas pueden conseguir el mismo resultado que SWITCH()
, se sigue prefiriendo SWITCH()
porque son más fáciles de escribir y menos propensas a errores. Muchas llamadas a IF()
también pueden afectar negativamente al rendimiento de un informe. Sin embargo, es bueno recordar que la función SWITCH()
también puede afectar al rendimiento del informe. Por eso, más adelante en este tutorial hablaremos de estrategias para optimizar tus funciones SWITCH()
junto con algunas buenas prácticas.
Idoneidad para cálculos complejos
SWITCH()
es especialmente adecuado para situaciones en las que tienes un conjunto definido de posibles valores para una expresión y un resultado correspondiente para cada uno de ellos.
Es más limpio y eficaz que utilizar varias sentencias IF()
anidadas, especialmente a medida que aumenta el número de condiciones. Esto hace que SWITCH()
sea una opción excelente para cálculos complejos en los que la legibilidad y el rendimiento son importantes.
Sin embargo, aunque SWITCH()
puede mejorar la legibilidad, sus ventajas de rendimiento respecto a las sentencias IF()
anidadas dependen en gran medida del caso de uso específico y del modelo de datos subyacente.
Cómo utilizar la función SWITCH en Power BI
Estos ejemplos ilustran la versatilidad de la función SWITCH()
para abordar diversos escenarios empresariales en Power BI. Sustituyendo las complejas sentencias anidadas IF()
por SWITCH()
, puedes conseguir fórmulas DAX más claras y fáciles de mantener.
Ejemplo 1: Análisis de categorías de ventas
Imagina que una empresa quiere clasificar sus ventas en distintos niveles en función del importe total de las ventas para analizar su rendimiento comercial con mayor eficacia.
En la fórmula DAX siguiente, utilizamos la función SWITCH()
para asignar una categoría de ventas basada en el importe total de las ventas. Verás que utilizamos la función lógica TRUE()
como expresión de nuestra fórmula. Esto se debe a que SWITCH()
sólo busca coincidencias exactas, y queremos utilizar operadores como mayor que y menor que en nuestra fórmula. Por lo tanto, al establecer la expresión en TRUE()
, SWITCH()
evaluará cada condición hasta encontrar una coincidencia (es decir, cuando el resultado sea verdadero).
Sales Category =
SWITCH(
TRUE(),
[Total Sales] < 10000, "Low Sales",
[Total Sales] < 50000, "Medium Sales",
[Total Sales] >= 50000, "High Sales",
"Unknown")
Aquí tienes el resultado en Power BI:
Ejemplo 2: Estrategia de descuento de productos
Supongamos que una cadena minorista aplica distintos porcentajes de descuento a los productos en función de su precio de venta neto para maximizar la rentabilidad. Quieren calcular el valor total de las ventas con descuento en su tienda.
En la siguiente fórmula DAX, utilizamos la función SWITCH()
dentro de una variable. Como no necesitaremos utilizar la fórmula para el porcentaje de descuento en ninguna otra parte de nuestro informe, podemos reducir los cálculos repetidos y evaluarla sólo dentro de esta fórmula para las ventas con descuento.
DiscountedSales =
VAR DiscountPct = SWITCH(
TRUE,
Sales[Net Price] <= 150, 0.15,
Sales[Net Price] <= 500, 0.2,
Sales[Net Price] <= 1000, 0.3,
0
)
VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
RETURN
DiscountAmount
Aquí tienes el resultado en Power BI:
Errores comunes y cómo evitarlos
Esta sección repasa algunos errores comunes al utilizar la función SWITCH()
con recomendaciones para evitarlos.
1. Uso excesivo para afecciones simples
Utilizar SWITCH()
para situaciones en las que bastaría con una simple sentencia SI puede complicar innecesariamente tus fórmulas DAX.
En su lugar, reserva SWITCH()
para casos con afecciones múltiples. Para una o dos condiciones, considera la posibilidad de utilizar IF por simplicidad.
2. Impacto en el rendimiento con grandes conjuntos de datos
El uso extensivo de la función SWITCH()
, especialmente con expresiones complejas, puede ralentizar el rendimiento del informe en grandes conjuntos de datos.
Optimiza las expresiones en SWITCH()
calculando previamente las partes complejas mediante variables. Las variables hacen que la expresión SWITCH()
sea más limpia y fácil de entender, contribuyendo indirectamente a la optimización al reducir la posibilidad de cálculos redundantes o innecesarios.
Calcula expresiones comunes o partes complejas de tus condiciones una sola vez y guárdalas en variables. Esto evita recalcular la misma expresión varias veces dentro de la función SWITCH()
.
3. Uso ineficaz por defecto
Utilizar mal el caso por defecto en SWITCH()
para tratar errores o valores inesperados sin la debida consideración puede conducir a resultados incorrectos.
Define claramente las condiciones y maneja explícitamente los escenarios conocidos. Utiliza funciones como IFERROR
o ISBLANK
para gestionar valores inesperados o ausentes.
4. Malinterpretar el contexto
Olvidar que SWITCH()
evalúa en el contexto actual puede dar lugar a resultados inesperados, sobre todo cuando se utiliza dentro de contextos de filas o filtros. Consulta nuestro curso Introducción a DAX, donde tratamos los contextos con más detalle.
Cuando diseñes tus expresiones SWITCH()
, ten siempre en cuenta el contexto actual de la fila o del filtro. Utiliza juiciosamente funciones de transición de contexto como CALCULATE()
para ajustar el contexto según sea necesario.
5. Orden de las operaciones
Pasar por alto el orden de las condiciones en la declaración SWITCH()
puede conducir a resultados inesperados, ya que la función SWITCH()
evalúa las condiciones en el orden en que están definidas y utiliza la primera condición coincidente.
Asegúrate de que cada caso aparece en la secuencia correcta, igual que harías con las sentencias IF()
anidadas.
Buenas prácticas SWITCH
Aquí tienes algunas buenas prácticas para utilizar SWITCH()
con eficacia:
-
Utilízalo para condiciones múltiples:
SWITCH()
es ideal cuando tienes más de dos comprobaciones condicionales. Hace que tu fórmula sea más fácil de leer y mantener que las sentenciasIF()
anidadas. -
Define claramente todos los casos: Tu función
SWITCH()
debe cubrir todos los escenarios posibles, incluyendo un caso por defecto para manejar valores inesperados. Esto garantiza que tus cálculos sean sólidos y menos propensos a errores. -
Optimiza el rendimiento: Mantén las expresiones dentro de
SWITCH()
lo más sencillas posible para evitar problemas de rendimiento cuando trabajes con grandes conjuntos de datos. Utilizar variables para almacenar resultados intermedios puede ayudar a minimizar la carga computacional. -
Prueba a fondo: Especialmente cuando utilices
SWITCH()
para lógicas complejas, asegúrate de probar a fondo tus resultados en diferentes escenarios. Esto ayuda a detectar cualquier error lógico o caso que se te haya pasado por alto.
Conclusión
Si buscas una forma más eficaz y versátil de manejar múltiples condiciones en Power BI, SWITCH()
es la respuesta. A diferencia de las sentencias SI anidadas, la función SWITCH()
condensa varias condiciones en una sola función, lo que da lugar a expresiones DAX más limpias y sencillas que son más fáciles de leer y mantener. Además, mejora la legibilidad de tus fórmulas, facilitándote a ti y a los demás la comprensión y modificación de tus cálculos.
Sin embargo, evita cometer algunos errores comunes al utilizar la función SWITCH()
y sigue las buenas prácticas que hemos tratado en este tutorial.
Si te tomas en serio la idea de iniciar una carrera como desarrollador de Power BI, consulta nuestra guía paso a paso para convertirte en desarrollador de BI junto con el completo itinerario profesional de Analista de Datos en Power BI, que te enseñará todo lo que necesitas saber para empezar a utilizar Power BI en la práctica.
Conviértete en Analista de Datos de Power BI
Domina la herramienta de inteligencia empresarial más popular del mundo.
Comienza hoy tu viaje a Power BI
Course
Introducción a DAX en Power BI
Course