다음을 통해 공유


SWITCH

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

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일치하는 항목이 없으므로 elsevalue 반환됩니다. values 일치 andelseIfnone 지정되지 않고 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 반환되지 않습니다. 이 예제의 결과는 항상 AorC있지만 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
        )