Поиск минимального или максимального значения по условию
В Microsoft Excel давно есть в стандартном наборе функции СЧЁТЕСЛИ (COUNTIF), СУММЕСЛИ (SUMIF) и СРЗНАЧЕСЛИ (AVERAGEIF) и их аналоги, позволяющие искать количество, сумму и среднее в таблице по одному или нескольким условиям. Но что если нужно найти не сумму или среднее, а минимум или максимум по условию(ям)?
Предположим, нам нужно найти минимальную цену для каждого товара в базе данных по поставщикам:
Таким образом, условием будет наименование товара (бумага, карандаши, ручки), а диапазоном для выборки – столбец с ценами.
Для будущего удобства, конвертируем исходный диапазон с ценами в “умную таблицу”. Для этого выделите его и выберите на вкладке Главная – Форматировать как таблицу (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(IF(Table1[Товар]=F4;Table1[Цена]))
Не забудьте после ввода этой формулы в первую зеленую ячейку G4 нажать не Enter, а Ctrl+Shift+Enter, чтобы ввести ее как формулу массива. Затем формулу можно скопировать на остальные товары в ячейки G5:G6.
Давайте разберем логику работы этой формулы поподробнее. Функция ЕСЛИ проверяет каждую ячейку массива из столбца Товар на предмет равенства текущему товару (Бумага). Если это так, то выдается соответствующее ему значение из столбца Цена. В противном случае – логическое значение ЛОЖЬ (FALSE).
Таким образом внешняя функция МИН (MIN) выбирает минимальное не из всех значений цен, а только из тех, где товар был Бумага, т.к. ЛОЖЬ функцией МИН игнорируется. При желании, можно выделить мышью всю функцию ЕСЛИ(…) в строке формул
… и нажать на клавиатуре F9, чтобы наглядно увидеть тот самый результирующий массив, из которого потом функция МИН и выбирает минимальное значение:
Способ 3. Функция баз данных ДМИН
Этот вариант использует малоизвестную (и многими, к сожалению, недооцененную) функцию ДМИН (DMIN) из категории Работа с базой данных (Database) и требует небольшого изменения результирующей таблицы:
Как видите, зеленые ячейки с результатами транспонированы из столбца в строку и над ними добавлена мини-таблица (F4:H5) с условиями. Логика работы этой функции следующая:
- База_данных – вся наша таблица вместе с заголовками.
- Поле – название столбца из шапки таблицы, из которого выбирается минимальное значение.
- Критерий – таблица с условиями отбора, состоящая (минимально) из двух ячеек: названия столбца, по которому идет проверка (Товар) и критерия (Бумага, Карандаши, Ручки).
Это обычная формула (не формула массива), т.е. можно вводить и использовать ее привычным образом. Кроме того, в той же категории можно найти функции БДСУММ (DSUM), ДМАКС (DMAX), БСЧЁТ (DCOUNT), которые используются совершенно аналогично, но умеют находить не только минимум, но и сумму, максимум и количество значений по условию.
Способ 4. Сводная таблица
Если в исходной таблице очень много строк, но данные меняются не часто, то удобнее будет использовать сводную таблицу, т.к. формула массива и функция ДМИН могут сильно тормозить Excel.
Установите активную ячейку в любое место нашей умной таблицы и выберите на вкладке Вставка – Сводная таблица (Insert – Pivot Table). В появившемся окне нажмите ОК:
В конструкторе сводной таблицы перетащите поле Товар в область строк, а Цену в область значений. Чтобы заставить сводную вычислять не сумму (или количество), а минимум щелкните правой кнопкой мыши по любому числу и выберите в контекстном меню команду Итоги по – Минимум:
Вытаскивать данные из сводной в дальнейшие расчеты теперь можно с помощью функции ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ (GET.PIVOT.DATA), которую мы подробно разбирали ранее:
Ссылки по теме
- Зачем нужна функция ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ
- Выборочное вычисление суммы, среднего и т.д. по одному или нескольким критериям
- Что такое “умные таблицы” в 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, |
Дополнительные диапазоны и условия для них. Можно ввести до 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 не совпадают, ФУНКЦИЯ MAXIFS возвращает #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 на основе одного или нескольких указанных вами условий.
В нашем предыдущем руководстве мы рассмотрели распространенное использование функции 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))
Как работает эта формула
В логическом тесте функции ЕСЛИ мы сравниваем список имен (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, чтобы заполнить их правильно.
Как показано на снимке экрана ниже, формулы дают одинаковый результат, поэтому какую из них использовать, зависит от ваших личных предпочтений. Для меня формулу с булевой логикой легче читать и строить — она позволяет добавлять сколько угодно условий без вложения дополнительных функций ЕСЛИ.
Как работают эти формулы
Первая формула использует две вложенные функции ЕСЛИ для оценки двух критериев. В логической проверке первого оператора 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:
Присмотревшись к приведенному выше снимку экрана, вы можете заметить, что недопустимые переходы, отмеченные знаком «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, и вы получите такой результат:
Максимальное значение с теми же условиями также можно найти с помощью этой формулы без массива:
=СУММПРОИЗВ(МАКС(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Однако в этом случае нам нужно заменить все значения «x» в столбце C нулями, потому что СУММПРОИЗВ МАКС работает только с числовыми данными:
Как работают эти формулы
Формула массива работает точно так же, как МАКС. ЕСЛИ с логикой И за исключением того, что вы соединяете критерии, используя операцию сложения вместо умножения. В формулах массива сложение работает как оператор ИЛИ:
Сложение двух массивов ИСТИНА и ЛОЖЬ (которые получаются в результате проверки значений в 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)
Как показано на снимке экрана ниже, у этой простой формулы нет проблем с обработкой диапазона, содержащего как числовые, так и текстовые значения:
Подробную информацию об этой функции см. в разделе Функция 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)
В
файле примера
для наглядности настроено
Условное форматирование для выделения строк, удовлетворяющим критериям
. Кроме того, для выбора критериев использован
Выпадающий список
(см. желтые ячейки).
Аналогичным образом можно настроить формулы для нахождения минимального значения для строк, значения которых попадают в определенный диапазон.
Содержание
- Функции МАКС и МИН в Excel по условию
- Функции Excel 2016 МАКСЕСЛИ (MAXIFS) и МИНЕСЛИ (MINIFS)
- Формула поиска значений максимумов и минимумов в Excel
- Как сделать выборку максимумов и минимумов в Excel
- Вычисление минимального, максимального и среднего значения в Microsoft Excel
- Максимальное и минимальное
- Среднее
- Другие способы
- Поиск минимального или максимального значения по условию
- Способ 1. Функции МИНЕСЛИ и МАКСЕСЛИ в Excel 2016
- Способ 2. Формула массива
- Способ 3. Функция баз данных ДМИН
- Способ 4. Сводная таблица
Функции МАКС и МИН в Excel по условию
Подсчет максимального и минимального значения выполняется известными функциями МАКС и МИН. Бывает, что вычисления нужно произвести по группам или в зависимости от условия, как в СУММЕСЛИ.
Долгое время в Excel не было аналога СУММЕСЛИ или СРЗНАЧЕСЛИ для расчета максимального и минимального значения, поэтому использовали формулу массивов.
Пусть имеются данные
Нужно подсчитать максимальное значение в указанной группе. Название группы (критерий) введем в отдельную ячейку (D2). Пусть для начала это будет группа Б. Рядом введем следующую формулу:
Это формула массивов, поэтому ввести ее нужно комбинацией Ctrl + Shift + Enter.
Теперь, меняя название группы, можно без всяких фильтров и сводных таблиц видеть максимальное значение внутри этой группы.
Как это работает? Очень просто. Первым делом нужно указать диапазон, который будет использоваться в качестве аргумента функции МАКС, то есть только те ячейки, которые соответствуют указанной группе. Так как мы заранее позаботились об удобстве использования функции, то название группы указали не внутри формулы, а в отдельной ячейке (гораздо легче менять группу). Тогда формула для нужного диапазона выглядит так.
Указанное выражение отбирает только те значения, для которых название группы совпадает с условием в ячейке D2. Вот, как это видит Excel
На следующем этапе укажем функцию МАКС, аргументом которой выступает полученный выше массив. Excel воспринимает примерно так.
Видно, что максимальное значение внутри массива равно 31. Его и мы и увидим в ячейке с формулой. Нужно только не забыть итоговую функцию ввести комбинацией клавиш Ctrl + Shift + Enter, иначе ничего не получится. В строке формул формула массива отображается внутри фигурных скобок. Добавляются сами, специально дорисовывать не нужно.
Если функцию МАКС заменить на МИН, то по указанному условию (названию группы) будет выдаваться минимальное значение.
Функции Excel 2016 МАКСЕСЛИ (MAXIFS) и МИНЕСЛИ (MINIFS)
В MS Excel добавили новые статистические функции — МАКСЕСЛИ и МИНЕСЛИ. Обе функции имеют возможность учитывать несколько условий и некоторое время в их названиях в конце были буквы -МН. Потом убрали, хотя в скриншотах ниже используется вариант названий с -МН.
Есть ряд значений, каждое из которых входит в некоторую группу. Нужно рассчитать максимальное значение по группе А. Используем формулу МАКСЕСЛИ.
Все очень просто. Как и у СУММЕСЛИМН вначале указываем диапазон, где находится искомое максимальное значение (колонка В), затем диапазон с критериями (колонка А) и далее сам критерий (в ячейке D2). Можно указать сразу несколько условий. Таким же способом легко рассчитать минимальное значение по условию. Найдем, к примеру, минимум внутри группы Б.
Ниже показан ролик, как рассчитать максимальное и минимальное значение по условию.
Источник
Формула поиска значений максимумов и минимумов в Excel
Два наиболее основных показателя в любых собранных статистических данных – это наибольшее и наименьшее значение, так называемые показатели максимумов и минимумов на графике. Максимальное и минимальное значения позволяют определить границы диапазона для всех исходных значений.
Как сделать выборку максимумов и минимумов в Excel
Пример. Ниже на рисунке представленная среднестатистическая температура воздуха за отдельные месяцы. Допустим, что в данном примере нам необходимо проверить, в какие месяцы года температура воздуха была наибольшая и наименьшая. Первая формула ищет наибольшую температуру:
Excel предлагает 2 функции служащие для поиска наибольшего и наименьшего значения в наборе данных статистики: МАКС и МИН. Обе функции могут иметь максимально 255 аргументов. Исходные данные находятся в диапазоне ячеек B2:B13, который является аргументом для функций МАКС и МИН. Функция МАКС возвращает значение 19 градусов – это наибольшая температура в указанном наборе данных, а функция МИН возвращает наименьшую температуру: -3.
Следующая формула возвращает название месяца соответственному температуре найденной с помощью первой формулы:
Чтобы определить название месяца с максимальным или с минимальным значением температур, необходимо сначала использовать функцию ИНДЕКС. Диапазон ячеек A2:A13, указан в качестве первого аргумента для данной функции и содержит список месяцев. Во втором аргументе функции ИНДЕКС указана функция ПОИСПОЗ, которая возвращает позицию искомого значения в списке исходных данных. Если искомое значение — это число 19, функция ПОИСКПОЗ в результате своих вычислений возвращает числовое значение 7, так как число 19 находится на седьмой позиции списка исходных данных. Функция ИНДЕКС использует это значение и возвращает седьмую строку из списка столбца «Месяц», то есть «Июль». Тот же самый принцип действия касается и функции МИН, с помощью которой формула в своем итоговом результате возвращает текстовое значение «Январь», в котором была наиболее низкая температура в году.
Благодаря данной формуле МАКС и МИН обходят текстовые значения в исходном диапазоне данных. Однако если эти доныне будут содержать ошибки, эти функции также будут возвращать ошибки. А если все значения данных будут текстовыми, тогда они обе будут возвращать число 0 в результатах своих вычислений для их формулы.
Источник
Вычисление минимального, максимального и среднего значения в Microsoft Excel
В Microsoft Office Excel можно работать с цифрами и узнавать любое числовое значение. Этот табличный процессор справится практически со всеми расчётами. Он идеально подходит для бухгалтерского учёта. Для вычислений существуют специальные инструменты — формулы. Их можно применять к диапазону или к отдельным ячейкам. Чтобы узнать минимальную или максимальную цифру в группе клеток, необязательно искать их самостоятельно. Лучше воспользоваться предназначенными для этого опциями. Также полезно будет разобраться, как посчитать среднее значение в Excel.
Это особенно актуально в таблицах с большим объёмом данных. Если в столбце, например, указаны цены на продукцию торгового центра. И вам надо узнать, какой товар самый дешёвый. Если искать его «вручную», уйдёт очень много времени. Но в Экселе это можно сделать буквально за несколько кликов. Утилита также высчитывает среднее арифметическое. Ведь это две простые операции: сложение и деление.
В этой статье мы расскажем, как вычислить различные значения в Эксель
Максимальное и минимальное
Вот как найти максимальное значение в Excel:
- Поставьте курсор-ячейку в любое место.
- Перейдите в меню «Формулы».
- Нажмите «Вставить функцию».
- В списке выберите «МАКС». Или напишите это слово в поле «Поиск» и нажмите «Найти».
- В окне «Аргументы» введите адреса диапазона, максимальное значение которого вам нужно узнать. В Excel имена клеток состоят из буквы и цифры («B1», «F15», «W34»). А название диапазона — это первая и последняя ячейки, которые в него входят.
- Вместо адреса можно написать несколько чисел. Тогда система покажет самое большее из них.
- Нажмите «OK». В клетке, в которой стоял курсор, появится результат.
Следующий шаг — укажите диапазон значений
Теперь будет легче разобраться, как найти минимальное значение в Excel. Алгоритм действий полностью идентичен. Просто вместо «МАКС» выберите «МИН».
Среднее
Среднее арифметическое вычисляется так: сложить все цифры из множества и поделить на их количество. В Экселе можно посчитать суммы, узнать, сколько ячеек в строке и так далее. Но это слишком сложно и долго. Придётся использовать много разных функций. Держать в голове информацию. Или даже что-то записывать на листочек. Но можно упростить алгоритм.
Вот как найти среднее значение в Excel:
- Поставьте ячейку курсор в любое свободное место таблицы.
- Перейдите на вкладку «Формулы».
- Нажмите на «Вставить функцию».
- Выберите «СРЗНАЧ».
- Если этого пункта нет в списке, откройте его с помощью опции «Найти».
- В области «Число1» введите адрес диапазона. Или напишите несколько цифр в разных полях «Число2», «Число3».
- Нажмите «OK». В ячейке появится нужное значение.
Нажмите ОК для подсчета
Так можно проводить расчёты не только с позициями в таблице, но и с произвольными множествами. Excel, по сути, играет роль продвинутого калькулятора.
Другие способы
Максимальное, минимальное и среднее можно узнать и другими способами.
- Найдите панель функций с обозначением «Fx». Она над основной рабочей областью таблицы.
- Поставьте курсор в любую ячейку.
- Введите в поле «Fx» аргумент. Он начинается со знака равенства. Потом идёт формула и адрес диапазона/клетки.
- Должно получиться что-то вроде «=МАКС(B8:B11)» (максимальное), «=МИН(F7:V11)» (минимальное), «=СРЗНАЧ(D14:W15)» (среднее).
- Кликните на «галочку» рядом с полем функций. Или просто нажмите Enter. В выделенной ячейке появится нужное значение.
- Формулу можно скопировать непосредственно в саму клетку. Эффект будет тот же.
Впишите диапазон и нажмите Enter
Найти и вычислить поможет Excel-инструмент «Автофункции».
- Поставьте курсор в ячейку.
- Перейдите в раздел «Формулы».
- Найдите кнопку, название которой начинается на «Авто». Это зависит от выбранной в Excel опции по умолчанию («Автосумма», «Авточисло», «Автосмещ», «Автоиндекс»).
- Нажмите на чёрную стрелочку под ней.
- Выберите «МИН» (минимальное значение), «МАКС» (максимальное) или «СРЗНАЧ» (среднее).
- В отмеченной клетке появится формула. Кликните на любую другую ячейку — она будет добавлена в функцию. «Растяните» рамку вокруг неё, чтобы охватить диапазон. Или щёлкайте по сетке с зажатой клавишей Ctrl, чтобы выделять по одному элементу.
- Когда закончите, нажмите Enter. Результат отобразится в клетке.
В Excel вычислить среднее значение достаточно легко. Не нужно складывать, а потом делить сумму. Для этого существует отдельная функция. Также можно найти минимум и максимум в множестве. Это намного легче, чем считать вручную или выискивать цифры в огромной таблице. Поэтому Эксель популярен во многих сферах деятельности, где требуется точность: бизнес, аудит, кадровое делопроизводство, финансы, торговля, математика, физика, астрономия, экономика, наука.
Источник
Поиск минимального или максимального значения по условию
В Microsoft Excel давно есть в стандартном наборе функции СЧЁТЕСЛИ (COUNTIF) , СУММЕСЛИ (SUMIF) и СРЗНАЧЕСЛИ (AVERAGEIF) и их аналоги, позволяющие искать количество, сумму и среднее в таблице по одному или нескольким условиям. Но что если нужно найти не сумму или среднее, а минимум или максимум по условию(ям)?
Предположим, нам нужно найти минимальную цену для каждого товара в базе данных по поставщикам:
Таким образом, условием будет наименование товара (бумага, карандаши, ручки), а диапазоном для выборки — столбец с ценами.
Для будущего удобства, конвертируем исходный диапазон с ценами в «умную таблицу». Для этого выделите его и выберите на вкладке Главная — Форматировать как таблицу (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(IF(Table1[Товар]=F4;Table1[Цена]))
Не забудьте после ввода этой формулы в первую зеленую ячейку G4 нажать не Enter , а Ctrl + Shift + Enter , чтобы ввести ее как формулу массива. Затем формулу можно скопировать на остальные товары в ячейки G5:G6.
Давайте разберем логику работы этой формулы поподробнее. Функция ЕСЛИ проверяет каждую ячейку массива из столбца Товар на предмет равенства текущему товару (Бумага). Если это так, то выдается соответствующее ему значение из столбца Цена. В противном случае – логическое значение ЛОЖЬ (FALSE) .
Таким образом внешняя функция МИН (MIN) выбирает минимальное не из всех значений цен, а только из тех, где товар был Бумага, т.к. ЛОЖЬ функцией МИН игнорируется. При желании, можно выделить мышью всю функцию ЕСЛИ(…) в строке формул
. и нажать на клавиатуре F9, чтобы наглядно увидеть тот самый результирующий массив, из которого потом функция МИН и выбирает минимальное значение:
Способ 3. Функция баз данных ДМИН
Этот вариант использует малоизвестную (и многими, к сожалению, недооцененную) функцию ДМИН (DMIN) из категории Работа с базой данных (Database) и требует небольшого изменения результирующей таблицы:
Как видите, зеленые ячейки с результатами транспонированы из столбца в строку и над ними добавлена мини-таблица (F4:H5) с условиями. Логика работы этой функции следующая:
- База_данных — вся наша таблица вместе с заголовками.
- Поле — название столбца из шапки таблицы, из которого выбирается минимальное значение.
- Критерий — таблица с условиями отбора, состоящая (минимально) из двух ячеек: названия столбца, по которому идет проверка (Товар) и критерия (Бумага, Карандаши, Ручки).
Это обычная формула (не формула массива), т.е. можно вводить и использовать ее привычным образом. Кроме того, в той же категории можно найти функции БДСУММ (DSUM) , ДМАКС (DMAX) , БСЧЁТ (DCOUNT) , которые используются совершенно аналогично, но умеют находить не только минимум, но и сумму, максимум и количество значений по условию.
Способ 4. Сводная таблица
Если в исходной таблице очень много строк, но данные меняются не часто, то удобнее будет использовать сводную таблицу, т.к. формула массива и функция ДМИН могут сильно тормозить Excel.
Установите активную ячейку в любое место нашей умной таблицы и выберите на вкладке Вставка — Сводная таблица (Insert — Pivot Table) . В появившемся окне нажмите ОК:
В конструкторе сводной таблицы перетащите поле Товар в область строк, а Цену в область значений. Чтобы заставить сводную вычислять не сумму (или количество), а минимум щелкните правой кнопкой мыши по любому числу и выберите в контекстном меню команду Итоги по — Минимум:
Источник