Как в Power BI вывести условие по ячейке
Зачастую, загрузив данные в Power Bi необходимо добавить столбец данных, основанный на значениях в другом столбце. Приведу пример из рекламы, когда мы выгружаем данные из рекламных источников в Power Bi (неважно через базу данных или файлом) то как правило получаем довольно емкие данные. Например дата, кампания, показы, переходы, расходы.
При этом нам необходимо выделить из столбца кампаний дополнительный уровень иерархии, например тип семантики. На скрине есть кампания содержащая _target_competitors_ , которая говорит о том, что это поисковая кампания на запросы конкурентов.
Соответственно все кампании, содержащие _target_competitors_ должны в новом столбце получить тип «Семантика конкуренты».
Добавление нового столбца
Чтобы сделать условия добавим новый столбец и пропишем там формулу.
Давайте разберём формулу.
Сегмент = IF(ISNUMBER(SEARCH("_target_competitors_",[campaign],1,BLANK())),"Семантика Конкуренты","Прочее")
IF — Если;
ISNUMBER — если число;
FIND — поиск.
Формула работает так → Если функция ISNUMBER получает число от поиска FIND (то есть FIND находит в ячейке указанный текст «_target_competitors_» и возвращает число), то функция IF заносит в ячейку значение из первых кавычек «Семантика Конкуренты». Если же не получает число, то заносит в ячейку «Прочее».
Такой набор формул может накладываться один на другой, тем самым перебирая разные значения содержимого, например:
Сегмент = IF(ISNUMBER(SEARCH("_target_competitors_",[campaign],1,BLANK())),"Семантика Конкуренты",
IF(ISNUMBER(SEARCH("_target_brand_",[campaign],1,BLANK())),"Семантика Бренд",
"Прочее"))
Аналогичные формулы работают не только в DAX Power BI, но и в Екселе и в Гугл Таблицах, что позволяет быстро добавлять уровни отчётности в зависимости от содержимого.
Важно
Именования ваших кампаний должно быть стандартизировано и делаться по единому шаблону и порядку. Пример со скрина g_s_target_competitors_msk, можно расшифровать как «гугл кампания_на поиске_семантическая_запросы конкурентов_регион Мск).
Об этом подробнее я уже рассказывал в своей статье.