다음을 통해 공유


스위치

적용 대상: 계산 열 계산 테이블 측정 시각적 계산

값 목록에 대해 식을 평가하고 가능한 여러 결과 식 중 하나를 반환합니다. 이 함수는 중첩된 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
        )