스위치
값 목록에 대해 식을 평가하고 가능한 여러 결과 식 중 하나를 반환합니다. 이 함수는 중첩된 IF 문이 여러 개 없는 것을 방지하는 데 사용할 수 있습니다.
구문
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
매개 변수
용어 | 정의 |
---|---|
식 | 식을 여러 번 계산할 단일 스칼라 값을 반환하는 DAX 식입니다(각 행/컨텍스트에 대해). |
value | 식의 결과와 일치시킬 상수 값입니다. |
result | 식의 결과가 해당 값과 일치하는지 평가할 스칼라 식입니다. |
else | 식의 결과가 값 인수와 일치하지 않는 경우 계산할 스칼라 식입니다. |
반환 값
값과 일치하는 항목이 있으면 해당 결과의 스칼라 값이 반환됩니다. 값과 일치하는 항목이 없으면 다른 값이 반환됩니다. 일치하는 값이 없고 다른 값이 지정되지 않으면 BLANK가 반환됩니다.
설명
- 계산할 식은 상수 값 또는 식일 수 있습니다. 이 함수의 일반적인 용도는 첫 번째 매개 변수를 TRUE로 설정하는 것입니다. 아래 예제를 참조하세요.
- 모든 결과 식과 다른 식은 동일한 데이터 형식이어야 합니다.
- 조건의 순서가 중요합니다. 한 값 이 일치하면 해당 결과가 반환되고 다른 후속 값 은 평가되지 않습니다. 평가할 가장 제한적인 값이 덜 제한적인 값보다 앞에 지정되어 있는지 확인합니다. 아래 예제를 참조하세요.
예제
SWITCH의 일반적인 용도는 식을 상수 값과 비교하는 것입니다. 다음 예제에서는 월 이름의 계산 열을 만듭니다.
= 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의 또 다른 일반적인 용도는 중첩된 여러 IF 문을 바꾸는 것입니다. 이 작업은 다음 예제와 같이 식을 TRUE로 설정하여 제품의 재주문 지점 및 안전 재고 수준을 비교하여 재고 부족의 잠재적 위험을 식별합니다.
= 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"
)
값의 순서가 중요합니다. 다음 예제에서는 첫 번째 값이 두 번째 값보다 덜 제한적이므로 두 번째 결과가 반환되지 않습니다. 이 예제의 결과는 항상 "A" 또는 "C"이지만 "B"는 없습니다.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
다음 문은 결과 인수의 데이터 형식이 다르므로 오류를 반환합니다. 모든 결과 및 기타 인수의 데이터 형식은 동일해야 합니다.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)