Рвав-рвав, сегодня я — собака-наблюдака!
Перед вами — 1-я заметка из нашего нового цикла «Собакенские будни», посвященного описанию некоторых функций языка DAX (Data Analysis eXpressions). Да, вам не почудилось, собака Смайл решил понемногу создавать заметки и в этом направлении, поскольку, как оказалось, это интересно аудитории.
Ниже мы рассмотрим использование конструкции Switch. Лично для меня это одна из наиболее часто используемых функций, так как именно с ее помощью мы можем прицепить к исходным данным великое множество «синтетических» аналитик.Пример:
Имеется набор данных, содержащий 2 критерия, в зависимости от которых нам нужно обогатить исходные данные:
Задача:
Продемонстрировать варианты использования функции Switch.
Односоставное условие:
- Если необходимый результат зависит от выполнения одного условия (см. столбец «Критерий 2»), то можно использовать простую конструкцию следующего вида:
Конструкция Switch =
SWITCH (
'Таблица'[Критерий 2],
"Собака Смайл", "Молодец!",
"Песик Тедди", "Умница :-)",
"Мы еще не определились :-Р"
)
- Результат использования формулы, указанной выше:
Многосоставное условие:
- Если необходимый результат зависит от выполнения комплекса условий (см. дополнительно столбец «Критерий 1»), то исходную конструкцию необходимо дополнить следующим образом:
Конструкция Switch-True =
SWITCH (
TRUE (),
'Таблица'[Критерий 1] = "Джек-рассел-терьер"
&& 'Таблица'[Критерий 2] = "Собака Смайл", "Молодец!",
'Таблица'[Критерий 1] = "Йоркширский терьер"
&& 'Таблица'[Критерий 2] = "Песик Тедди", "Умница :-)",
"Мы еще не определились :-Р"
)
- Результат использования формулы, указанной выше:
Рвав-рвав, в данном случае мы однозначно утверждаем, что собака Смайл, являющийся Джек-рассел-терьером — молодец, Йоркширский терьер песик Тедди — умница, а про всех остальных мы ничего не знаем.
- Однако, следует иметь в виду, что указанная конструкция предусматривает выполнение всех заданных условий, в противном случае результат будет неотличим от общей массы:
Невыполнение условий =
SWITCH (
TRUE (),
'Таблица'[Критерий 1] = "Немецкая овчарка" /*Изменение породы*/
&& 'Таблица'[Критерий 2] = "Собака Смайл", "Молодец!",
'Таблица'[Критерий 1] = "Йоркширский терьер"
&& 'Таблица'[Критерий 2] = "Песик Тедди", "Умница :-)",
"Мы еще не определились :-Р"
)
- Результат использования формулы, указанной выше:
Рвав-рвав, в данном случае мы однозначно утверждаем, что собака Смайл, не являющийся Джек-рассел-терьером, никакой не молодец.
Собственно, на этом все.
Всегда на стреме.
Ваш Смайл