Работа с числовыми данными в Microsoft Excel часто требует поиска экстремальных значений — максимальных или минимальных. Если с нахождением одного минимального числа всё просто (достаточно функции МИН), то поиск двух наименьших значений вызывает вопросы у многих пользователей. Эта задача актуальна для анализа продаж (топ-2 худших результатов), финансовых отчётов (минимальные расходы по категориям), спортивной статистики (два самых слабых показателя) и других сценариев.
В этой статье разберём 5 рабочих методов — от элементарных функций для новичков до продвинутых формул массивов для опытных пользователей. Вы узнаете не только как получить результат, но и как избежать типичных ошибок (например, обработки пустых ячеек или повторяющихся значений), а также как автоматизировать процесс для динамических данных.
Особое внимание уделим совместимости методов с разными версиями Excel (2010–2023 и Microsoft 365), а также альтернативным подходам для Google Таблиц. Если вы работаете с большими массивами данных, в конце статьи найдёте сравнительную таблицу производительности методов.
Метод 1: Использование функций МИН и НАИМЕНЬШИЙ
Самый простой способ — комбинация стандартных функций МИН и НАИМЕНЬШИЙ (или SMALL в английской версии). Этот метод подходит для любой версии Excel и не требует знания сложных формул.
Шаг 1. Найдите первое минимальное значение с помощью МИН:
=МИН(B2:B20)
Шаг 2. Для второго минимального используйте НАИМЕНЬШИЙ с параметром 2:
=НАИМЕНЬШИЙ(B2:B20; 2)
✅ Плюсы метода:
- 🔹 Простота — не нужно запоминать сложные синтаксисы.
- 🔹 Работает во всех версиях Excel, включая Excel 2010.
- 🔹 Быстрое выполнение даже на больших диапазонах (до 10 000 строк).
❌ Минусы:
- ⚠️ Не учитывает повторяющиеся значения (если минимальное число встречается дважды, второе минимальное будет равно ему).
- ⚠️ Не игнорирует пустые ячейки или текстовые значения (может вернуть ошибку
#ЧИСЛО!).
⚠️ Внимание: Если в диапазоне есть текстовые ячейки, оберните функцию вЕСЛИОШИБКА:=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(B2:B20; 2); "Нет данных")
Метод 2: Функция МИНЕСЛИ (Excel 2019 и новее)
В современных версиях Excel (начиная с 2019 и Microsoft 365) появилась мощная функция МИНЕСЛИ (MINIFS), которая позволяет искать минимальные значения с учётом одного или нескольких условий. Для поиска второго минимального числа её можно использовать в паре с НАИМЕНЬШИЙ.
Пример: Найдём два минимальных значения в диапазоне B2:B20, но только для строк, где в столбце A указано "Продажи":
=МИНЕСЛИ(B2:B20; A2:A20; "Продажи")
=НАИМЕНЬШИЙ(ЕСЛИ(A2:A20="Продажи"; B2:B20); 2)
Вторая формула требует ввода как формула массива (нажмите Ctrl+Shift+Enter в Excel 2019 или просто Enter в Excel 365).
🔹 Когда использовать этот метод?
- 📊 Если нужно учитывать дополнительные условия (например, минимальные значения только для определённой категории).
- 📈 Если данные динамически обновляются, а условия фильтрации меняются.
Убедитесь, что диапазоны условий и значений совпадают по размеру|
Проверьте отсутствие скрытых символов в текстовых условиях (пробелы, неразрывные пробелы)|
Используйте абсолютные ссылки ($A$2:$A$20) если копируете формулу в другие ячейки|
Тестируйте формулу на небольшом диапазоне перед применением ко всему массиву-->
Метод 3: Формулы массивов (для опытных пользователей)
Если вам нужно найти два минимальных уникальных значения (игнорируя повторения) или работать с неотсортированными данными, на помощь приходят формулы массивов. Этот метод универсален, но требует понимания принципов работы с массивами.
Формула для первого минимального (уникального):
=МИН(ЕСЛИОШИБКА(1/(СЧЁТЕСЛИ(B2:B20; B2:B20)=1)*B2:B20; ""))
Формула для второго минимального (уникального):
=НАИМЕНЬШИЙ(ЕСЛИОШИБКА(1/(СЧЁТЕСЛИ(B2:B20; B2:B20)=1)*B2:B20; ""); 2)
В Excel 2019 и новее вводите формулу как динамический массив (просто Enter). В Excel 2010–2016 используйте Ctrl+Shift+Enter.
🔹 Преимущества метода:
- 🎯 Игнорирует повторяющиеся значения (если минимальное число встречается 3 раза, оно будет учтено только один раз).
- 🎯 Работает с несвязанными диапазонами (например, можно анализировать данные из нескольких листов).
⚠️ Внимание: Формулы массивов могут значительно замедлять работу книги, если применяются к большим диапазонам (более 50 000 строк). В таких случаях лучше использовать Power Query (см. Метод 5).
Почему формула возвращает 0 вместо минимального значения?
Если в диапазоне есть пустые ячейки или текст, функция 1/(СЧЁТЕСЛИ(...) может вернуть ошибку деления на ноль. Исправьте это, добавив проверку на тип данных:
=МИН(ЕСЛИОШИБКА(1/((СЧЁТЕСЛИ(B2:B20; B2:B20)=1)*(B2:B20<>""))*B2:B20; ""))
Метод 4: Сортировка и индексы (без формул)
Если вы предпочитаете визуальный подход или работаете с очень большими данными (где формулы тормозят), можно использовать сортировку и функцию ИНДЕКС. Этот метод не требует сложных вычислений и подходит для одноразового анализа.
Шаг 1. Создайте копию исходных данных (например, в столбце D).
Шаг 2. Отсортируйте копию по возрастанию:
- Выделите диапазон
D2:D20. - Перейдите в
Данные → Сортировка от минимального к максимальному.
Шаг 3. Извлеките два первых значения с помощью ИНДЕКС:
=ИНДЕКС(D2:D20; 1)
=ИНДЕКС(D2:D20; 2)
✅ Плюсы:
- 🚀 Мгновенная работа даже с миллионами строк.
- 📊 Наглядность — вы видите все данные в отсортированном виде.
❌ Минусы:
- ⚠️ Требует создания копии данных (не подходит для динамического анализа).
- ⚠️ При изменении исходных данных нужно повторять сортировку.
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код:
Sub SortAndExtractMin()Range("D2:D20").Value = Range("B2:B20").Value
Range("D2:D20").Sort Key1:=Range("D2"), Order1:=xlAscending
Range("E2").Value = Range("D2").Value
Range("E3").Value = Range("D3").Value
End Sub
- Назначьте макрос на кнопку или сочетание клавиш.
-->
Метод 5: Power Query (для больших данных)
Если вы работаете с более чем 100 000 строк, обычные формулы Excel будут тормозить. В этом случае оптимальное решение — инструмент Power Query (доступен в Excel 2016 и новее).
Шаг 1. Выделите исходные данные и перейдите в Данные → Получить данные → Из таблицы/диапазона.
Шаг 2. В редакторе Power Query:
- Отсортируйте столбец по возрастанию (кликните на заголовок столбца →
Сортировка от А до Я). - Добавьте индексный столбец:
Добавить столбец → Индекс. - Отфильтруйте первые две строки: кликните на стрелку фильтра в столбце индекса →
Числовые фильтры → Меньше или равно → 2.
Шаг 3. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.
🔹 Преимущества Power Query:
- ⚡ Обрабатывает миллионы строк без зависаний.
- 🔄 Автоматически обновляет результаты при изменении исходных данных.
- 🛠️ Позволяет добавлять дополнительные преобразования (например, удалять дубликаты перед сортировкой).
Важно: Power Query не поддерживает динамические диапазоны (как Таблицы Excel). Если ваши данные расширяются, предварительно преобразуйте их в таблицу (Ctrl + T).
Сравнение методов: какой выбрать?
Выбор метода зависит от версии Excel, размера данных и требований к динамичности. Ниже таблица сравнения:
🔹 Рекомендации по выбору:
--> Даже опытные пользователи Excel сталкиваются с проблемами при поиске минимальных значений. Разберём топ-5 ошибок и способы их решения.
🔸 Ошибка 1: Функция возвращает #ЧИСЛО!
Причина: В диапазоне нет числовых значений или слишком мало данных (например, вы ищете второе минимальное в диапазоне из одной ячейки).
Решение: Добавьте проверку на количество значений:
🔸 Ошибка 2: Повторяющиеся минимальные значения
Причина: Если минимальное число встречается дважды, второе минимальное также будет равно ему (например, [5, 5, 6] → минимальные 5 и 5).
Решение: Используйте формулы массивов с учётом уникальности (см. Метод 3).
🔸 Ошибка 3: Пустые ячейки или текст в данных
Причина: Функции Решение: Предварительно очистите данные или используйте 🔸 Ошибка 4: Динамический диапазон не обновляется
Причина: Если вы добавили новые строки в данные, но формулы ссылаются на фиксированный диапазон (например, Решение: Преобразуйте данные в 🔸 Ошибка 5: Медленная работа книги
Причина: Формулы массивов или большое количество Решение: Замените формулы на Power Query или используйте сортировку (Метод 4).
Да, для этого используйте формулу массива с проверкой уникальности:
Эта формула вернёт второе уникальное минимальное значение, игнорируя повторения. В Google Sheets используйте те же функции, но с английским синтаксисом:
=SMALL(B2:B20; 2)
Метод
Версия Excel
Макс. строк
Учитывает условия
Игнорирует дубли
Динамичность
МИН + НАИМЕНЬШИЙ2010–2023
10 000
❌ Нет
❌ Нет
✅ Да
МИНЕСЛИ2019–2023
50 000
✅ Да
❌ Нет
✅ Да
Формулы массивов
2010–2023
10 000
✅ Да
✅ Да
✅ Да
Сортировка +
ИНДЕКС2010–2023
1 000 000
❌ Нет
❌ Нет
❌ Нет
Power Query
2016–2023
10 000 000+
✅ Да
✅ Да
✅ Да
МИН + НАИМЕНЬШИЙ.МИНЕСЛИ или формулы массивов.СЧЁТЕСЛИ.=ПОИСКПОЗ(НАИМЕНЬШИЙ(B2:B20; 1); B2:B20; 0)Типичные ошибки и как их избежать
=ЕСЛИ(СЧЁТ(B2:B20)>=2; НАИМЕНЬШИЙ(B2:B20; 2); "Недостаточно данных")МИН и НАИМЕНЬШИЙ игнорируют пустые ячейки, но текстовые значения могут вызывать ошибки.
ЕСЛИОШИБКА.
B2:B20), результаты станут неактуальными.
Таблицу Excel (Ctrl + T) и используйте структурированные ссылки:
=НАИМЕНЬШИЙ(Таблица1[Столбец1]; 2)НАИМЕНЬШИЙ на листе могут тормозить Excel.
⚠️ Внимание: Если вы работаете с датами (например, ищете две самые ранние даты), убедитесь, что ячейки отформатированы как
Дата, а не как Текст. В противном случае Excel будет сравнивать их как строки, что приведёт к некорректным результатам.FAQ: Частые вопросы
Можно ли найти два минимальных числа без повторений?
=НАИМЕНЬШИЙ(ЕСЛИОШИБКА(1/(СЧЁТЕСЛИ(B2:B20; B2:B20)=1)*B2:B20; ""); 2)Как найти два минимальных числа в Google Таблицах?
=SMALL(B2:B20; 1)
Для уникальных значений подойдёт формула:
=SMALL(UNIQUE(FILTER(B2:B20; B2:B20<>"")); 2)
Почему НАИМЕНЬШИЙ возвращает неверное значение?
Вероятные причины:
- В диапазоне есть скрытые символы (пробелы, неразрывные пробелы). Используйте
=ЧИСТ(B2:B20)для очистки. - Ячейки отформатированы как текст. Преобразуйте их в числа с помощью
Значение(=--B2). - В диапазоне есть ошибки (
#ДЕЛ/0!,#Н/Д). ДобавьтеЕСЛИОШИБКА.
Как найти два минимальных числа с учётом нескольких условий?
Используйте комбинацию НАИМЕНЬШИЙ и ЕСЛИ с несколькими условиями:
=НАИМЕНЬШИЙ(ЕСЛИ((A2:A20="Категория1")*(C2:C20>100); B2:B20); 2)
Эта формула найдёт второе минимальное значение в столбце B, где в столбце A указано "Категория1", а в столбце C число больше 100.
Можно ли автоматически обновлять результаты при изменении данных?
Да, для этого:
- Используйте
Таблицы Excel(нажмитеCtrl + Tна диапазоне). - Для формул массивов в Excel 365 они обновляются автоматически.
- В Power Query настройте автоматическое обновление:
Данные → Обновить все.