Как найти два минимальных числа в Excel: от базовых функций до массивов

Работа с числовыми данными в Microsoft Excel часто требует поиска экстремальных значений — максимальных или минимальных. Если с нахождением одного минимального числа всё просто (достаточно функции МИН), то поиск двух наименьших значений вызывает вопросы у многих пользователей. Эта задача актуальна для анализа продаж (топ-2 худших результатов), финансовых отчётов (минимальные расходы по категориям), спортивной статистики (два самых слабых показателя) и других сценариев.

В этой статье разберём 5 рабочих методов — от элементарных функций для новичков до продвинутых формул массивов для опытных пользователей. Вы узнаете не только как получить результат, но и как избежать типичных ошибок (например, обработки пустых ячеек или повторяющихся значений), а также как автоматизировать процесс для динамических данных.

Особое внимание уделим совместимости методов с разными версиями Excel (2010–2023 и Microsoft 365), а также альтернативным подходам для Google Таблиц. Если вы работаете с большими массивами данных, в конце статьи найдёте сравнительную таблицу производительности методов.

📊 Как часто вам нужно искать экстремальные значения в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Метод 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. Отсортируйте копию по возрастанию:

  1. Выделите диапазон D2:D20.
  2. Перейдите в Данные → Сортировка от минимального к максимальному.

Шаг 3. Извлеките два первых значения с помощью ИНДЕКС:

=ИНДЕКС(D2:D20; 1)  

=ИНДЕКС(D2:D20; 2)

Плюсы:

  • 🚀 Мгновенная работа даже с миллионами строк.
  • 📊 Наглядность — вы видите все данные в отсортированном виде.

Минусы:

  • ⚠️ Требует создания копии данных (не подходит для динамического анализа).
  • ⚠️ При изменении исходных данных нужно повторять сортировку.
  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код:
    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

  3. Назначьте макрос на кнопку или сочетание клавиш.

-->

Метод 5: Power Query (для больших данных)

Если вы работаете с более чем 100 000 строк, обычные формулы Excel будут тормозить. В этом случае оптимальное решение — инструмент Power Query (доступен в Excel 2016 и новее).

Шаг 1. Выделите исходные данные и перейдите в Данные → Получить данные → Из таблицы/диапазона.

Шаг 2. В редакторе Power Query:

  1. Отсортируйте столбец по возрастанию (кликните на заголовок столбца → Сортировка от А до Я).
  2. Добавьте индексный столбец: Добавить столбец → Индекс.
  3. Отфильтруйте первые две строки: кликните на стрелку фильтра в столбце индекса → Числовые фильтры → Меньше или равно → 2.

Шаг 3. Нажмите Закрыть и загрузить, чтобы вернуть данные в Excel.

🔹 Преимущества Power Query:

  • ⚡ Обрабатывает миллионы строк без зависаний.
  • 🔄 Автоматически обновляет результаты при изменении исходных данных.
  • 🛠️ Позволяет добавлять дополнительные преобразования (например, удалять дубликаты перед сортировкой).

Важно: Power Query не поддерживает динамические диапазоны (как Таблицы Excel). Если ваши данные расширяются, предварительно преобразуйте их в таблицу (Ctrl + T).

Сравнение методов: какой выбрать?

Выбор метода зависит от версии Excel, размера данных и требований к динамичности. Ниже таблица сравнения:

Метод Версия 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+ ✅ Да ✅ Да ✅ Да

🔹 Рекомендации по выбору:

  • 📌 Для малых данных (до 1 000 строк) и простых задач — МИН + НАИМЕНЬШИЙ.
  • 📌 Для условного поиска (с фильтрами) — МИНЕСЛИ или формулы массивов.
  • 📌 Для больших данных (100 000+ строк) — Power Query.
  • 📌 Для уникальных значений — формулы массивов с СЧЁТЕСЛИ.
=ПОИСКПОЗ(НАИМЕНЬШИЙ(B2:B20; 1); B2:B20; 0)

