$ sudo teach IT

Любой рабочий отчёт рано или поздно требует не просто цифры, а вывод. Кому начислить премию? Какие заказы просрочены? Что пора закупать? Ответы обычно ищут глазами: прокручивают таблицу и помечают строки вручную. Работает это только пока строк немного и данные не меняются.

Условные функции переносят эту логику из головы в ячейку. Вы один раз описываете правило — «если сумма больше 50 000, то премия, иначе нет» — и таблица применяет его к каждой строке сама, а при изменении чисел мгновенно пересчитывает вывод. После урока вы сможете размечать данные по любому правилу, объединять несколько условий и строить проверки с тремя и более вариантами ответа.

Что уже умеем

В прошлом уроке вы разобрались со ссылками: научились копировать формулы вниз по столбцу, закреплять ячейки знаком доллара, давать диапазонам имена и обращаться к другим листам. Это ровно тот навык, который нужен сейчас: условную формулу пишут один раз в первой строке и растягивают на всю таблицу, а порог сравнения удобно держать в отдельной ячейке с абсолютной ссылкой.

Все функции, которые вы знали до сих пор, только считали. Сегодня добавим функции, которые сравнивают и выбирают: IF, AND, OR, вложенные проверки и IFS, — а в конце научимся считать сразу по условию с помощью COUNTIF и SUMIF.

Что вы узнаете в рамках статьи

В этом уроке вы:

  • разберётесь в устройстве функции IF и её трёх аргументах;
  • научитесь писать условия для чисел, текста и пустых ячеек;
  • объедините несколько условий через AND и OR;
  • построите проверку с несколькими вариантами через вложенный IF и IFS;
  • научитесь возвращать из условия не только текст, но и вычисление;
  • посчитаете количество и сумму по условию функциями COUNTIF и SUMIF.

Ключевые термины

  • Условие — выражение, которое может быть только верным или неверным, например B2>50000.
  • IF — функция, возвращающая одно значение, если условие верно, и другое, если неверно.
  • TRUE и FALSE — логические значения «верно» и «неверно», результат проверки условия.
  • AND — функция, дающая TRUE только когда верны все условия.
  • OR — функция, дающая TRUE когда верно хотя бы одно условие.
  • Вложенный IF — одна функция IF, подставленная внутрь другой для разбора нескольких вариантов.
  • COUNTIF и SUMIF — функции, которые считают количество строк и сумму значений только по тем строкам, где выполнено условие.

Функция IF: три аргумента и одно решение

Функция IF устроена просто. В ней три аргумента: проверяемое условие, значение на случай, если оно верно, и значение на случай, если неверно.

=IF(условие; значение_если_верно; значение_если_неверно)

Заполните таблицу с результатами продавцов за месяц:

  A B C D
1 Продавец Продажи Статус Премия
2 Анна 78000 Активен  
3 Борис 42000 Активен  
4 Вера 91000 Отпуск  
5 Глеб 35000 Активен  
6 Дина 64000 Отпуск  
7 Егор 52000 Активен  

Введите в D2 формулу и скопируйте её до D7:

=IF(B2>50000; "Премия"; "Без премии")

Таблица сравнит число в B2 с порогом и подставит подходящий текст. Ссылка B2 относительная, поэтому в D3 формула сама превратится в =IF(B3>50000; ...). Результат:

Продавец Премия
Анна Премия
Борис Без премии
Вера Премия
Глеб Без премии
Дина Премия
Егор Премия

Текст в формуле обязательно берётся в двойные кавычки, а числа пишутся без них. Порог 50000 лучше вынести в отдельную ячейку и ссылаться на неё абсолютно, например $F$1: тогда при смене плана вы поправите одно число, а не шесть формул.

Из чего складывается условие

Условие — это сравнение. В Google Таблицах доступны такие операторы:

Оператор Значение Пример Когда верно
> больше B2>50000 продажи выше порога
< меньше B2<40000 продажи ниже порога
>= больше или равно B2>=50000 ровно 50000 подходит
= равно C2="Активен" статус совпадает
<> не равно C2<>"Отпуск" статус любой, кроме отпуска

Отдельно стоит проверка на пустоту: B2<>"" означает «ячейка заполнена». При сравнении текста регистр букв не важен: C2="активен" сработает и для значения «Активен». А вот лишний пробел в конце значения проверку сломает — с такими случаями разберёмся в следующем уроке.

Несколько условий сразу: AND и OR

Часто одного условия мало: справедливее давать премию тем, кто и выполнил план, и работал весь месяц. Здесь нужна функция AND — она даёт TRUE, только если верны все перечисленные условия. Введите в D2 и скопируйте вниз:

=IF(AND(B2>50000; C2="Активен"); "Премия"; "Без премии")

Теперь премию получат только Анна и Егор. Вера с её 91 000 останется без премии: план перевыполнен, но она была в отпуске, и второе условие не сработало.

Функция OR работает наоборот: ей достаточно, чтобы сработало хотя бы одно условие. Отметим тех, с кем нужно поговорить, — отстающих или отсутствовавших:

=IF(OR(B2<50000; C2="Отпуск"); "Обсудить"; "Всё в порядке")

Метка «Обсудить» появится у Бориса, Веры, Глеба и Дины. Внутри AND и OR можно перечислять и больше двух условий.

Больше двух вариантов: вложенный IF и IFS

