Логические функции и сложные алгоритмы

Логические функции и сложные алгоритмы ExcelЛогические функции и сложные алгоритмы в Excel.

Логические функции Excel, пожалуй, одни из моих самых любимых.

Ведь с помощью них можно закладывать практически любые алгоритмы расчетов!

Фактически, мы занимаемся программированием, комбинируя различные функции друг с другом.

И это не более сложно, чем писать формулы сложения или умножения, о которых я писал в статье «Excel для начинающих II«.

Мы рассмотрим функции ЕСЛИ, И, ИЛИ.

Начнем с ключевой логической функции ЕСЛИ. Она, фактически, задает алгоритмы, которые многие учились строить на информатике в школе.

Структура ее такова:

Выглядеть это будет так: =ЕСЛИ(A1>10;»Много»;»Мало»).

Внесем эту формулу в ячейку А3. А в ячейке А1 запишем число 5. Должно появиться слово «Мало». Исправим 5 на 50. Появится слово «Много». Все работает!

Очень часто, одного условия бывает недостаточно.

В этом случае мы можем вкладывать функцию ЕСЛИ саму в себя, таким образом, увеличивая количество условий. Допустим, нам необходимо определить сумму надбавки за разряд работнику (см.рисунок).

Логика очевидна — если разряд 4-й, то платим 4000 руб, если 3-й3000 руб, и т.д. Вот как это выглядит в формуле (для знающих оговорюсь — мне известно, что оптимальнее, в данном случае, использовать ВПР :-)): =ЕСЛИ(C8=A2;B2;ЕСЛИ(C8=A3;B3;ЕСЛИ(C8=A4;B4;ЕСЛИ(C8=A5;B5;0)))). Лично я, для себя, когда начинаю писать нечто подобное, чтобы не сбиться, начинаю про себя проговаривать алгоритм (читаем формулу слева на право):

Таким образом у нас получилось четыре условия ЕСЛИ, вложенных друг в друга.

Эти две функции, как правило, используются как вспомогательные для функции ЕСЛИ. С помощью них нельзя вызвать какое-либо значение, так как они просто проверяют — истинны или ложны условия, которые в них заложены.

Рассмотрим пример — нашему работнику положена премия, но только в том случае, если им была пройдена аттестация, и не было дисциплинарных взысканий.

То есть, только при соблюдении двух условий одновременно.

Напишем формулу: =ЕСЛИ(И(F8=»Да»;G8=»Нет»);5000;0). Пропишем текстом:

Это же условие можно прописать и с помощью функции ИЛИ. Просто мы пойдем от обратного:

Во втором случае нужно понимать, что если ячейки F8 и G8 не будут заполнены, то премия работнику будет выплачена.

Поэтому нельзя сказать, что обе формулы идентичны. Первая говорит о том, что только при выполнении обоих условий премия будет выплачена, а вторая — если будет отмечено хотя бы одно нарушение, то премия не будет выплачена.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *