SWITCH
Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo
Valuta un'espressione rispetto a un elenco di valuesand restituisce una delle più espressioni di risultato possibili. Questa funzione può essere usata per evitare di avere più IFstatementsannidati.
Sintassi
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametri
Termine | Definizione |
---|---|
expression |
Qualsiasi espressione DAX che restituisce un singolo value scalare in cui l'espressione deve essere valutata più volte (per ogni riga/contesto). |
value |
Costante value da associare ai risultati di expression . |
result |
Qualsiasi espressione scalare da valutare if i risultati di expression corrispondono al value corrispondente. |
else |
Qualsiasi espressione scalare da valutare if il risultato di expression non corrisponde ad alcuno degli argomenti value . |
Restituisce value
If viene restituita una corrispondenza con un value
, viene restituita una value scalare del result
corrispondente.
If non esiste una corrispondenza con un value
, viene restituito un value da else
.
If
none della corrispondenza values
andelse
non viene specificata, viene restituito BLANK.
Osservazioni:
- Il
expression
da valutare può essere una costante valueor un'espressione. Un uso comune di questa funzione consiste nell'impostare il parametro first suTRUE
. Vedere gli esempi seguenti. -
All
result
espressioni and l'espressioneelse
deve essere dello stesso tipo di dati. - L'ordine delle condizioni è importante. Non appena viene restituita una
value
, viene restituita laresult
corrispondente, and altrevalues
successive non vengono valutate. Assicurarsi che ivalues
più restrittivi da valutare siano specificati prima divalues
meno restrittivi. Vedere gli esempi seguenti.
Esempi
Un uso comune di SWITCH consiste nel confrontare expression
con la costante values
. Nell'esempio seguente viene creata una colonna calcolata di nomi month:
= 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"
)
Un altro uso comune di SWITCH consiste nel replace più IFstatementsannidati. Questa operazione viene eseguita impostando l'espressione su TRUE
, come illustrato nell'esempio seguente, che confronta Reorder Point and Safety Stock Level sui prodotti per identificare i potenziali rischi di esaurimento delle scorte:
= 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"
)
L'ordine dei values
è importante. Nell'esempio seguente il secondresult
non viene mai restituito perché il firstvalue è meno restrittivo rispetto al second. Il risultato di questo esempio è sempre A
orC
, ma non B
mai .
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
L'istruzione seguente restituisce un error perché i tipi di dati negli argomenti result
sono diversi. Tenere presente che i tipi di dati in allresult
andelse
argomenti devono essere uguali.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)