Логические функции возвращают одно из двух булевых значений — ИСТИНА (TRUE) или ЛОЖЬ (FALSE). X всегда либо больше, либо не больше Y, значение из одной ячейки либо равно значению из другой, либо нет (немножко беременной быть нельзя; мы либо даем клиенту скидку, либо не даем и т. д.).
Ниже мы рассмотрим основные логические функции на примерах.
Чтобы сравнить две ячейки, достаточно поставить между ссылками на них знак «равно»:
=A1=B1
Для решения этой задачи воспользуемся функцией IF (ЕСЛИ). Ее синтаксис:
IF(источник; значение при соблюдении условия; значение при несоблюдении условия)
источник — это логическое выражение или ссылка на ячейку с ним; источник всегда равен единице или нулю, ИСТИНА или ЛОЖЬ;
значение при соблюдении условия — значение, которое вернет функция, если первый аргумент — источник — равен TRUE (ИСТИНА);
значение при несоблюдении условия — значение, которое вернет функция, если первый аргумент — источник — равен FALSE (ЛОЖЬ).
В нашем случае логическое выражение — это сравнение двух ячеек
A2=B2
В случае их равенства будем возвращать слово «Равны», в противном случае — модуль разницы (функция ABS) между ячейками:
=IF(A2=B2;"Равны";ABS(B2-A2))
=ЕСЛИ(A2=B2;"Равны";ABS(B2-A2))
Еще один пример использования функции IF. Мы будем сравнивать дату оплаты с сегодняшней. Если дата оплаты меньше сегодняшней — оплата уже прошла и формула возвратит текст «прошла». Иначе — текст «в плане».
Сегодняшняя дата (системная) возвращается функцией TODAY(), у которой нет аргументов:
=IF(G2<TODAY();"прошла";"в плане")
=ЕСЛИ(G2<СЕГОДНЯ();"прошла";"в плане")
В таблице ниже занесены результаты трех попыток каждого из спортсменов. В отдельной ячейке находится критерий — проходной балл, который нужно набрать хотя бы один раз.
Проверим достижение этого балла с помощью функции OR (ИЛИ), сравнивая каждую попытку с исходным критерием:
=IF(OR(B2>$G$1;C2>$G$1;D2>$G$1);"Да";"Нет")
=ЕСЛИ(ИЛИ(B2>$G$1;C2>$G$1;D2>$G$1);"Да";"Нет")
А если задача стоит иначе и нужно во всех трех попытках превзойти критерий — поменяем функцию OR (ИЛИ) на AND (И):
В первом столбце нашей таблицы указаны суммы сделок, а во втором мы хотим рассчитать скидки.
При этом скидки мы выдаем при покупке от определенной суммы, которая занесена в отдельную ячейку. Размер скидки в процентах также занесен в отдельную ячейку. Все параметры легко поменять.
Для решения этой простой задачи понадобится функция IF (ЕСЛИ).
Логическое выражение — сравнение суммы сделки с той суммой, которая является минимальной для скидки:
сумма сделки больше минимальной суммы для скидки
A2>$E$1
Если сравнение верное — умножаем сумму сделки на ставку:
сумма сделки*ставка скидки
A2*$E$2
Если же оно неверно (сумма слишком мала) — скидку не даем и возвращаем 0.
В итоге получаем функцию:
=IF(A2>$E$1;A2*$E$2;0)
=ЕСЛИ(A2>$E$1;A2*$E$2;0)