Функция IF выбирает только между двумя значениями. Если вариантов больше, вторую проверку подставляют вместо аргумента «иначе». Присвоим продавцам уровень:

=IF(B2>=75000; "Золото"; IF(B2>=50000; "Серебро"; "Бронза"))

Читается по цепочке: если продажи 75 000 и больше — «Золото»; иначе проверяем, дотягивают ли они до 50 000, и если да — «Серебро»; в остальных случаях — «Бронза». Анна и Вера получат «Золото», Дина и Егор — «Серебро», Борис и Глеб — «Бронзу».

Важен порядок условий: проверки идут сверху вниз, и срабатывает первая подходящая. Если поставить B2>=50000 первым, Анна с её 78 000 тоже попадёт в «Серебро» — её значение больше 50 000, и до проверки на золото дело не дойдёт.

Когда вариантов много, читать такую матрёшку тяжело. Тогда удобнее функция IFS: в ней условия и ответы перечисляются парами.

=IFS(B2>=75000; "Золото"; B2>=50000; "Серебро"; B2<50000; "Бронза")

Результат тот же, но формула плоская и понятная. Учтите: если ни одно условие не выполнится, IFS вернёт ошибку #N/A, поэтому последнюю пару делайте заведомо срабатывающей.

Условие, которое считает

Возвращать из IF можно не только текст, но и вычисление. Начислим 10 процентов от продаж тем, кто выполнил план:

=IF(AND(B2>50000; C2="Активен"); B2*0,1; 0)

У Анны получится 7800, у Егора — 5200, у остальных — 0. Такой столбец уже можно суммировать формулой =SUM(D2:D7) и получить бюджет премий — 13000.

До сих пор условие работало построчно: каждая формула смотрела на свою строку. Но часто нужен итог по всей таблице с оговоркой: сколько продавцов выполнили план, сколько заработали только активные. Для этого есть две функции, которые считают сразу по условию.

COUNTIF считает, в скольких ячейках диапазона условие выполнилось. Ей нужны два аргумента: где искать и что искать.

=COUNTIF(B2:B7; ">50000")

Получится 4 — план перевыполнили Анна, Вера, Дина и Егор. Обратите внимание на кавычки: условие со знаком сравнения записывается целиком как текст, вместе с оператором. С текстовым значением проще — =COUNTIF(C2:C7; "Активен") даст 4 активных сотрудника.

SUMIF вместо подсчёта строк складывает числа. У неё три аргумента: диапазон для проверки условия, само условие и диапазон, из которого брать суммы.

=SUMIF(C2:C7; "Активен"; B2:B7)

Формула проверит статусы в столбце C и сложит продажи только из подходящих строк — получится 207000 из общих 362000. Условие проверяется в одном столбце, а суммируется другой, и Таблицы сопоставляют их по номеру строки. Если проверяем и складываем один и тот же столбец, третий аргумент не нужен: =SUMIF(B2:B7; ">50000") даст 285000.

Именно так собирают короткие сводки под таблицей: пара строк с COUNTIF и SUMIF заменяет ручной пересчёт и обновляется сама при любой правке данных.

[Скриншот: столбец «Премия» с формулой IF в формульной строке и подсвеченными аргументами]

Частые ошибки

  • Текст без кавычек. Запись =IF(B2>50000; Премия; Нет) вернёт ошибку #NAME?: Таблицы решат, что «Премия» — имя диапазона. Любой текст в формуле берите в двойные кавычки.
  • Неверный порядок условий во вложенном IF. Если сначала проверять мягкое условие, строгое уже никогда не сработает. Выстраивайте проверки от узкого к широкому.
  • Путаница между AND и OR. Задайте себе вопрос: нужно, чтобы выполнялись все условия, или достаточно любого? В первом случае AND, во втором OR.
  • Условие в COUNTIF без кавычек. Запись =COUNTIF(B2:B7; >50000) не сработает: условие со знаком сравнения нужно целиком взять в кавычки — ">50000".

Частые вопросы

  • Чем IFS отличается от вложенного IF?
    Результат одинаковый, разница в читаемости. IFS перечисляет пары «условие, ответ» подряд и не требует вложенности, поэтому удобнее при трёх и более вариантах.
  • Можно ли оставить ячейку пустой, если условие не выполнилось?
    Да, укажите две кавычки подряд: =IF(B2>50000; "Премия"; ""). Ячейка будет выглядеть пустой — удобно, когда важно видеть только сработавшие строки.
  • Почему условие с текстом не срабатывает, хотя значение вроде бы совпадает?
    Чаще всего в данных есть невидимый лишний пробел или опечатка. Проверить это помогут текстовые функции, о которых мы поговорим дальше.

Итоги

Поздравляем: ваша таблица научилась думать. Теперь вы умеете описывать правило функцией IF, составлять условия для чисел, текста и пустых ячеек, объединять требования через AND и OR и разбирать несколько вариантов вложенными проверками или функцией IFS. А ещё вы увидели, что условие может возвращать не только метку, но и расчёт, и научились считать итоги по условию через COUNTIF и SUMIF.

Это большой шаг: именно с условных функций начинается автоматизация отчётов. По пути мы дважды столкнулись с тем, что проверка текста ломается из-за лишних пробелов и разного написания. В следующем уроке займёмся этим вплотную: разберём текстовые функции, которые чистят данные, режут строки на части и собирают их обратно.