Урок 21 · 7 мин чтения

Логика и безопасность: IF, SWITCH, DIVIDE, COALESCE

Условия, ветвления и защита от пустых значений — функции, которые встречаются в каждой второй мере.

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

IF — простое условие

IF знаком по Excel один в один: условие, значение если истина, значение если ложь.

Статус выручки =
IF ( [Выручка] >= 1000000, "Цель достигнута", "Ниже цели" )

Хорош, когда веток две. Когда их больше — вложенные IF превращаются в нечитаемую лесенку. Тогда берут SWITCH.

SWITCH — много веток без лесенки

SWITCH ( TRUE(), условие1, значение1, условие2, значение2, ..., иначе ) — чистый способ описать несколько условий подряд:

Размер сделки =
SWITCH ( TRUE (),
    [Выручка] >= 2000000, "Крупный",
    [Выручка] >= 1000000, "Средний",
    "Малый"
)

Читается сверху вниз: первое подошедшее условие выигрывает. Это намного понятнее, чем три вложенных IF, и так же работает для бэндинга, ABC-меток, светофоров.

Правило

Две ветки — IF. Три и больше — SWITCH(TRUE(), …). Вложенные IF глубже двух уровней — почти всегда сигнал переписать на SWITCH.

DIVIDE — безопасное деление

Мы уже встречали его, но повторим как часть набора. Обычное деление падает на нуле в знаменателе; DIVIDE обрабатывает это сам:

Средний чек =
DIVIDE ( [Выручка], [Число заказов] )

Если заказов нет — DIVIDE вернёт пусто (или третий аргумент, если задан), а не ошибку. У DIVIDE есть необязательный третий параметр — что вернуть вместо деления на ноль:

DIVIDE ( [Выручка], [Число заказов], 0 )
Никогда не делите слэшем

[Выручка] / [Число заказов] сломается на первой же пустой группе. DIVIDE — всегда. Это не вкусовщина, а защита отчёта.

COALESCE — заменить пустоту

Мера может вернуть BLANK() — например, выручка по категории, которой нет в текущем срезе. Иногда пусто — это правильно (в графике разрыв лучше нуля). Но иногда нужно показать 0. Для этого — COALESCE: возвращает первое непустое значение.

Выручка (0 вместо пустоты) =
COALESCE ( [Выручка], 0 )
Пусто или ноль — это решение

Не подставляйте 0 машинально. В KPI-карточке 0 уместен; на линии тренда 0 нарисует ложное «падение в пол» там, где данных просто нет. BLANK оставит разрыв — часто это честнее. Выбирайте осознанно.

Эти функции комбинируются

В реальной мере они идут вместе: посчитать долю через DIVIDE, подставить 0 через COALESCE, выбрать ветку через SWITCH. Например, «светофор выполнения плана» — это SWITCH(TRUE(), ...) поверх DIVIDE(факт, план).

Что дальше

Логику освоили. Но во всех примерах с ценой мы тянули её из справочника Товары функцией RELATED и обещали разобрать позже. Пора: следующий урок — про функции, которые ходят по связям между таблицами.

Нужно разложить выручку на «Крупный / Средний / Малый» по трём порогам. Что чище?
Две ветки — IF, три и больше — SWITCH(TRUE()). Он читается сверху вниз и не превращается в нечитаемую лесенку вложенных IF.
Прогресс сохраняется в вашем браузере.
§ Power BI под ключ

Нужно внедрить
это в компании?

Соберём DWH, модель и дашборды под ваши данные. Бесплатная консультация — 30 минут.

Телефон+7 918 042 34 43