excelфункция еслиеслимнаналитикаsql

Функция ЕСЛИ в Excel: вложенные, ЕСЛИМН, примеры

2026-07-10 11 мин

Коротко: Функция ЕСЛИ в Excel проверяет условие и возвращает одно из двух значений: =ЕСЛИ(условие; значение_если_истина; значение_если_ложь). Для нескольких условий их либо вкладывают друг в друга (вложенные ЕСЛИ), либо — что чище — используют ЕСЛИМН (IFS) начиная с Excel 2019 и 365. Как только ветвлений становится больше 4–5 или данных больше сотни тысяч строк, ту же логику разумнее писать через CASE WHEN в SQL — это ровно тот же приём, только читаемый и масштабируемый.

Разберу ЕСЛИ не на абстрактных «сдал/не сдал», а на реальных задачах аналитика: проставить флаг оттока, собрать грейды по выручке, сегментировать клиентов. И покажу, как эта же логика один в один переносится в SQL и pandas, когда таблица перестаёт помещаться в оперативку.

Как работает функция ЕСЛИ и из чего она состоит?

ЕСЛИ (в англоязычном Excel — IF) — это тернарный оператор: одно логическое условие и две ветки исхода. Синтаксис ровно из трёх аргументов:

=ЕСЛИ(лог_выражение; значение_если_истина; значение_если_ложь)

Классическая задача аналитика — проставить бинарный флаг. Допустим, в столбце C лежит выручка клиента за месяц, и нам нужен признак «крупный клиент» с порогом 100 000:

=ЕСЛИ(C2>=100000; "крупный"; "мелкий")

Флаг можно делать и числовым — так удобнее потом суммировать и считать долю:

=ЕСЛИ(C2>=100000; 1; 0)

Если протянуть эту формулу по всему столбцу, а внизу поставить =СРЗНАЧ(D2:D1000), вы сразу получите долю крупных клиентов. Это микро-версия того, что в SQL делается через AVG(CASE WHEN ... THEN 1 ELSE 0 END). Логика ЕСЛИ — фундамент любой сегментации и любого расчёта среднего чека или доли, поэтому её стоит довести до автоматизма, прежде чем переходить к оконным функциям и SQL.

Третий аргумент можно опустить — тогда при ЛОЖЬ вернётся ЛОЖЬ (или 0 в числовом контексте). Но в аналитике лучше писать явно: пустая ветка потом путает при сборке сводных.

Как задать ЕСЛИ с несколькими условиями через И и ИЛИ?

Одно условие — это редкость. Обычно нужно проверить сразу несколько: «клиент из Москвы И выручка выше 100 тысяч». Для этого внутрь ЕСЛИ вкладывают функции И (AND) и ИЛИ (OR).

Пример: помечаем VIP-клиента — из столицы и с крупным чеком одновременно:

=ЕСЛИ(И(B2="Москва"; C2>=100000); "VIP"; "обычный")

Пример с ИЛИ: клиент считается «рисковым по оттоку», если он либо не заходил больше 30 дней, либо снизил активность до нуля:

=ЕСЛИ(ИЛИ(E2>30; F2=0); "риск оттока"; "активен")

И и ИЛИ комбинируются. Скажем, VIP — это (Москва ИЛИ Санкт-Петербург) И чек от 100 тысяч:

=ЕСЛИ(И(ИЛИ(B2="Москва"; B2="Санкт-Петербург"); C2>=100000); "VIP"; "обычный")

Здесь важна аккуратность со скобками: каждая функция открывает свою пару. Именно из-за скобок формулы с И/ИЛИ начинают ломаться — про типичные ошибки будет отдельный раздел ниже. Такой флаг оттока — это ровно то, что потом считают как метрику churn rate: доля клиентов с меткой «риск» к общей базе.

Почему вложенные ЕСЛИ превращаются в нечитаемую лапшу?

Когда исходов больше двух, одну ЕСЛИ вкладывают в ветку «ложь» другой. Задача: присвоить клиенту грейд по годовой выручке — A, B, C или D.

=ЕСЛИ(C2>=1000000; "A";
   ЕСЛИ(C2>=500000; "B";
      ЕСЛИ(C2>=100000; "C"; "D")))

Читается так: если выручка от миллиона — грейд A; иначе если от 500 тысяч — B; иначе если от 100 тысяч — C; во всех остальных случаях — D. Работает. Но у вложенных ЕСЛИ три системные проблемы:

Технически Excel разрешает до 64 уровней вложенности, но всё, что глубже 3–4, — это уже долговая яма. Логику невозможно проверить глазами, а через месяц вы сами не вспомните, почему граница именно 500000, а не 490000. Ровно эту боль решают ЕСЛИМН и, на бо́льших объёмах, CASE WHEN в SQL.

Чем ЕСЛИМН (IFS) удобнее вложенных ЕСЛИ?

ЕСЛИМН (в англоязычном Excel — IFS) появилась в Excel 2019 и есть в 365. Она принимает пары «условие; значение» подряд, без вложенности и без хвоста скобок. Тот же грейд:

=ЕСЛИМН(
   C2>=1000000; "A";
   C2>=500000;  "B";
   C2>=100000;  "C";
   ИСТИНА;      "D")

Пары читаются как таблица: слева условие, справа результат. Последняя строка ИСТИНА; "D" — это ветка «во всех остальных случаях», аналог ELSE. Без неё, если ни одно условие не выполнилось, ЕСЛИМН вернёт ошибку #Н/Д, а не пустоту — это частая ловушка.

Сравним подходы напрямую:

КритерийВложенные ЕСЛИЕСЛИМН (IFS)
Читаемость 4+ ветокНизкая, лапшаВысокая, список пар
Закрывающие скобкиПо одной на уровеньОдна на всю формулу
Ветка «иначе»Последний аргументИСТИНА; значение в конце
Версия ExcelЛюбая2019 / 365
Проверка глазамиТяжелоЛегко

