Найти максимум при условии excel

Поиск минимального или максимального значения по условию

В Microsoft Excel давно есть в стандартном наборе функции СЧЁТЕСЛИ (COUNTIF), СУММЕСЛИ (SUMIF) и СРЗНАЧЕСЛИ (AVERAGEIF) и их аналоги, позволяющие искать количество, сумму и среднее в таблице по одному или нескольким условиям. Но что если нужно найти не сумму или среднее, а минимум или максимум по условию(ям)? 

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

min-if1.png

Таким образом, условием будет наименование товара (бумага, карандаши, ручки), а диапазоном для выборки — столбец с ценами.

Для будущего удобства, конвертируем исходный диапазон с ценами в «умную таблицу». Для этого выделите его и выберите на вкладке Главная — Форматировать как таблицу (Home — Format as Table) или нажмите Ctrl+T. Наша «поумневшая» таблица автоматически получит имя Таблица1, а к столбцам можно будет, соответственно, обращаться по их именам, используя выражения типа Таблица1[Товар] или Таблица1[Цена]. При желании, стандартное имя Таблица1 можно подкорректировать на вкладке Конструктор (Design), которая появляется, если щелкнуть в любую ячейку нашей «умной» таблицы. Подробнее о таких таблицах и их скрытых возможностях можно почитать здесь.

Способ 1. Функции МИНЕСЛИ и МАКСЕСЛИ в Excel 2016

Начиная с версии Excel 2016 в наборе функции Microsoft Excel наконец появились функции, которые легко решают нашу задачу — это функции МИНЕСЛИ (MINIFS) и МАКСЕСЛИ (MAXIFS). Синтаксис этих функции очень похож на СУММЕСЛИМН (SUMIFS):

=МИНЕСЛИ(Диапазон_чисел; Диапазон_проверки1; Условие1; Диапазон_проверки2; Условие2 … )

где

  • Диапазон_чисел — диапазон с числами, из которых выбирается минимальное или максимальное
  • Диапазон_проверки — диапазон, который проверяется на выполнение условия
  • Условие — критерий отбора

Например, в нашем случае:

Поиск минимального по условию функцией МИНЕСЛИ

Просто, красиво, изящно. Одна проблема — функции МИНЕСЛИ и МАКСЕСЛИ появились только начиная с 2016 версии Excel. Если у вас (или тех, кто будет потом работать с вашим файлом) более старые версии, то придется шаманить другими способами.

Способ 2. Формула массива

min-if2.png

В английской версии это будет, соответственно =MIN(IF(Table1[Товар]=F4;Table1[Цена]))

Не забудьте после ввода этой формулы в первую зеленую ячейку G4 нажать не Enter, а Ctrl+Shift+Enter, чтобы ввести ее как формулу массива. Затем формулу можно скопировать на остальные товары в ячейки G5:G6.

Давайте разберем логику работы этой формулы поподробнее. Функция ЕСЛИ проверяет каждую ячейку массива из столбца Товар на предмет равенства текущему товару (Бумага). Если это так, то выдается соответствующее ему значение из столбца Цена. В противном случае – логическое значение ЛОЖЬ (FALSE).

Таким образом внешняя функция МИН (MIN) выбирает минимальное не из всех значений цен, а только из тех, где товар был Бумага, т.к. ЛОЖЬ функцией МИН игнорируется. При желании, можно выделить мышью всю функцию ЕСЛИ(…) в строке формул

min-if3.png

… и нажать на клавиатуре F9, чтобы наглядно увидеть тот самый результирующий массив, из которого потом функция МИН и выбирает минимальное значение:

min-if4.png

Способ 3. Функция баз данных ДМИН

Этот вариант использует малоизвестную (и многими, к сожалению, недооцененную) функцию ДМИН (DMIN) из категории Работа с базой данных (Database) и требует небольшого изменения результирующей таблицы:

min-if5.png

Как видите, зеленые ячейки с результатами транспонированы из столбца в строку и над ними добавлена мини-таблица (F4:H5) с условиями. Логика работы этой функции следующая:

