SWITCH
values and 목록에 대해 식을 계산하여 여러 가능한 결과 식 중 하나를 반환합니다. 이 함수는 중첩된 IFstatements여러 개 사용하지 않도록 하는 데 사용할 수 있습니다.
구문
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
매개 변수
용어 | 정의 |
---|---|
expression |
단일 스칼라를 반환하는 모든 DAX 식은 식이 여러 번 계산되는 value(각 행/컨텍스트에 대해). |
value |
expression 결과와 일치시킬 상수 value. |
result |
expression 결과가 해당 value 일치하는지 if 평가할 스칼라 식입니다. |
else |
expression 결과를 if 계산할 스칼라 식은 value 인수와 일치하지 않습니다. |
반환 value
value
일치하는 If 해당 result
스칼라 value 반환됩니다.
If
value
일치하는 항목이 없으므로 else
value 반환됩니다.
values
일치 andelse
Ifnone 지정되지 않고 BLANK 반환됩니다.
설명
- 계산할
expression
식에 valueor 상수일 수 있습니다. 이 함수의 일반적인 용도는 first 매개 변수를TRUE
설정하는 것입니다. 아래 예제를 참조하세요. -
else
식에 andAllresult
식은 동일한 데이터 형식이어야 합니다. - 조건의 순서가 중요합니다. 한
value
일치하면 해당result
반환되고 and 다른 후속values
평가되지 않습니다. 평가할 가장 제한적인values
덜 제한적인values
전에 지정해야 합니다. 아래 예제를 참조하세요.
예제
SWITCH 일반적인 용도는 expression
상수 values
비교하는 것입니다. 다음 예제에서는 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"
)
SWITCH 또 다른 일반적인 용도는 중첩된 여러 IFstatementsreplace 것입니다. 이 작업은 다음 예제와 같이 식을 TRUE
설정하여 수행됩니다. 이 예제에서는 제품의 Reorder Point and Safety Stock Level을 비교하여 재고 부족의 잠재적 위험을 식별합니다.
= 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"
)
values
순서가 중요합니다. 다음 예제에서는 firstvaluesecond덜 제한적이므로 secondresult
반환되지 않습니다. 이 예제의 결과는 항상 A
orC
있지만 B
않습니다.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
다음 문은 result
인수의 데이터 형식이 다르기 때문에 error 반환합니다.
all
result
and
else
인수의 데이터 형식은 동일해야 합니다.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)