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

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

В этой статье мы разберём 5 рабочих методов — от универсальных (подходящих для Excel 2010 и новее) до современных (только для Office 365 и Excel 2021). Вы узнаете, как обойти типичные ошибки при работе с повторяющимися значениями, пропусками в данных и нечисловыми ячейками. А в конце — бонус: сравнительная таблица производительности каждого метода для больших массивов (10 000+ строк).

Метод 1: Функция МАЛЬК (SMALL) — классический подход

Самый надёжный и совместимый способ — использование функции МАЛЬК() (англ. SMALL). Она возвращает k-е наименьшее значение в диапазоне. Для второго минимального достаточно указать k=2:

```excel

=МАЛЬК(диапазон; 2)

```

или на английской версии:

```excel

=SMALL(range, 2)

```

Пример: если в ячейках A1:A10 хранятся числа {5; 2; 8; 2; 10; 1}, формула =МАЛЬК(A1:A10; 2) вернёт 2 (второе по величине значение после 1).

  • ✅ Работает во всех версиях Excel (начиная с 2007)
  • ✅ Простота синтаксиса — всего 2 аргумента
  • ⚠️ Игнорирует текстовые и пустые ячейки автоматически
  • ❌ Вернёт ошибку #ЧИСЛО!, если во втором аргументе указать число больше, чем количество числовых значений в диапазоне
⚠️ Внимание: Если в данных есть повторяющиеся минимальные значения (например, две единицы), функция МАЛЬК вернёт второе по позиции, а не по уникальности. Чтобы получить второе уникальное значение, потребуется комбинация с ЕСЛИОШИБКА или УНИК (см. Метод 4).

Для наглядности рассмотрим пример с реальными данными:

ЯчейкаЗначениеФормулаРезультат
A115=МАЛЬК(A1:A5; 2)5
A23
A38
A45
A51
📊 Какой версии Excel вы пользуетесь?
Excel 2010-2016
Excel 2019
Office 365 / Excel 2021
Другая (укажите в комментариях)

Метод 2: Комбинация МИН + ЕСЛИ (для старых версий Excel)

Если вы работаете в Excel 2003 или более ранней версии (где нет функции МАЛЬК), можно обойтись комбинацией МИН и ЕСЛИ. Логика проста:

  1. Найти абсолютный минимум (МИН).
  2. Исключить его из диапазона с помощью ЕСЛИ.
  3. Найти минимум в оставшихся данных.

Формула массива (вводится нажатием Ctrl+Shift+Enter в старых версиях):

```excel

=МИН(ЕСЛИ(A1:A10<>МИН(A1:A10); A1:A10))

```

