Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
columna Calculada
tabla calculada
Medida
cálculo visual
Evalúa una expresión con una lista de valores y devuelve una de varias expresiones de resultado posibles. Esta función se puede usar para evitar tener varias instrucciones IF anidadas.
Sintaxis
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parámetros
| Término | Definición |
|---|---|
expression |
Cualquier expresión DAX que devuelva un único valor escalar donde la expresión se va a evaluar varias veces (para cada fila o contexto). |
value |
Valor constante que se va a coincidir con los resultados de expression. |
result |
Cualquier expresión escalar que se va a evaluar si los resultados de expression coinciden con el valuecorrespondiente. |
else |
Cualquier expresión escalar que se va a evaluar si el resultado de expression no coincide con ninguno de los argumentos de value. |
Valor devuelto
Si hay una coincidencia con un value, se devuelve un valor escalar del result correspondiente. Si no hay ninguna coincidencia con un value, se devuelve un valor de else. Si no se especifica ninguna coincidencia de values y no se especifica else, se devuelve BLANK.
Observaciones
- El
expressionque se va a evaluar puede ser un valor constante o una expresión. Un uso común de esta función es establecer el primer parámetro enTRUE. Vea los ejemplos siguientes. - Todas las expresiones
resulty la expresiónelsedeben ser del mismo tipo de datos. - El orden de las condiciones es importante. En cuanto una
valuecoincide, se devuelve elresultcorrespondiente y no se evalúan otrasvaluesposteriores. Asegúrese de que losvaluesmás restrictivos que se van a evaluar se especifican antes devaluesmenos restrictivo. Vea los ejemplos siguientes.
Ejemplos
Un uso común de SWITCH es comparar expression con valuesconstantes . En el ejemplo siguiente se crea una columna calculada de nombres de mes:
= SWITCH (
[Month Number Of Year],
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"Unknown month number"
)
Otro uso común de SWITCH es reemplazar varias instrucciones de IF anidadas. Esto se logra estableciendo la expresión en TRUE, como se muestra en el ejemplo siguiente, que compara Reorder Point and Safety Stock Level en productos para identificar posibles riesgos de quedarse sin existencias:
= SWITCH (
TRUE,
[Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
[Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
[Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
"Unknown"
)
El orden de values importa. En el ejemplo siguiente, nunca se devuelve el segundo result porque el primer valor es menos restrictivo que el segundo. El resultado de este ejemplo siempre es A o C, pero nunca B.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
La siguiente instrucción devuelve un error porque los tipos de datos de los argumentos result son diferentes. Tenga en cuenta que los tipos de datos de todos los result y else argumentos deben ser los mismos.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)