Записки охотника

Конструкция Switch

Конструкции
Рвав-рвав,

сегодня мы рассмотрим использование конструкции «Switch». Лично для меня это одна из наиболее часто используемых функций, так как именно с ее помощью мы можем прицепить к исходным данным великое множество «синтетических» аналитик.

Пример

Имеется базовый набор данных, на основе которого нам требуется обогатить исходные данные:
Базовый набор данных (таблица t_Dataset)
Для вашего удобства, на иллюстрациях мы будем отображать только часть информации.
В оригинале этот набор данных содержит:
  • 100 строк;
  • 24 породы;
  • 9 групп;
  • 7 цветов;
  • 2 пола (естественно).

Задача

Продемонстрировать различные варианты использования функции «Switch».

Односоставное условие

Если необходимый результат зависит от выполнения одного условия, заданного явным образом, то можно использовать простую конструкцию следующего вида:
Size =
SWITCH (
    't_Dataset'[Breed],
    "Немецкая овчарка""Крупный",
    "Джек Рассел терьер""Мелкий",
    "Болонка (итальянская)""Мелкий",
    "Чихуахуа""Мелкий",
    "Английский кокер-спаниель""Средний",
    "Сибирский хаски""Крупный",
    "Такса (гладкошерстная)""Средний",
    "Лабрадор-ретривер""Крупный",
    "Бельгийская овчарка""Крупный",
    "Йоркширский терьер""Мелкий",
    "Не определено"
)
Результат работы формулы:
Добавление столбца Size (таблица t_Dataset)

Проверка диапазона

Если необходимый результат предполагает некий диапазон данных со многими значениями, то можно модернизировать нашу конструкцию следующим образом:
Price Category =
SWITCH (
    TRUE (),
    't_Dataset'[Puppy Price] >= 50000"Высокая",
    't_Dataset'[Puppy Price] >= 30000"Средняя",
    't_Dataset'[Puppy Price] < 30000"Низкая"
)
Результат работы формулы:
Добавление столбца Price Category (таблица t_Dataset)

Многосоставное условие

Если необходимый результат зависит от одновременного выполнения нескольких условий, тогда используемая конструкция должна иметь следующий вид:
Country Origin =
SWITCH (
    TRUE (),
    AND (
        't_Dataset'[Group] = "Овчарки",
        't_Dataset'[Breed] = "Немецкая овчарка"
    )"Германия",
    AND (
        't_Dataset'[Group] = "Овчарки",
        't_Dataset'[Breed] = "Бельгийская овчарка"
    )"Бельгия"
)
Результат работы формулы:
Добавление столбца Country Origin (таблица t_Dataset)

Результат

В итоге, при помощи DAX, а именно функции «Switch» в ее различных вариациях, базовый набор данных был расширен дополнительными синтетическими аналитиками:
  • размер — столбец «Size»;
  • ценовая категория — столбец «Price Category»;
  • страна происхождения — столбец «Country Origin».
Всегда на стреме,


Ваш Смайл