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) . В появившемся окне нажмите ОК:
В конструкторе сводной таблицы перетащите поле Товар в область строк, а Цену в область значений. Чтобы заставить сводную вычислять не сумму (или количество), а минимум щелкните правой кнопкой мыши по любому числу и выберите в контекстном меню команду Итоги по — Минимум:
Функции МАКС и МИН в Excel по условию
Подсчет максимального и минимального значения выполняется известными функциями МАКС и МИН. Бывает, что вычисления нужно произвести по группам или в зависимости от условия, как в СУММЕСЛИ.
Долгое время в Excel не было аналога СУММЕСЛИ или СРЗНАЧЕСЛИ для расчета максимального и минимального значения, поэтому использовали формулу массивов.
Пусть имеются данные
Нужно подсчитать максимальное значение в указанной группе. Название группы (критерий) введем в отдельную ячейку (D2). Пусть для начала это будет группа Б. Рядом введем следующую формулу:
Это формула массивов, поэтому ввести ее нужно комбинацией Ctrl + Shift + Enter.
Теперь, меняя название группы, можно без всяких фильтров и сводных таблиц видеть максимальное значение внутри этой группы.
Как это работает? Очень просто. Первым делом нужно указать диапазон, который будет использоваться в качестве аргумента функции МАКС, то есть только те ячейки, которые соответствуют указанной группе. Так как мы заранее позаботились об удобстве использования функции, то название группы указали не внутри формулы, а в отдельной ячейке (гораздо легче менять группу). Тогда формула для нужного диапазона выглядит так.
Указанное выражение отбирает только те значения, для которых название группы совпадает с условием в ячейке D2. Вот, как это видит Excel
На следующем этапе укажем функцию МАКС, аргументом которой выступает полученный выше массив. Excel воспринимает примерно так.
Видно, что максимальное значение внутри массива равно 31. Его и мы и увидим в ячейке с формулой. Нужно только не забыть итоговую функцию ввести комбинацией клавиш Ctrl + Shift + Enter, иначе ничего не получится. В строке формул формула массива отображается внутри фигурных скобок. Добавляются сами, специально дорисовывать не нужно.
Если функцию МАКС заменить на МИН, то по указанному условию (названию группы) будет выдаваться минимальное значение.
Функции Excel 2016 МАКСЕСЛИ (MAXIFS) и МИНЕСЛИ (MINIFS)
В MS Excel добавили новые статистические функции — МАКСЕСЛИ и МИНЕСЛИ. Обе функции имеют возможность учитывать несколько условий и некоторое время в их названиях в конце были буквы -МН. Потом убрали, хотя в скриншотах ниже используется вариант названий с -МН.
Есть ряд значений, каждое из которых входит в некоторую группу. Нужно рассчитать максимальное значение по группе А. Используем формулу МАКСЕСЛИ.
Все очень просто. Как и у СУММЕСЛИМН вначале указываем диапазон, где находится искомое максимальное значение (колонка В), затем диапазон с критериями (колонка А) и далее сам критерий (в ячейке D2). Можно указать сразу несколько условий. Таким же способом легко рассчитать минимальное значение по условию. Найдем, к примеру, минимум внутри группы Б.
Ниже показан ролик, как рассчитать максимальное и минимальное значение по условию.
Максимальный и Минимальный по условию в EXCEL
Нахождение максимального/ минимального значения — простая задача, но она несколько усложняется, если МАКС/ МИН нужно найти не среди всех значений диапазона, а только среди тех, которые удовлетворяют определенному условию.
Пусть имеется таблица с двумя столбцами: текстовым и числовым.
Для удобства понимания формул создадим два именованных диапазона для каждого из столбцов: Текст ( A 6: A 30 ) и Числа ( B6:B30 ). (см. файл примера ).
Рассмотрим несколько задач:
А. Найдем максимальное значение среди тех чисел, которые соответствуют значению Текст1 (критерий введем в ячейку E6 ).Т.е. будем искать максимальное значение не среди всех значений столбца Числовые значения , а только среди тех, у которых в той же строке в столбце А текстовое значение равно Текст1 . Напишем формулу массива (не забудьте при вводе формулы нажать CTRL+SHIFT+ENTER ): =НАИБОЛЬШИЙ(ЕСЛИ(A6:A30=E6;B6:B30;»»);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)*(Числа
В. Найдем с помощью формулы массива минимальное значение среди тех, которые соответствуют значению Текст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. Для этого используйте формулу массива :
Е. Найдем минимальное положительное число:
= НАИМЕНЬШИЙ(Числа;СЧЁТЕСЛИ(Числа;» — обычная формула!
= НАИМЕНЬШИЙ(ЕСЛИ(Числа>0;Числа);1) — формула массива .
Все вышеуказанные задачи можно решить без использования формул массива и функции ДМИН() . Для этого потребуется создать дополнительный столбец, в котором будут выведены только те значения, которые удовлетворяют критериям. Затем, среди отобранных значений с помощью функций МАКС() или МИН() , определить соответственно максимальное или минимальное значение (см. файл примера Лист без формул массива).
Множественные условия
Вышерассмотренный подход можно распространить на случаи когда необходимо найти максимальный или минимальный для нескольких текстовых условий.
В этом случае придется записать более сложную формулу массива :
В файле примера для наглядности настроено Условное форматирование для выделения строк, удовлетворяющим критериям . Кроме того, для выбора критериев использован Выпадающий список (см. желтые ячейки).
Аналогичным образом можно настроить формулы для нахождения минимального значения для строк, значения которых попадают в определенный диапазон.
Примеры формул с использованием функций МИН и МИНА в Excel
Функция МИН используется для нахождения минимального числа в исследуемом диапазоне и возвращает соответствующее число.
Функция МИНА предназначена для поиска минимального значения в исследуемом диапазоне данных и возвращает соответствующий результат.
Примеры использования функций МИН и МИНА в Excel
Пример 1. В таблице Excel содержатся данные о дате рождения офисных работников. Определить минимальный возраст работника.
Для расчетов используем формулу массива (корректный результат только при нажатии комбинации Ctrl+Shift+Enter):
Единственным аргументом является выражение ГОД(СЕГОДНЯ())-ГОД(B3:B10), возвращающее массив числовых значений, равных разнице текущего года и года рождения каждого сотрудника. В результате вычислений получим:
Формула автоматически вычислила, что самому младшему сотруднику 27 лет.
Как вычислить сумму минимальных неотрицательных значений в Excel
Пример 2. В таблице Excel содержится несколько столбцов числовых данных. Найти суммарное значение минимальных неотрицательных значений, содержащихся в этих столбцах. Дополнительно найти наименьшее число из имеющихся в таблице.
Для определения минимальных неотрицательных чисел используем формулу массива:
Единственным аргументом является функция ЕСЛИ, выполняющая проверку массива данных на вхождения положительных чисел. Если условие выполняется, функция МИН принимает в качестве аргумента массив, содержащий только положительные числа. Аналогично найдем минимальные значения для остальных столбцов. Полученный результат (Ctrl+Shift+Enter):
Найдем наименьшее число в таблице с помощью формулы:
В качестве аргументов функции являются значения, возвращаемые каждой из функций МИН для указанного вектора данных. Использовать как формулу массива. Результат (Ctrl+Shift+Enter):
Поиск нескольких наименьших значений при условиях в Excel
Пример 3. Некоторая компания ранее работала с одним поставщиком продукции. Однако стало известно, что некоторые другие поставщики предлагают более приемлемые цены. В таблице Excel содержатся коды товаров и скидки, предлагаемые другими поставщиками. Если скидки нет, отображено логическое значение ЛОЖЬ, если число положительное – товар стоит дороже. Найти наибольшую скидку для одних и тех же товаров только по разным ценам разных поставщиков.
Формула для расчета (формула массива):
- Функция ЕСЛИ проверяет условие МИНА(ЕСЛИ(A3:A15=D1;B3:B15;»»))>=0, где МИНА возвращает минимальное значение скидки для товара, код которого указан в ячейке D1.
- Функция МИНА учитывает логические значения. Возможен случай, когда для какого-либо товара скидки не существует (все значения – ЛОЖЬ), и будет возвращен результат 0 (нуль). В этом случае будет возвращена текстовая строка «Скидки нет». Аналогичное событие произойдет, если все скидки – только положительные числа.
- Если условие не выполняется, будет возвращена максимальная скидка (наибольшее отрицательное значение) для указанного кода товара.
Вычислим наибольшие скидки для остальных товаров. В результате получим (Ctrl+Shift+Enter):
Особенности использования функций МИН и МИНА в Excel
Функция МИН имеет следующую синтаксическую запись:
=МИН( число1 ;[число2]…)
- число1 – обязательный аргумент, характеризующий первое число из диапазона, в котором требуется найти минимальное значение;
- [число2]… — второй и последующие необязательные аргументы, характеризующие второе и последующие числа из исследуемого диапазона.
Функция МИНА имеет следующую синтаксическую запись:
=МИНА( значение1; [значение2]…)
- значение1 – обязательный аргумент, характеризующий первое вхождение в диапазон, в котором требуется найти минимальное значение;
- [значение2]… — второй и последующие необязательные аргументы, характеризующие второе и последующие вхождения исследуемого диапазона данных.
- Разница в синтаксисе подчеркивает смысловое различие двух функций: МИН работает только с числовыми значениями, МИНА дополнительно учитывает логический тип данных.
- Если в качестве аргументов функций МИН и МИНА были переданы только текстовые строки, не являющиеся текстовыми представлениями чисел, функции вернут значение 0.
- Функция МИН, принимающая в качестве аргумента ссылку на диапазон данных, игнорирует не только логические ИСТИНА и ЛОЖЬ, а также текстовые строки и пустые ячейки.
- Если в качестве аргумента МИН или МИНА является формула, возвращающая ошибку, результатом выполнения данных функций также будет являться код ошибки. Рекомендуется выполнять проверку данных с помощью функции ЕСЛИОШИБКА.
- Функции МИН и МИНА не имеют логических функций-аналогов, как это реализовано, например, у функции СЧЁТ (СЧЁТЕСЛИ), поэтому проверку данных следует выполнять при выполнении МИН и МИНА, передавая им в качестве аргумента логические функции (ЕСЛИ, ЕСЛИОШИБКА и прочие).
- Функция МИНА возвращает значение 0 (нуль), если в диапазоне, на который была передана ссылка в качестве аргумента, содержатся текстовые значения или текстовые представления чисел.
- Обе функции используются для нахождения минимальных величин в переданном в качестве аргумента диапазоне значений, однако между ними есть несколько различий:
- Если одним из аргументов функции МИН является логическое значение (ИСТИНА или ЛОЖЬ, которые могут быть преобразованы к числовым значениям 1 и 0 соответственно), это значение будет учитываться в расчетах. Например, функция =МИН(100;ИСТИНА;ЛОЖЬ;10) вернет значение 0.
- Если в качестве аргумента функции МИН была передана ссылка на диапазон, содержащий данные логического типа, последние учитываться не будут. Например, функция =МИН(A1:A4) вернет значение 10, если диапазон ячеек A1:A4 содержит следующие данные: 100, ИСТИНА, ЛОЖЬ и 10 соответственно.
- Чтобы при расчетах учитывались также данные логического типа, следует использовать функцию МИНА. Например, запись =МИНА(A1:A4) вернет значение 0 (логическое ЛОЖЬ эквивалентно числовому 0), если ячейки A1:A4 содержат данные как в предыдущем пункте.