min-if6.png

  • База_данных — вся наша таблица вместе с заголовками.
  • Поле — название столбца из шапки таблицы, из которого выбирается минимальное значение.
  • Критерий — таблица с условиями отбора, состоящая (минимально) из двух ячеек: названия столбца, по которому идет проверка (Товар) и критерия (Бумага, Карандаши, Ручки).

Это обычная формула (не формула массива), т.е. можно вводить и использовать ее привычным образом. Кроме того, в той же категории можно найти функции БДСУММ (DSUM), ДМАКС (DMAX), БСЧЁТ (DCOUNT), которые используются совершенно аналогично, но умеют находить не только минимум, но и сумму, максимум и количество значений по условию.

Способ 4. Сводная таблица

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

Установите активную ячейку в любое место нашей умной таблицы и выберите на вкладке Вставка — Сводная таблица (Insert — Pivot Table). В появившемся окне нажмите ОК:

min-if7.png

В конструкторе сводной таблицы перетащите поле Товар в область строк, а Цену в область значений. Чтобы заставить сводную вычислять не сумму (или количество), а минимум щелкните правой кнопкой мыши по любому числу и выберите в контекстном меню команду Итоги по — Минимум:

min-if8.png

Вытаскивать данные из сводной в дальнейшие расчеты теперь можно с помощью функции ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ (GET.PIVOT.DATA), которую мы подробно разбирали ранее:

min-if9.png

Ссылки по теме

  • Зачем нужна функция ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ
  • Выборочное вычисление суммы, среднего и т.д. по одному или нескольким критериям
  • Что такое «умные таблицы» в Excel и как с ними работать

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Еще…Меньше

Функция МАКСЕСЛИ возвращает максимальное значение из заданных определенными условиями или критериями ячеек.

Синтаксис

МАКСЕСЛИ(макс_диапазон;диапазон_условия1;условие1;[диапазон_условия2;условие2];…)

Аргумент

Описание

max_range
(обязательно)

Фактический диапазон ячеек, для которого определяется максимальное значение.

criteria_range1
(обязательно)

Набор ячеек, оцениваемых с помощью условия.

условия1

(обязательно)

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

диапазон_условия2,

условие2, …(необязательный аргумент)

Дополнительные диапазоны и условия для них. Можно ввести до 126 пар диапазонов и условий.

Примечания

  • Размер и форма аргументов макс_диапазон и диапазон_условияN должны быть одинаковыми. В противном случае эти функции вернут ошибку #ЗНАЧ!.

Примеры

Скопируйте данные примеров из приведенных ниже таблиц и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Пример 1

Оценка

Вес

89

1

93

2

96

2

85

3

91

1

88

1

Формула

Результат

=МАКСЕСЛИ(A2:A7;B2:B7;1)

91

В criteria_range1 ячейки B2, B6 и B7 соответствуют условиям 1. Из соответствующих ячеек в max_range ячейка A6 имеет максимальное значение. Поэтому результат — 91.

Пример 2

Вес

Оценка

10

b

1

a

100

a

1

b

1

a

1

a

Формула

Результат

=МАКСЕСЛИ(A2:A5;B3:B6;»a»)

10

Примечание: Диапазоны, заданные аргументами диапазон_условия и макс_диапазон, не параллельны, однако их форма и размер совпадают.

В диапазоне диапазон_условия1 первая, вторая и четвертая ячейки соответствуют условию «a». Из соответствующих ячеек в диапазоне макс_диапазон ячейка A2 имеет максимальное значение. Поэтому результат равен 10.

Пример 3

Вес

Оценка

Класс

Уровень

10

b

Бизнес

100

1

a

Техника

100

100

a

Бизнес

200

1

b

Техника

300

1

a

Техника

100

50

b

Бизнес

400

Формула

Результат

= МАКСЕСЛИ(A2:A7;B2:B7;»b»;D2:D7;»>100″)

50

В criteria_range1, B2, B5 и B7 соответствуют условиям «b». Из соответствующих ячеек в criteria_range2 ячейки D5 и D7 соответствуют условиям >100. Наконец, из соответствующих ячеек в max_range ячейка A7 имеет максимальное значение. Поэтому результат — 50.

