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>])Con la tecnología de
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).
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
DiscountAmountCon la tecnología de
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 sentencias IF() 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.
Aprende qué es DAX y descubre la sintaxis y las funciones DAX fundamentales que necesitarás para llevar tus conocimientos de Power BI al siguiente nivel.
Explore las diferencias clave y las características únicas de los cuadros de mando e informes de Power BI. Aprenda a aprovechar eficazmente ambas herramientas para el análisis de datos, la visualización y la toma de decisiones.
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 sentenciasIF()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 anidadasIF()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: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ónSWITCH(). Del mismo modo, la partede 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 prefiriendoSWITCH()porque son más fáciles de escribir y menos propensas a errores. Muchas llamadas aIF()también pueden afectar negativamente al rendimiento de un informe. Sin embargo, es bueno recordar que la funciónSWITCH()también puede afectar al rendimiento del informe. Por eso, más adelante en este tutorial hablaremos de estrategias para optimizar tus funcionesSWITCH()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 queSWITCH()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 sentenciasIF()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 anidadasIF()porSWITCH(), 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ógicaTRUE()como expresión de nuestra fórmula. Esto se debe a queSWITCH()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 enTRUE(),SWITCH()evaluará cada condición hasta encontrar una coincidencia (es decir, cuando el resultado sea verdadero).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.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ónSWITCH()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
IFERRORoISBLANKpara 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 comoCALCULATE()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ónSWITCH()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ónSWITCH()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.