Когда речь заходит о проверке значения на соответствие какому-то условию, то в первую очередь возникает желание использовать функцию ЕСЛИ, в которой задается само условия и указываются два сценария - при выполнении условия и при его не выполнении.
Однако далеко не всегда использование функции ЕСЛИ оправдано и можно решить задачу с помощью других, казалось бы не подходящих для этого функций.
Для примера разберем задачу из демонстрационного варианта ЕГЭ по информатике за 2021 год.
Есть робот, который может перемещаться по клеткам только вправо или вниз. В каждой клетке находится монетка разного достоинства - от 1 до 100. Нужно посчитать, какую максимальную и минимальную сумму может собрать робот, перемещаясь из верхнего левого угла таблицы в нижний правый ее угол. В нижней часте задания даны ответы для приведенного примера и можно на них ориентироваться.
Так как нам по ходу перемещения робота нужно суммировать значения собранных им монет, то создадим еще одну таблицу. Робот стартует из верхней левой ячейки диапазона и если посчитаем, что он будет двигаться только вправо, то для первой строки получим следующую формулу - к значению текущей ячейки прибавим значение предыдущей.
То есть в каждой ячейке новой таблицы будет лежать максимальная сумма, которую может собрать робот, дойдя до этой ячейки.
Аналогичная формула будет и в ячейках первого столбца, если робот пойдет только вниз.
С первыми строкой и столбцом все более-менее понятно, а вот в ячейке, которая находится во втором столбце и второй строке новой таблицы придется писать условие и, скорее всего, первым пришедшим на ум решением будет использование функции ЕСЛИ.
То есть если сумма значения текущей ячейки с накопленным значением из ячейки слева будет больше, чем сумма значений из текущей ячейки с накопленным значением из ячейки сверху, то выводим первую сумму, иначе вторую.
Фактически это универсальная формула для оставшейся части новой таблицы, поэтому размножим ее на весь диапазон и получим верный ответ в нижней правой ячейке, в которую робот в итоге должен прийти.
Повторю, что с помощью формул мы получили таблицу, в каждой ячейке которой находится максимальная сумма, которую может собрать робот, дойдя до этой ячейки. В результате в последней ячейки находится ответ на первый вопрос - 41.
Ну а чтобы найти минимально возможную сумму значений нужно просто в созданном ранее условии заменить знак больше, на меньше.
Задача решена, но условие получилось довольно путаным, а значит повышается вероятность допустить ошибку при его составлении, что приведет к неверным результатам.
В данной ситуации намного проще вместо логической функции ЕСЛИ воспользоваться функциями МАКС и МИН.
Например, в случае с поиском максимальной суммы мы могли бы сравнивать два значения из соответствующих ячеек (слева и сверху) и выбирать лишь большее из них. Затем к этому значению прибавляем значение самой ячейки.
По условиям задачи робот у нас не может выходить за пределы таблицы, но в данном случае можем пренебречь этим ограничения для того, чтобы сделать универсальную формулу для всего диапазона. Ведь пустые ячейки в расчетах будут иметь значение равным нулю, а значит никак не повлияют на результат. В то же время относительные ссылки в формуле сделают ее универсальной для всего диапазона.
Все! Формула готова! Осталось лишь раскопировать ее на диапазон ячеек, равный по размеру основной таблице и мы снова получим верный результат.
Ну а изменив в формуле функцию МАКС на МИН, получим решение для второй части задачи.
Функции МАКС и МИН в некоторых ситуациях являются отличной заменой функции ЕСЛИ, например, когда нужно из массива данных выбрать положительные или отрицательные значения.
Функция ЕСЛИ в такой ситуации выглядела бы следующим образом - если значение больше нуля, то выводим само значение, иначе ноль.
Но вместо громоздкого условия с функцией ЕСЛИ можно ввести простое сравнение значения с нулем. Соответственно, с помощью функции МАКС мы получим положительные значения, а с помощью функции МИН отрицательные.
По этой причине в ряде случаев проще использовать функции МАКС и МИН, нежели функцию ЕСЛИ.
Ссылки на мои ресурсы по Excel
★ YouTube-канал по Excel и Word
★ Телеграм