Пример 4

Вес

Оценка

Класс

Уровень

10

b

Бизнес

8

1

a

Техника

8

100

a

Бизнес

8

11

b

Техника

0

1

a

Техника

8

12

b

Бизнес

0

Формула

Результат

=МАКСЕСЛИ(a2:a7;B2:B7;»b»;D2:D7;a8)

12

Аргумент условие2 равен A8. Однако поскольку ячейка A8 пуста, значение аргумента считается равным нулю (0). Ячейки в диапазоне диапазон_условия2, соответствующие значению 0, — это D5 и D7. Наконец, из соответствующих ячеек в max_range ячейка A7 имеет максимальное значение. Поэтому результат — 12.

Пример 5

Вес

Оценка

10

b

1

a

100

a

1

b

1

a

1

a

Формула

Результат

=МАКСЕСЛИ(A2:A5;B2:C6;»a»)

#ЗНАЧ!

Так как размер и форма max_range и criteria_range не одинаковы, возвращается #VALUE! ошибку #ЗНАЧ!.

Пример 6

Вес

Оценка

Класс

Уровень

10

b

Бизнес

100

1

a

Техника

100

100

a

Бизнес

200

1

b

Техника

300

1

a

Техника

100

1

a

Бизнес

400

Формула

Результат

= МАКСЕСЛИ(A2:A6;B2:B6;»a»;D2:D6;»>200″)

0

Ячейки, соответствующие условию, отсутствуют.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция МИНЕСЛИ

Функция СУММЕСЛИМН

Функция СРЗНАЧЕСЛИМН

Функция СЧЁТЕСЛИМН

Нужна дополнительная помощь?

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

Долгое время в Excel не было аналога СУММЕСЛИ или СРЗНАЧЕСЛИ для расчета максимального и минимального значения, поэтому использовали формулу массивов.  

Пусть имеются данные

Исходные данные

Нужно подсчитать максимальное значение в указанной группе. Название группы (критерий) введем в отдельную ячейку (D2). Пусть для начала это будет группа Б. Рядом введем следующую формулу:

=МАКС(ЕСЛИ(A2:A13=D2;B2:B13))

Это формула массивов, поэтому ввести ее нужно комбинацией Ctrl + Shift + Enter.

Максимальное значение по условию

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

Как это работает? Очень просто. Первым делом нужно указать диапазон, который будет использоваться в качестве аргумента функции МАКС, то есть только те ячейки, которые соответствуют указанной группе. Так как мы заранее позаботились об удобстве использования функции, то название группы указали не внутри формулы, а в отдельной ячейке (гораздо легче менять группу). Тогда формула для нужного диапазона выглядит так.

ЕСЛИ(A2:A13=D2;B2:B13)

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

Создание массива для функции МАКС

На следующем этапе укажем функцию МАКС, аргументом которой выступает полученный выше массив. Excel воспринимает примерно так.

Массив внутри функции МАКС

Видно, что максимальное значение внутри массива равно 31. Его и мы и увидим в ячейке с формулой. Нужно только не забыть итоговую функцию ввести комбинацией клавиш Ctrl + Shift + Enter, иначе ничего не получится. В строке формул формула массива отображается внутри фигурных скобок. Добавляются сами, специально дорисовывать не нужно.

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

Функции Excel 2016 МАКСЕСЛИ (MAXIFS) и МИНЕСЛИ (MINIFS)

В MS Excel добавили новые статистические функции — МАКСЕСЛИ и МИНЕСЛИ. Обе функции имеют возможность учитывать несколько условий и некоторое время в их названиях в конце были буквы -МН. Потом убрали, хотя в скриншотах ниже используется вариант названий с -МН.

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

Функция МАКСЕСЛИМН

Все очень просто. Как и у СУММЕСЛИМН вначале указываем диапазон, где находится искомое максимальное значение (колонка В), затем диапазон с критериями (колонка А) и далее сам критерий (в ячейке D2). Можно указать сразу несколько условий. Таким же способом легко рассчитать минимальное значение по условию. Найдем, к примеру, минимум внутри группы Б.

Функция МИНЕСЛИМН

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

