Найти тему
Андрей Сухов

Функция МАКС вместо ЕСЛИ. Разбираем задание ЕГЭ по информатике за 2021

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

Синтаксис функции ЕСЛИ
Синтаксис функции ЕСЛИ

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

Для примера разберем задачу из демонстрационного варианта ЕГЭ по информатике за 2021 год.

Задание из демонстрационного варианта ЕГЭ по информатике за 2021 год
Задание из демонстрационного варианта ЕГЭ по информатике за 2021 год

Есть робот, который может перемещаться по клеткам только вправо или вниз. В каждой клетке находится монетка разного достоинства - от 1 до 100. Нужно посчитать, какую максимальную и минимальную сумму может собрать робот, перемещаясь из верхнего левого угла таблицы в нижний правый ее угол. В нижней часте задания даны ответы для приведенного примера и можно на них ориентироваться.

Так как нам по ходу перемещения робота нужно суммировать значения собранных им монет, то создадим еще одну таблицу. Робот стартует из верхней левой ячейки диапазона и если посчитаем, что он будет двигаться только вправо, то для первой строки получим следующую формулу - к значению текущей ячейки прибавим значение предыдущей.

Формула для вычисления суммы монет при движении робота вправо
Формула для вычисления суммы монет при движении робота вправо

То есть в каждой ячейке новой таблицы будет лежать максимальная сумма, которую может собрать робот, дойдя до этой ячейки.

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

Формула для вычисления суммы монет при движении робота вниз
Формула для вычисления суммы монет при движении робота вниз

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

Расчет суммы монет в других ячейках диапазона
Расчет суммы монет в других ячейках диапазона

То есть если сумма значения текущей ячейки с накопленным значением из ячейки слева будет больше, чем сумма значений из текущей ячейки с накопленным значением из ячейки сверху, то выводим первую сумму, иначе вторую.

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

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

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

Ну а чтобы найти минимально возможную сумму значений нужно просто в созданном ранее условии заменить знак больше, на меньше.

Вычисление наименьшей суммы собранных монет
Вычисление наименьшей суммы собранных монет

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

В данной ситуации намного проще вместо логической функции ЕСЛИ воспользоваться функциями МАКС и МИН.

Например, в случае с поиском максимальной суммы мы могли бы сравнивать два значения из соответствующих ячеек (слева и сверху) и выбирать лишь большее из них. Затем к этому значению прибавляем значение самой ячейки.

Решение первой задачи с помощью функции МАКС
Решение первой задачи с помощью функции МАКС

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

Все! Формула готова! Осталось лишь раскопировать ее на диапазон ячеек, равный по размеру основной таблице и мы снова получим верный результат.

Размножив формулу на равный по размеру диапазон, получим верный результат
Размножив формулу на равный по размеру диапазон, получим верный результат

Ну а изменив в формуле функцию МАКС на МИН, получим решение для второй части задачи.

Функция МИН
Функция МИН

Функции МАКС и МИН в некоторых ситуациях являются отличной заменой функции ЕСЛИ, например, когда нужно из массива данных выбрать положительные или отрицательные значения.

Функция ЕСЛИ в такой ситуации выглядела бы следующим образом - если значение больше нуля, то выводим само значение, иначе ноль.

Условие с функцией ЕСЛИ
Условие с функцией ЕСЛИ

Но вместо громоздкого условия с функцией ЕСЛИ можно ввести простое сравнение значения с нулем. Соответственно, с помощью функции МАКС мы получим положительные значения, а с помощью функции МИН отрицательные.

Аналогичное условие с функцией МАКС
Аналогичное условие с функцией МАКС

По этой причине в ряде случаев проще использовать функции МАКС и МИН, нежели функцию ЕСЛИ.

Ссылки на мои ресурсы по Excel

YouTube-канал по Excel и Word

Телеграм

Авторские курсы

Наука
7 млн интересуются