Максимальный и Минимальный по условию в MS EXCEL

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

Пусть имеется таблица с двумя столбцами: текстовым и числовым.

Для удобства понимания формул создадим два именованных диапазона для каждого из столбцов: Текст (A6:A30) и Числа (B6:B30). (см. файл примера).

Рассмотрим несколько задач:

А. Найдем максимальное значение среди тех чисел, которые соответствуют значению Текст1 (критерий введем в ячейку E6).
Т.е. будем искать максимальное значение не среди всех значений столбца Числовые значения, а только среди тех, у которых в той же строке в столбце А текстовое значение равно Текст1. Напишем формулу массива (не забудьте при вводе формулы нажать CTRL+SHIFT+ENTER):
=НАИБОЛЬШИЙ(ЕСЛИ(A6:A30=E6;B6:B30;"");1)

или с Именованными диапазонами:

=НАИБОЛЬШИЙ(ЕСЛИ(Текст=E6;Числа;"");1)

Часть формулы Текст=E6, вернет массив {ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ: ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ} (для просмотра результата выделите эту часть формулы в Строке формул и нажмите клавишу F9). ИСТИНА соответствует строкам, у которых в столбце Текстовые значения содержится значение Текст1.

Часть формулы ЕСЛИ(Текст=E6;Числа;""), вернет массив {10:"":"":"":-66:"":"":"": -37:"":"":"":-5:"": "":"":4:"":"":"":8:"":"":"":""}, где вместо ИСТИНА подставлено значение из числового столбца, а вместо ЛОЖЬ - значение Пустой текст. Вместо "" можно было бы использовать любой текстовый символ (букву) или вообще опустить (в этом случае массив будет выглядеть так {10:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:-66: ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:-37:ЛОЖЬ: ЛОЖЬ: ЛОЖЬ:-5:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:4: ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:8: ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}).

Функция НАИБОЛЬШИЙ() со вторым параметром =1  использована вместо функции МАКС(), т.к. в случае, если критерию не удовлетворяет ни одна строка, то формула =МАКС({"":"":"":"":"":"":"": "":"":"":"": "":"":"":"":"":"":"": "":"":"":"":"":"":""}) вернет 0!, что может ввести в заблуждение. Функция НАИБОЛЬШИЙ() в этом случае вернет ошибку #ЧИСЛО!

Б. Найдем максимальное значение только среди чисел принадлежащих определенному интервалу значений, например от 5 до 50. Границы можно ввести в ячейки I14 и J14. Решением является формула массива:
=НАИБОЛЬШИЙ(ЕСЛИ((Числа>=I14)*(Числа<=J14);Числа);1)

В. Найдем с помощью формулы массива минимальное значение среди тех, которые соответствуют значению Текст3:
=МИН(ЕСЛИ((Текст=E7);Числа;"");1)

Решением является формула массива.

Т.е. если в столбце А значение = Текст3, то учитывается значение в столбце B, если значение <> Текст3, то учитывается максимальное значение+1, т.е. заведомо НЕ минимальное. Далее функция МИН() возвращает минимальное значение из полученного массива, причем понятно, что ни одно из значений, где <> Текст3, не исказит результат (см. задачу А).

Другое решение с помощью формулы ДМИН(), которая не является формулой массива.
=ДМИН(A5:B30;B5;I8:I9)

где в диапазоне I8:I9 содержится табличка с критерием (см. файл примера). Подробнее о функции ДМИН() см. статью Функция ДМИН() - нахождение минимального значения по условию в MS EXCEL.

Г. Найдем минимальное значение, среди тех, которые больше среднего:
=ДМИН(A5:B30;B5;I10:I11)
где в диапазоне I10:I11 содержится критерий =B6>СРЗНАЧ(Числа)

Д. Найдем максимальное значение по модулю. Из рисунка выше видно, что это -99. Для этого используйте формулу массива

=ЕСЛИ(МАКС(ABS(Числа))=МАКС(Числа);МАКС(Числа);-МАКС(ABS(Числа)))

Е. Найдем минимальное положительное число:

=НАИМЕНЬШИЙ(Числа;СЧЁТЕСЛИ(Числа;"<=0")+1) - обычная формула!

=НАИМЕНЬШИЙ(ЕСЛИ(Числа>0;Числа);1) - формула массива.

СОВЕТ:

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

Множественные условия

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

В этом случае придется записать более сложную формулу массива

=НАИМЕНЬШИЙ(ЕСЛИ(($A$6:$A$16=E6)*($B$6:$B$16=F6);$C$6:$C$16;"");1)

В файле примера для наглядности настроено Условное форматирование для выделения строк, удовлетворяющим критериям. Кроме того, для выбора критериев использован Выпадающий список (см. желтые ячейки).

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

Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 4.9 (9 оценок)

Комментарии

Сергей (не проверено)

Спасибо! То что надо!!!!

Анна (не проверено)

И мне помогло!