В Excel 2019+ и Office 365 эту формулу можно вводить как обычную (без Ctrl+Shift+Enter).

  • ✅ Работает даже в Excel 2000
  • ✅ Не требует дополнительных столбцов
  • ❌ Медленнее МАЛЬК на больших диапазонах (10 000+ строк)
  • ❌ Могут возникнуть проблемы с текстовыми значениями (вернёт #ЗНАЧ!)
⚠️ Внимание: Если в диапазоне есть пустые ячейки, формула проигнорирует их. Но если есть текст (например, "N/A"), Excel вернёт ошибку. Чтобы этого избежать, добавьте проверку на тип данных: =МИН(ЕСЛИ(ЕЧИСЛО(A1:A10); ЕСЛИ(A1:A10<>МИН(A1:A10); A1:A10))).

Исключены текстовые значения|Диапазон не содержит ошибок (#ДЕЛ/0!)|Минимум встречается только один раз|Версия Excel поддерживает формулы массива-->

Метод 3: Функция АГРЕГАТ (AGGREGATE) — гибкий вариант

Функция АГРЕГАТ (англ. AGGREGATE) появилась в Excel 2010 и позволяет гибко управлять обработкой ошибок, скрытых строк и других нюансов. Для поиска второго минимального значения используйте синтаксис:

```excel

=АГРЕГАТ(5; 6; диапазон; 2)

```

где:

- 5 — код функции МАЛЬК,

- 6 — игнорировать скрытые строки и ошибки,

- диапазон — ваш массив данных,

- 2 — порядковый номер (второе наименьшее).

Преимущество этого метода — устойчивость к "грязным" данным. Например, если в диапазоне есть ячейки с #ДЕЛ/0! или скрытые строки, АГРЕГАТ проигнорирует их, тогда как МАЛЬК вернёт ошибку.

  • ✅ Игнорирует ошибки и скрытые данные
  • ✅ Совместима с Excel 2010+
  • ✅ Можно настраивать поведение (например, учитывать скрытые строки)
  • ❌ Синтаксис сложнее, чем у МАЛЬК

Пример с параметрами:

ПараметрЗначениеОписание
Функция5Эквивалент МАЛЬК
Параметры6Игнорировать скрытые строки и ошибки
k2Второе наименьшее значение
ДиапазонA1:A20Анализируемые данные

Метод 4: Динамические массивы (Excel 365 и 2021)

В современных версиях Excel (Office 365 и Excel 2021) появились динамические массивы и новые функции, такие как УНИК (UNIQUE), СОРТ (SORT) и ПОСЛЕД (TAKE). С их помощью можно найти второе минимальное значение среди уникальных значений, игнорируя дубли.

Формула для второго уникального минимума:

```excel

=ПОСЛЕД(СОРТ(УНИК(диапазон)); 1; 2)

```

или по-английски:

```excel

=TAKE(SORT(UNIQUE(range)), 1, 2)

```

Разберём по шагам:

  1. УНИК(диапазон) — возвращает список уникальных значений.
  2. СОРТ(...) — сортирует их по возрастанию.
  3. ПОСЛЕД(..., 1, 2) — берёт вторую строку (индекс 2) из первого столбца.
  • ✅ Работает с уникальными значениями (игнорирует дубли)
  • ✅ Автоматически обновляется при изменении данных
  • ✅ Можно расширять для поиска 3-го, 4-го и т.д. минимума
  • ❌ Требует Excel 365 или 2021
  • ❌ Медленнее классических функций на больших массивах
⚠️ Внимание: Если в данных только одно уникальное значение (например, все ячейки содержат 5), формула вернёт ошибку #ЗНАЧ!. Чтобы избежать этого, оберните её в ЕСЛИОШИБКА:

```excel

=ЕСЛИОШИБКА(ПОСЛЕД(СОРТ(УНИК(A1:A10)); 1; 2); "Нет второго минимума")

```

Как работает функция УНИК?

Функция УНИК возвращает список уникальных значений из диапазона, исключая дубликаты. Например, для массива {1; 2; 2; 3} она вернёт {1; 2; 3}. Важно: порядок значений в результате зависит от исходного диапазона — если данные не отсортированы, УНИК сохранит их первоначальный порядок появления.

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

Если вы работаете с большими наборами данных (десятки тысяч строк), классические формулы Excel могут тормозить. В этом случае эффективнее использовать Power Query — инструмент для преобразования и анализа данных, встроенный в Excel 2016+ и Office 365.

Алгоритм действий:

  1. Выделите диапазон с данными.
  2. Перейдите на вкладку ДанныеИз таблицы/диапазона (или Get Data → From Table/Range).
  3. В открывшемся редакторе Power Query:
    • Отсортируйте столбец по возрастанию (ГлавнаяСортировка).
    • Удалите дубликаты (ГлавнаяУдалить строкиУдалить дубликаты).
    • Оставьте только вторую строку (ГлавнаяСохранить строкиСохранить диапазон строк, укажите 1-2).
  • Нажмите Закрыть и загрузить, чтобы вернуть результат в Excel.
  • Преимущества метода:

    • ✅ Обрабатывает миллионы строк без зависаний
    • ✅ Автоматически обновляется при изменении исходных данных
    • ✅ Можно добавлять дополнительные фильтры (например, игнорировать нули)
    • ❌ Требует навыков работы с Power Query
    • ❌ Не подходит для разовых задач (нужно настраивать запрос)

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

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

    Метод Версия Excel Работает с дублями? Скорость (10 000 строк) Устойчивость к ошибкам
    МАЛЬК2007+Нет (возвращает второе по позиции)⭐⭐⭐⭐⭐Средняя
    МИН+ЕСЛИ2000+Нет⭐⭐Низкая
    АГРЕГАТ2010+Нет⭐⭐⭐⭐Высокая
    Динамические массивы365/2021Да (уникальные значения)⭐⭐⭐Высокая
    Power Query2016+Да (можно настроить)⭐⭐⭐⭐⭐Максимальная

    Критическая информация: Если в ваших данных есть повторяющиеся минимальные значения (например, две единицы), и вам нужно второе уникальное значение, используйте Метод 4 (динамические массивы) или Power Query. Остальные методы вернут дубликат, а не следующее по величине число.

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

    При поиске второго минимального значения пользователи часто сталкиваются с следующими проблемами:

    1. Ошибка #ЧИСЛО! в МАЛЬК: Возникает, если во втором аргументе указано число больше, чем количество числовых значений в диапазоне. Например, =МАЛЬК(A1:A3; 5) вернёт ошибку, если в A1:A3 только 3 числа.

      Решение: Проверьте количество данных с помощью =СЧЁТ(A1:A10).

    2. Текстовые значения в диапазоне: Функции МИН и МАЛЬК игнорируют текст, но МИН+ЕСЛИ может вернуть ошибку.

      Решение: Используйте АГРЕГАТ с параметром 6 или очистите данные.

    3. Скрытые строки: Если данные отфильтрованы или строки скрыты вручную, МАЛЬК их проигнорирует, а АГРЕГАТ — нет (зависит от параметров).

      Решение: Укажите в АГРЕГАТ параметр 5 (игнорировать скрытые строки).

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

      Решение: Замените пустые строки на 0 или используйте ЕПУСТО для проверки.

    ⚠️ Внимание: Если вы используете МАЛЬК в Excel для Mac, учтите, что в некоторых версиях функция может работать медленнее, чем в Windows. Для больших массивов (>50 000 строк) рекомендуется использовать Power Query.

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

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

    Да. В Excel 365/2021 используйте комбинацию УНИК + СОРТ + ПОСЛЕД (см. Метод 4). В старых версиях потребуется вспомогательный столбец с формулой =ЕСЛИ(СЧЁТЕСЛИ($A$1:A1; A1)=1; A1; ""), а затем примените МАЛЬК к этому столбцу.

    Почему формула возвращает не то значение?

    Наиболее вероятные причины:

    • В данных есть скрытые строки или фильтры (проверьте параметры АГРЕГАТ).
    • Диапазон содержит текст или ошибки (используйте ЕЧИСЛО для фильтрации).
    • Вы указали неверный порядковый номер (например, МАЛЬК(..., 3) вместо 2).
    Как найти второе минимальное значение по условию?

    Используйте функцию МАЛЬКЕСЛИ (англ. SMALLIFS), доступную в Excel 2019+:

    ```excel

    =МАЛЬКЕСЛИ(диапазон_значений; диапазон_условий; условие; 2)

    ```

    Пример: найти второе минимальное значение в столбце B, если в столбце A стоит "Да":

    ```excel

    =МАЛЬКЕСЛИ(B1:B100; A1:A100; "Да"; 2)

    ```

    В старых версиях Excel замените на формулу массива:

    ```excel

    =МАЛЬК(ЕСЛИ(A1:A100="Да"; B1:B100); 2)

    ```

    (Вводится с Ctrl+Shift+Enter в Excel 2016 и старше.)

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

    Все перечисленные методы (кроме Power Query) обновляются автоматически при изменении исходных данных. Для Power Query:

    1. Щёлкните правой кнопкой по результату запроса.
    2. Выберите Обновить (или настройте автоматическое обновление в Свойствах связи).

    Чтобы формулы пересчитывались мгновенно, проверьте настройки Excel: Файл → Параметры → Формулы → Вычисления → Автоматически.

    Есть ли разница между МАЛЬК и АГРЕГАТ?

    Да:

    • МАЛЬК проще в использовании, но не умеет игнорировать ошибки и скрытые строки.
    • АГРЕГАТ гибче: можно настроить обработку ошибок (#ДЕЛ/0!, #ЗНАЧ!), скрытых данных и т.д. через второй аргумент.
    • По скорости на небольших диапазонах (<10 000 строк) разницы нет. На больших массивах АГРЕГАТ может быть медленнее из-за дополнительных проверок.