-->

Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с проблемами при поиске минимальных значений. Разберём топ-5 ошибок и способы их решения.

🔸 Ошибка 1: Функция возвращает #ЧИСЛО!

Причина: В диапазоне нет числовых значений или слишком мало данных (например, вы ищете второе минимальное в диапазоне из одной ячейки).

Решение: Добавьте проверку на количество значений:

=ЕСЛИ(СЧЁТ(B2:B20)>=2; НАИМЕНЬШИЙ(B2:B20; 2); "Недостаточно данных")

🔸 Ошибка 2: Повторяющиеся минимальные значения

Причина: Если минимальное число встречается дважды, второе минимальное также будет равно ему (например, [5, 5, 6] → минимальные 5 и 5).

Решение: Используйте формулы массивов с учётом уникальности (см. Метод 3).

🔸 Ошибка 3: Пустые ячейки или текст в данных

Причина: Функции МИН и НАИМЕНЬШИЙ игнорируют пустые ячейки, но текстовые значения могут вызывать ошибки.

Решение: Предварительно очистите данные или используйте ЕСЛИОШИБКА.

🔸 Ошибка 4: Динамический диапазон не обновляется

Причина: Если вы добавили новые строки в данные, но формулы ссылаются на фиксированный диапазон (например, B2:B20), результаты станут неактуальными.

Решение: Преобразуйте данные в Таблицу Excel (Ctrl + T) и используйте структурированные ссылки:

=НАИМЕНЬШИЙ(Таблица1[Столбец1]; 2)

🔸 Ошибка 5: Медленная работа книги

Причина: Формулы массивов или большое количество НАИМЕНЬШИЙ на листе могут тормозить Excel.

Решение: Замените формулы на Power Query или используйте сортировку (Метод 4).

⚠️ Внимание: Если вы работаете с датами (например, ищете две самые ранние даты), убедитесь, что ячейки отформатированы как Дата, а не как Текст. В противном случае Excel будет сравнивать их как строки, что приведёт к некорректным результатам.

FAQ: Частые вопросы

Можно ли найти два минимальных числа без повторений?

Да, для этого используйте формулу массива с проверкой уникальности:

=НАИМЕНЬШИЙ(ЕСЛИОШИБКА(1/(СЧЁТЕСЛИ(B2:B20; B2:B20)=1)*B2:B20; ""); 2)

Эта формула вернёт второе уникальное минимальное значение, игнорируя повторения.

Как найти два минимальных числа в Google Таблицах?

В Google Sheets используйте те же функции, но с английским синтаксисом:

=SMALL(B2:B20; 1)  

=SMALL(B2:B20; 2)

Для уникальных значений подойдёт формула:

=SMALL(UNIQUE(FILTER(B2:B20; B2:B20<>"")); 2)
Почему НАИМЕНЬШИЙ возвращает неверное значение?

Вероятные причины:

  1. В диапазоне есть скрытые символы (пробелы, неразрывные пробелы). Используйте =ЧИСТ(B2:B20) для очистки.
  2. Ячейки отформатированы как текст. Преобразуйте их в числа с помощью Значение (=--B2).
  3. В диапазоне есть ошибки (#ДЕЛ/0!, #Н/Д). Добавьте ЕСЛИОШИБКА.
Как найти два минимальных числа с учётом нескольких условий?

Используйте комбинацию НАИМЕНЬШИЙ и ЕСЛИ с несколькими условиями:

=НАИМЕНЬШИЙ(ЕСЛИ((A2:A20="Категория1")*(C2:C20>100); B2:B20); 2)

Эта формула найдёт второе минимальное значение в столбце B, где в столбце A указано "Категория1", а в столбце C число больше 100.

Можно ли автоматически обновлять результаты при изменении данных?

Да, для этого:

  • Используйте Таблицы Excel (нажмите Ctrl + T на диапазоне).
  • Для формул массивов в Excel 365 они обновляются автоматически.
  • В Power Query настройте автоматическое обновление: Данные → Обновить все.