Поделиться в социальных сетях:

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

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

До недавнего времени в Microsoft Excel не было встроенной функции МАКС. ЕСЛИ для получения максимального значения в зависимости от условий. С введением MAXIFS в Excel 2019 мы можем легко выполнять условное максимальное значение.

В Excel 2016 и более ранних версиях вам все равно придется создавать собственную формулу массива, комбинируя функцию MAX с оператором IF:

{=МАКС(ЕСЛИ(критерии_диапазонзнак равнокритерии, максимальный_диапазон))}

Чтобы увидеть, как эта общая формула MAX IF работает с реальными данными, рассмотрим следующий пример. Предположим, у вас есть таблица с результатами прыжков в длину нескольких учеников. В таблицу включены данные по трем раундам, и вы ищете лучший результат конкретного спортсмена, скажем Якова. С именами учащихся в A2:A10 и расстояниями в C2:C10 формула принимает следующий вид:

=МАКС(ЕСЛИ(A2:A10=»Иаков», C2:C10))

Помните, что формулу массива всегда нужно вводить, одновременно нажимая клавиши Ctrl + Shift + Enter. В результате он автоматически обрамляется фигурными скобками, как показано на скриншоте ниже (набор фигурных скобок вручную не работает!).

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

=МАКС(ЕСЛИ(A2:A10=F1, C2:C10))
Формула Excel MAX IF, чтобы найти наибольшее значение с условием

Как работает эта формула

В логическом тесте функции ЕСЛИ мы сравниваем список имен (A2:A10) с целевым именем (F1). Результатом этой операции является массив значений ИСТИНА и ЛОЖЬ, где значения ИСТИНА представляют имена, совпадающие с целевым именем (Джейкоб):

{ЛОЖЬ; ЛОЖЬ; ЛОЖЬ; ИСТИНА; ИСТИНА; ИСТИНА; ЛОЖЬ; ЛОЖЬ; ЛОЖЬ}

Для значение_ если_истина аргумент, мы предоставляем результаты длинного перехода (C2:C10), поэтому, если логический тест оценивается как TRUE, возвращается соответствующее число из столбца C. значение_ если_ложь аргумент опущен, то есть будет иметь значение FALSE, если условие не выполняется:

{ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;5.48;5.42;5.57;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ}

Этот массив передается функции MAX, которая возвращает максимальное число, игнорируя значения FALSE.

Кончик. Чтобы просмотреть внутренние массивы, описанные выше, выберите соответствующую часть формулы на листе и нажмите клавишу F9. Чтобы выйти из режима оценки формулы, нажмите клавишу Esc.

Формула MAX IF с несколькими критериями

В ситуации, когда вам нужно найти максимальное значение на основе более чем одного условия, вы можете:
Используйте вложенные операторы IF, чтобы включить дополнительные критерии:

{=МАКС(ЕСЛИ(критерии_диапазон1знак равнокритерии1ЕСЛИ(критерии_диапазон2знак равнокритерии2, максимальный_диапазон)))}

Или обработайте несколько критериев, используя операцию умножения:

{=МАКС(ЕСЛИ((критерии_диапазон1знак равнокритерии1) * (критерии_диапазон2знак равнокритерии2), максимальный_диапазон))}

Допустим, у вас есть результаты юношей и девушек в одной таблице и вы хотите найти самый длинный прыжок среди девушек в 3 туре. Для этого вводим первый критерий (женский) в G1, второй критерий (3) в G2 и используйте следующие формулы для определения максимального значения:

=МАКС(ЕСЛИ(B2:B16=G1, ЕСЛИ(C2:C16=G2, D2:D16)))

=МАКС(ЕСЛИ((B2:B16=G1)*(C2:C16=G2), D2:D16))

Поскольку обе формулы являются формулами массива, не забудьте нажать Ctrl + Shift + Enter, чтобы заполнить их правильно.

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

Как работают эти формулы

Первая формула использует две вложенные функции ЕСЛИ для оценки двух критериев. В логической проверке первого оператора IF мы сравниваем значения в столбце «Пол» (B2:B16) с критерием в G1 («Женский»). Результатом является массив значений TRUE и FALSE, где TRUE представляет данные, соответствующие критерию:

{ ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; УГРОЖАТЬ; УГРОЖАТЬ; УГРОЖАТЬ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; УГРОЖАТЬ; УГРОЖАТЬ; УГРОЖАТЬ}

Аналогичным образом вторая функция ЕСЛИ проверяет значения в столбце округления (C2:C16) на соответствие критерию в G2.

Для значение_если_истина аргумент во втором операторе IF, мы предоставляем результаты прыжка в длину (D2:D16), и таким образом мы получаем элементы, которые имеют TRUE в первых двух массивах в соответствующих позициях (т. е. элементы, где пол «женский» и круглые равно 3):

{ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; 4,63; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; ЛОЖНЫЙ; 4.52}

Этот последний массив передается функции MAX, и она возвращает наибольшее число.

Вторая формула оценивает одни и те же условия в рамках одного логического теста, а операция умножения работает как оператор И:

Когда значения TRUE и FALSE используются в любой арифметической операции, они преобразуются в 1 и 0 соответственно. А поскольку умножение на 0 всегда дает ноль, результирующий массив имеет 1 только тогда, когда все условия ИСТИННЫ. Этот массив оценивается в логической проверке функции ЕСЛИ, которая возвращает расстояния, соответствующие элементам 1 (ИСТИНА).

МАКС. ЕСЛИ без массива

Многие пользователи Excel, в том числе и я, предвзято относятся к формулам массивов и стараются по возможности избавиться от них. К счастью, в Microsoft Excel есть несколько функций, которые изначально обрабатывают массивы, и мы можем использовать одну из таких функций, а именно СУММПРОИЗВ, как своего рода «оболочку» вокруг MAX.

Общая формула MAX IF без массива выглядит следующим образом:

=СУММПРОИЗВ(МАКС((критерии_диапазон1знак равнокритерии1) * (критерии_диапазон2знак равнокритерии2) * максимальный_диапазон))

Естественно, при необходимости вы можете добавить больше пар диапазон/критерий.

Чтобы увидеть формулу в действии, мы будем использовать данные из предыдущего примера. Цель состоит в том, чтобы получить максимальный прыжок спортсменки в раунде 3:

