SWITCH
s’applique à :colonne calculéetable calculéeMeasurecalcul visuel
Évalue une expression par rapport à une liste de valuesand retourne l’une des plusieurs expressions de résultat possibles. Cette fonction peut être utilisée pour éviter d’avoir plusieurs IFstatementsimbriquées.
Syntaxe
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Paramètres
Terme | Définition |
---|---|
expression |
Toute expression DAX qui retourne une seule value scalaire où l’expression doit être évaluée plusieurs fois (pour chaque ligne/contexte). |
value |
Constante value à mettre en correspondance avec les résultats de expression . |
result |
Toute expression scalaire à évaluer if les résultats de expression correspondent à la value correspondante. |
else |
Toute expression scalaire à évaluer if résultat de expression ne correspond à aucun des arguments value . |
Retourner value
If il existe une correspondance avec un value
, un value scalaire du result
correspondant est retourné.
If il n’y a pas de correspondance avec un value
, un value de else
est retourné.
If
none de la correspondance values
andelse
n’est pas spécifiée, BLANK est retournée.
Remarques
- La
expression
à évaluer peut être une constante valueor une expression. Une utilisation courante de cette fonction consiste à définir le paramètre first surTRUE
. Voir les exemples ci-dessous. -
All
result
expressions and l’expressionelse
doit être du même type de données. - L’ordre des conditions est important. Dès qu’une
value
correspond, laresult
correspondante est retournée, and'autresvalues
ultérieures ne sont pas évaluées. Assurez-vous que lesvalues
les plus restrictives à évaluer sont spécifiées avantvalues
moins restrictives. Voir les exemples ci-dessous.
Exemples
Une utilisation courante de SWITCH consiste à comparer expression
avec des values
constantes. L’exemple suivant crée une colonne calculée de noms 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"
)
Une autre utilisation courante de SWITCH consiste à replace plusieurs IFstatementsimbriquées. Pour ce faire, définissez l’expression sur TRUE
, comme illustré dans l’exemple suivant, qui compare le niveau de stock de recommandation de point and sécurité sur les produits afin d’identifier les risques potentiels d’épuisement du stock :
= 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’ordre de values
compte. Dans l’exemple suivant, la secondresult
n’est jamais retournée, car la firstvalue est moins restrictive que la second. Le résultat de cet exemple est toujours A
orC
, mais jamais B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
L’instruction suivante retourne un error, car les types de données dans les arguments result
sont différents. N’oubliez pas que les types de données dans allresult
andelse
arguments doivent être identiques.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)