Events
Apr 8, 3 PM - May 28, 7 AM
Sharpen your AI skills and enter the sweepstakes to win a free Certification exam
Register now!This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Applies to:
Calculated column
Calculated table
Measure
Visual calculation
Evaluates an expression against a list of values and returns one of multiple possible result expressions. This function can be used to avoid having multiple nested IF statements.
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Term | Definition |
---|---|
expression |
Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). |
value |
A constant value to be matched with the results of expression . |
result |
Any scalar expression to be evaluated if the results of expression match the corresponding value . |
else |
Any scalar expression to be evaluated if the result of expression doesn't match any of the value arguments. |
If there’s a match with a value
, a scalar value from the corresponding result
is returned. If there isn’t a match with a value
, a value from else
is returned. If none of the values
match and else
isn’t specified, BLANK is returned.
expression
to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE
. See examples below.result
expressions and the else
expression must be of the same data type.value
matches, the corresponding result
is returned, and other subsequent values
aren’t evaluated. Make sure the most restrictive values
to be evaluated are specified before less restrictive values
. See examples below.A common use of SWITCH is to compare expression
with constant values
. The following example creates a calculated column of month names:
= 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"
)
Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE
, as shown in the following example, which compares Reorder Point and Safety Stock Level on products to identify potential risks of running out of 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"
)
The order of values
matters. In the following example, the second result
is never returned because the first value is less restrictive than the second. The result in this example is always A
or C
, but never B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
The following statement returns an error because the data types in the result
arguments are different. Keep in mind that the data types in all result
and else
arguments must be the same.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)
Events
Apr 8, 3 PM - May 28, 7 AM
Sharpen your AI skills and enter the sweepstakes to win a free Certification exam
Register now!