Логика ЕСЛИМН — это уже почти дословный SQL. Каждая пара «условие; значение» соответствует одному WHEN ... THEN ..., а ИСТИНА; "D" — это ELSE 'D'. Если ваш Excel старый и ЕСЛИМН недоступна, есть третий путь — таблица порогов и ВПР. Про её механику и подводные камни я разбирал в гайде по ВПР и VLOOKUP: грейды кладут в справочник, а формула подтягивает нужный по диапазону.

Как собрать грейды и сегменты клиентов через ЕСЛИ?

Сегментация — самая частая продуктовая задача, где нужна логика ЕСЛИ. Возьмём упрощённый RFM: делим клиентов по давности последней покупки (Recency, дней) и сумме (Monetary, рублей). Данные:

КлиентДней с покупкиСумма, ₽Сегмент (ожидаем)
Иванов5240 000Чемпион
Петров2060 000Лояльный
Сидоров9015 000Спящий
Козлов2005 000Потерянный

Формула сегмента через ЕСЛИМН (давность в B, сумма в C):

=ЕСЛИМН(
   И(B2<=14; C2>=100000); "Чемпион";
   И(B2<=30; C2>=30000);  "Лояльный";
   B2<=120;               "Спящий";
   ИСТИНА;                "Потерянный")

Обратите внимание: первые две ветки — составные, через И, а порядок опять важен. Чемпион проверяется первым, иначе клиент с давностью 5 дней и суммой 240 тысяч провалился бы сразу в «Лояльный». Грейды сотрудников или скоринг заявок строятся точно так же — меняются только пороги и названия.

Когда сегментов и порогов становится много, поддерживать это в ячейках больно: любое изменение границы — это правка формулы во всём столбце. Промышленный вариант той же RFM-логики я показывал в разборе RFM-сегментации на SQL — там пороги считаются через NTILE и живут в одном месте. Логика идентична вашей формуле ЕСЛИМН, просто выражена в CASE WHEN и применяется ко всей базе одним запросом.

Какие типичные ошибки ломают формулу ЕСЛИ?

Собрал ошибки, которые встречаю у аналитиков чаще всего:

Эти же грабли, кстати, разбирают на собеседованиях — логика условий и приведение типов входят в стандартный набор вопросов для аналитика. Прогнать себя по ним можно на мок-интервью с AI или в банке вопросов по SQL.

Чем ЕСЛИ в Excel похож на CASE WHEN в SQL?

ЕСЛИ и CASE WHEN — это буквально один и тот же приём условной логики, только на разных движках. Возьмём наш грейд по выручке и запишем его в SQL:

SELECT
    client_id,
    revenue,
    CASE
        WHEN revenue >= 1000000 THEN 'A'
        WHEN revenue >= 500000  THEN 'B'
        WHEN revenue >= 100000  THEN 'C'
        ELSE 'D'
    END AS grade
FROM clients;

Сопоставьте построчно с формулой ЕСЛИМН из раздела про грейды — соответствие полное:

Составные условия через И/ИЛИ переезжают в AND/OR один в один. Наш VIP-флаг:

SELECT
    client_id,
    CASE
        WHEN city IN ('Москва', 'Санкт-Петербург') AND revenue >= 100000
            THEN 'VIP'
        ELSE 'обычный'
    END AS segment
FROM clients;

А для доли крупных клиентов вместо «протянуть ЕСЛИ и взять СРЗНАЧ» пишется одна агрегатная строка:

SELECT
    AVG(CASE WHEN revenue >= 100000 THEN 1.0 ELSE 0 END) AS share_large
FROM clients;

Тот же паттерн работает и в pandas — через numpy.select, который читается как ЕСЛИМН:

import numpy as np

conditions = [
    df['revenue'] >= 1_000_000,
    df['revenue'] >= 500_000,
    df['revenue'] >= 100_000,
]
grades = ['A', 'B', 'C']
df['grade'] = np.select(conditions, grades, default='D')

Список conditions — это ваши WHEN, gradesTHEN, а default='D'ELSE. Освоив ЕСЛИ в Excel, вы уже понимаете условную логику во всех трёх инструментах. Разница только в синтаксисе, который добирается за пару часов в SQL-тренажёре или Python-тренажёре.

Когда пора уходить от формул Excel к SQL?

Excel с функцией ЕСЛИ отлично закрывает разовые задачи и прототипы логики. Но есть сигналы, что пора переносить расчёт в SQL или pandas:

Практический маршрут: если вы уверенно пишете ЕСЛИ, ЕСЛИМН и связки И/ИЛИ, вам осталось выучить CASE WHEN и базовый SELECT — и вы делаете то же самое, но на любых объёмах. Начать удобно с SQL с нуля, а закрепить условную логику — на реальных задачах.

Логика ЕСЛИ, которую вы уже знаете, — это и есть половина пути к SQL. В тренажёре первые 5 задач на CASE WHEN и сегментацию открыты бесплатно: перепишите свои грейды и флаги оттока на настоящем PostgreSQL прямо в браузере, без установки. Дальше, если зацепит, открывается полный банк из сотен задач по Pro. Это самый короткий способ превратить навык «умею ЕСЛИ в Excel» в строчку «SQL: уверенно» в резюме — а как оформить остальное, есть отдельный шаблон резюме аналитика.

Смежные материалы, чтобы закрепить тему:

Перенеси логику ЕСЛИ в SQL
Логика ЕСЛИ — это тот же CASE WHEN. Реши 5 задач на CASE и сегментацию бесплатно в тренажёре, дальше открывается Pro.
Открыть SQL-тренажёр →