=СУММПРОИЗВ(МАКС(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

Эта формула заменяется обычным нажатием клавиши Enter и возвращает тот же результат, что и формула массива MAX IF:
Формула MAX IF без массива в Excel

Присмотревшись к приведенному выше снимку экрана, вы можете заметить, что недопустимые переходы, отмеченные знаком «x» в предыдущих примерах, теперь имеют 0 значений в строках 3, 11 и 15, и в следующем разделе объясняется, почему.

Как работает эта формула

Как и в случае с формулой МАКС. ЕСЛИ, мы оцениваем два критерия, сравнивая каждое значение в столбцах «Пол» (B2:B16) и «Округление» (C2:C16) с критериями в ячейках G1 и G2. Результатом являются два массива значений TRUE и FALSE. Умножение элементов массивов в одинаковых позициях преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно, где 1 представляет элементы, соответствующие обоим критериям. Третий умноженный массив содержит результаты прыжков в длину (D2:D16). И поскольку умножение на 0 дает ноль, выживают только элементы, имеющие 1 (ИСТИНА) в соответствующих позициях:

{0; 0; 0; 0; 0; 4,63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

В случае максимальный_диапазон содержит любое текстовое значение, операция умножения возвращает ошибку #ЗНАЧ, из-за которой вся формула не работает.

Функция MAX берет его отсюда и возвращает наибольшее число, удовлетворяющее заданным условиям. Результирующий массив, состоящий из одного элемента {4.63}, поступает в функцию СУММПРОИЗВ и выводит максимальное число в ячейке.

Примечание. Из-за своей специфической логики формула работает со следующими оговорками:

  • Диапазон, в котором вы ищете наибольшее значение, должен содержать только числа. Если есть какие-либо текстовые значения, #VALUE! возвращается ошибка.
  • Формула не может оценить условие «не равно нулю» в отрицательном наборе данных. Чтобы найти максимальное значение без учета нулей, используйте либо формулу МАКС. ЕСЛИ, либо функцию МАКС.

Формула Excel MAX IF с логикой ИЛИ

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

{=МАКС(ЕСЛИ((критерии_диапазон1знак равнокритерии1) + (критерии_диапазон2знак равнокритерии2), максимальный_диапазон))}

Кроме того, вы можете использовать следующую формулу без массива:

=СУММПРОИЗВ(МАКС(((критерии_диапазон1знак равнокритерии1) + (критерии_диапазон2знак равнокритерии2)) * максимальный_диапазон))

Для примера вычислим лучший результат в раундах 2 и 3. Обратите внимание, что в языке Excel задача формулируется иначе: вернуть максимальное значение, если раунд либо 2, либо 3.

С раундами, перечисленными в B2:B10, результатами в C2:C10 и критериями в F1 и H1, формула выглядит следующим образом:

=МАКС(ЕСЛИ((B2:B10=F1) + (B2:B10=H1), C2:C10))

Введите формулу, нажав комбинацию клавиш Ctrl + Shift + Enter, и вы получите такой результат:
Формула массива MAX IF с логикой ИЛИ

Максимальное значение с теми же условиями также можно найти с помощью этой формулы без массива:

=СУММПРОИЗВ(МАКС(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

Однако в этом случае нам нужно заменить все значения «x» в столбце C нулями, потому что СУММПРОИЗВ МАКС работает только с числовыми данными:
Формула MAX IF без массива с логикой ИЛИ

Как работают эти формулы

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

Сложение двух массивов ИСТИНА и ЛОЖЬ (которые получаются в результате проверки значений в B2:B10 по критериям в F1 и H1) дает массив из 1 и 0, где 1 представляет элементы, для которых любое условие является ИСТИННЫМ, а 0 представляет элементы. для которого оба условия ЛОЖНЫ. В результате функция ЕСЛИ «сохраняет» все элементы в C2:C10 (значение_если_истина), для которого любое условие ИСТИННО (1); остальные элементы заменяются на FALSE, потому что значение_если_ложь аргумент не указан.

Формула без массива работает аналогичным образом. Разница в том, что вместо логического теста IF вы умножаете элементы массива 1 и 0 на элементы массива результатов прыжка в длину (C2:C10) в соответствующих позициях. Это аннулирует элементы, которые не соответствуют ни одному условию (имеют 0 в первом массиве), и сохраняет элементы, которые соответствуют одному из условий (имеют 1 в первом массиве).

MAXIFS — простой способ найти максимальное значение с условиями

Пользователи Excel 2019, 2021 и Excel 365 избавлены от необходимости приручать массивы для создания собственной формулы MAX IF. Эти версии Excel предоставляют долгожданную функцию MAXIFS, которая упрощает поиск наибольшего значения в условиях детской игры.

В первом аргументе MAXIFS вы вводите диапазон, в котором должно быть найдено максимальное значение (в нашем случае D2:D16), а в последующих аргументах вы можете ввести до 126 пар диапазон/критерий. Например:

=МАКСЕСЛИ(D2:D16, B2:B16, G1, C2:C16, G2)

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

Подробную информацию об этой функции см. в разделе Функция MAXIFS в Excel с примерами формул.

Вот как вы можете найти максимальное значение с условиями в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Практическая рабочая тетрадь для скачивания

Примеры формулы Excel MAX IF (файл .xlsx)

Вас также могут заинтересовать


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


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

Для удобства понимания формул создадим два

именованных диапазона

для каждого из столбцов:

Текст

(

A

6:

A

30

) и

Числа

(

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. Границы можно ввести в ячейки

I

14

и

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)

В

файле примера

для наглядности настроено

Условное форматирование для выделения строк, удовлетворяющим критериям

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

Выпадающий список

(см. желтые ячейки).

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

Like this post? Please share to your friends:
  • Найти максимум линейной функции f при заданной системе ограничений excel
  • Найти максимальное число в строке excel
  • Найти максимальное значение в столбце excel при условии
  • Найти отличия в word файлах
  • Найти ответы по ms excel