SWITCH

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

Вычисляет выражение по списку valuesand возвращает одно из нескольких возможных выражений результатов. Эту функцию можно использовать, чтобы избежать нескольких вложенных IFstatements.

Синтаксис

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

Параметры

Термин Определение
expression Любое выражение DAX, возвращающее один скалярный value, где выражение вычисляется несколько раз (для каждой строки или контекста).
value Константная value, соответствующая результатам expression.
result Любое скалярное выражение, вычисляемое if результатов expression соответствует соответствующему value.
else Любое скалярное выражение, которое необходимо оценить, if результат expression не соответствует ни одному из аргументов value.

Возврат value

If возвращается скалярная value из соответствующего result совпадение с value. If не соответствует value, возвращается value из else. If none and else соответствия values не указан, возвращается BLANK.

Замечания

  • Вычисляемая expression может быть константой valueor выражения. Обычно эта функция используется для задания параметра first значение TRUE. См. приведенные ниже примеры.
  • All result выражения and выражение else должно иметь одинаковый тип данных.
  • Порядок условий имеет значение. Как только один 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 является replace несколько вложенных IFstatements. Это достигается путем задания выражения TRUE, как показано в следующем примере, которое сравнивает уровень запаса безопасности переупорядочения and безопасности на продуктах для выявления потенциальных рисков выхода из запасов:

= 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 вопросов. В следующем примере secondresult никогда не возвращается, так как firstvalue меньше ограничений, чем second. Результат в этом примере всегда AorC, но никогда не B.

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

Следующая инструкция возвращает error, так как типы данных в аргументах result отличаются. Помните, что типы данных в allresultandelse аргументах должны совпадать.

= SWITCH (
        [Class],
        "L", "Large",
        "H", 0.1
        )