1. Логические функции: принятие решений в таблицах
Логические функции: принятие решений в таблицах
Представь, что ты — учитель, который вручную выставляет десятки оценок: «Зачет» или «Незачет» по баллам, или «Отлично», «Хорошо», «Удовлетворительно» по процентам. Это рутинно, долго и чревато ошибками. А теперь представь, что таблица сама анализирует баллы и выставляет нужную оценку мгновенно. Именно так работают логические функции — они превращают таблицу из пассивного хранилища данных в инструмент, который принимает решения по заданным тобой правилам.
Самая базовая и важная логическая функция — ЕСЛИ (IF). Её синтаксис прост: она проверяет одно условие и возвращает одно значение, если условие истинно, и другое — если ложно. Допустим, в ячейке B2 у нас количество решённых задач, а в C2 мы хотим видеть статус. Формула будет выглядеть так: =ЕСЛИ(B2>=10;"Сдал";"Не сдал"). Функция проверяет: «Является ли значение в B2 больше или равно 10?». Если да — пишет «Сдал», если нет — «Не сдал». Протянув эту формулу вниз, мы автоматически оценим весь класс за секунду.
Но что, если условий несколько? Например, для получения гранта нужно одновременно иметь средний балл выше 4.5 И посещаемость выше 95%. Здесь на помощь приходят логические операторы И (AND) и ИЛИ (OR). Функция И вернет «ИСТИНА», только если все перечисленные в ней условия выполнены. Функция ИЛИ вернет «ИСТИНА», если хотя бы одно из условий выполнено. Их часто используют внутри функции ЕСЛИ.
Рассмотрим практический пример. У нас есть таблица успеваемости ученика: средний балл (ячейка D2) и процент посещаемости (ячейка E2). Формула для определения права на грант: =ЕСЛИ(И(D2>4.5; E2>95); "Грант одобрен"; "Нужно улучшить результаты"). Функция И внутри ЕСЛИ проверяет оба условия. Только если оба истинны, ученик получит одобрение. Если мы хотим давать грант тем, у кого либо высокий балл, либо идеальная посещаемость, заменим И на ИЛИ.
> Логические функции — это не просто «да/нет». Это способ создавать ветвящиеся алгоритмы прямо в ячейках, превращая электронную таблицу в простейший экспертный систему.
С развитием задач условий становится больше. Например, нужно не просто «сдал/не сдал», а выставить оценку по шкале: выше 90% — «5», от 75% до 89% — «4», от 60% до 74% — «3», ниже 60% — «2». Вложенные ЕСЛИ (=ЕСЛИ(B2>=90%;"5"; ЕСЛИ(B2>=75%;"4"; ...))) решат задачу, но такая формула быстро становится сложной для чтения и отладки.
Для упрощения подобных многоступенчатых проверок существует функция ЕСЛИМН (IFS). Она проверяет условия по порядку и возвращает результат для первого выполненного. Формула для нашей системы оценивания: =ЕСЛИМН(B2>=90%;"5"; B2>=75%;"4"; B2>=60%;"3"; ИСТИНА;"2"). Последний аргумент ИСТИНА — это условие «по умолчанию», которое сработает, если не выполнилось ни одно из предыдущих. ЕСЛИМН гораздо читабельнее вложенных ЕСЛИ.
Ещё одна полезная функция — ЕСЛИОШИБКА (IFERROR). Она позволяет контролировать, что увидит пользователь, если формула возвращает ошибку (например, деление на ноль или отсутствие данных). Вместо непонятного #ДЕЛ/0! можно вывести осмысленное сообщение: =ЕСЛИОШИБКА(A2/B2; "Данные отсутствуют"). Это делает таблицу не только умнее, но и дружелюбнее.
Теперь соберём всё вместе в реальном кейсе. Допустим, мы автоматизируем систему бонусов для сотрудников магазина. У нас есть данные: сумма продаж (столбец B), стаж в месяцах (столбец C), количество жалоб (столбец D). Правила такие:
Формула в ячейке E2 будет выглядеть так:
=МАКС(0; B210% + ЕСЛИ(C2>12; B25%; 0) - D2B22%)
Разберём её по частям:
B2*10% — базовый бонус.ЕСЛИ(C2>12; B2*5%; 0) — проверка стажа и начисление дополнительного процента.D2B22% — штраф за жалобы (количество жалоб умножается на 2% от продаж).Протянув эту формулу на всю таблицу, мы мгновенно рассчитаем бонусы для всех сотрудников, учтя все условия и исключения. Изменим любое исходное данные — бонус пересчитается автоматически. Это и есть суть автоматизации: задать правила один раз, а рутинную работу поручить таблице.