Работа с данными в Microsoft Excel часто требует не только базовых вычислений, но и анализа экстремальных значений. Если найти максимальное значение в столбце умеют даже новички (достаточно функции МАКС), то поиск второго по величине числа вызывает вопросы. Почему? Потому что Excel не имеет встроенной функции "второе максимум" — её нужно конструировать из существующих инструментов.
Эта задача актуальна для финансового анализа (топ-2 расходы), спортивной статистики (серебряный призёр), логистики (второй по весу груз) и десятков других сценариев. В статье разберём 5 рабочих методов — от элементарных формул для новичков до гибких решений для обработки больших массивов данных с учётом повторяющихся значений, ошибок и динамических диапазонов.
Спойлер: самый надёжный способ — комбинация БОЛЬШОЙ + СЧЁТЕСЛИ, но для специфических случаев (например, игнорирование нулей или текста) потребуются массивы или Power Query. Готовы? Начнём с простого и постепенно усложним задачи.
1. Базовый метод: функция БОЛЬШОЙ
Функция БОЛЬШОЙ (англ. LARGE) специально создана для поиска n-го наибольшего значения в диапазоне. Для второго максимума достаточно указать позицию 2:
Синтаксис:
=БОЛЬШОЙ(диапазон; 2)
Пример: если в ячейках A1:A10 хранятся числа 15, 7, 22, 3, 19, формула =БОЛЬШОЙ(A1:A10; 2) вернёт 19 (второе по величине после 22).
✅ Плюсы метода:
- 🔹 Простота — одна функция без вложений
- 🔹 Работает с неотсортированными данными
- 🔹 Поддерживает динамические диапазоны (например,
A1:A1000)
⚠️ Внимание: Если в диапазоне меньше 2 числовых значений, функция вернёт ошибку #ЧИСЛО!. Чтобы избежать этого, добавьте проверку:
=ЕСЛИОШИБКА(БОЛЬШОЙ(A1:A10; 2); "Недостаточно данных")
2. Альтернатива: комбинация МАКС + ЕСЛИ
Когда функция БОЛЬШОЙ недоступна (например, в старых версиях Excel), можно обойтись парой МАКС + ЕСЛИ. Логика: сначала находим максимальное значение, затем ищем максимум среди всех чисел, кроме него.
Формула массива (вводится через Ctrl+Shift+Enter в Excel 2019 и ранее):
=МАКС(ЕСЛИ(A1:A10<>МАКС(A1:A10); A1:A10))
В новых версиях (Excel 365, 2021) достаточно нажать Enter — формула автоматически станет динамической.
⚠️ Внимание: Этот метод не работает с повторяющимися максимумами. Если в данных два одинаковых самых больших числа (например, 22, 22, 15), формула вернёт 0 или ошибку. Для таких случаев используйте метод из следующего раздела.
📌 Пример на практике:
| Данные (A1:A5) | Формула | Результат |
|---|---|---|
| 15 | =МАКС(ЕСЛИ(A1:A5<>МАКС(A1:A5); A1:A5)) | 19 |
| 7 | ||
| 22 | ||
| 3 | ||
| 19 |
3. Учёт повторяющихся значений: БОЛЬШОЙ + СЧЁТЕСЛИ
Если в данных есть дубликаты максимального значения (например, 22, 22, 19, 15), функция БОЛЬШОЙ(диапазон; 2) вернёт второе 22, а не 19. Чтобы получить уникальное второе значение, нужно учитывать количество повторений.
Решение: комбинация БОЛЬШОЙ + СЧЁТЕСЛИ:
=БОЛЬШОЙ(A1:A10; 1 + СЧЁТЕСЛИ(A1:A10; МАКС(A1:A10)))
Разбор формулы:
МАКС(A1:A10)— находим максимальное значение (22).СЧЁТЕСЛИ(A1:A10; 22)— считаем, сколько раз оно повторяется (например, 2 раза).БОЛЬШОЙ(A1:A10; 1 + 2)— ищем 3-е по величине значение, которое станет вторым уникальным.
✅ Когда использовать этот метод:
- 📊 В финансовых отчётах с одинаковыми суммами
- 🏆 В спортивных таблицах с ничьими
- 📦 В инвентаризационных списках с повторяющимися артикулами
4. Продвинутый подход: формулы массива для сложных условий
Если нужно найти второе максимум с учётом дополнительных критериев (например, игнорировать нули, ошибки или ячейки с текстом), пригодятся формулы массива. Рассмотрим два сценария:
🔹 Сценарий 1: Игнорировать нули и текст
=БОЛЬШОЙ(ЕСЛИОШИБКА(ЕСЛИ(A1:A10<>0; ЕСЛИ(ЕТЕКСТ(A1:A10); ""; A1:A10)); ""); 2)
Примечание: В Excel 365 формула работает как динамическая; в старых версиях вводите через Ctrl+Shift+Enter.
🔹 Сценарий 2: Второе максимум по условию (например, только для значений >10):
=БОЛЬШОЙ(ЕСЛИ(A1:A10>10; A1:A10); 2)
📌 Таблица сравнения методов:
| Метод | Поддерживает условия | Работает с дублями | Сложность |
|---|---|---|---|
БОЛЬШОЙ(диапазон; 2) | ❌ Нет | ⚠️ Только если дубли не критичны | ⭐ |
МАКС + ЕСЛИ | ❌ Нет | ❌ Нет | ⭐⭐ |
БОЛЬШОЙ + СЧЁТЕСЛИ | ❌ Нет | ✅ Да | ⭐⭐ |
| Формулы массива | ✅ Да | ✅ Да | ⭐⭐⭐ |
Как ускорить расчёты с формулами массива?
Для больших диапазонов (10 000+ строк) формулы массива могут тормозить Excel. Решения:
1. Используйте Power Query (см. следующий раздел).
2. Преобразуйте формулу в значения (Копировать → Специальная вставка → Значения).
3. Разбейте задачу на промежуточные столбцы (например, сначала отфильтруйте данные, затем примените БОЛЬШОЙ).
5. Автоматизация: Power Query для больших данных
Если вы работаете с десятками тысяч строк, формулы становятся неэффективными. В этом случае поможет Power Query (вкладка Данные → Получить данные в Excel 2016+).
🔹 Пошаговая инструкция:
- Выделите диапазон и нажмите
Данные → Из таблицы/диапазона(илиПолучить данные → Из таблицы). - В редакторе Power Query выделите столбец с данными.
- Перейдите на вкладку
Преобразование → Сортировка → По убыванию. - Добавьте индексный столбец:
Добавить столбец → Индексный столбец. - Отфильтруйте вторую строку (индекс = 1, так как счёт начинается с 0).
- Нажмите
Главная → Закрыть и загрузить.
✅ Преимущества Power Query:
- 🚀 Обрабатывает миллионы строк без лагов
- 🔄 Автоматически обновляет результат при изменении исходных данных
- 🛠️ Позволяет добавлять сложные фильтры (например, игнорировать отрицательные числа)
Убедитесь, что данные оформлены как таблица (Ctrl+T)
Проверьте отсутствие объединённых ячеек
Удалите пустые строки/столбцы
Задайте правильные форматы данных (числовой, текстовый и т.д.)
-->
⚠️ Внимание: После загрузки результата из Power Query он становится статичным. Чтобы обновить данные, нажмите правой кнопкой по таблице и выберите В Excel 365 и Excel 2021Обновить.
6. Динамические массивы в Excel 365: НОВЫЙ подход
СОРТИРОВКА + ИНДЕКС:
Формула:
=ИНДЕКС(СОРТИРОВКА(A1:A10; ; -1); 2)
Как это работает:
СОРТИРОВКА(A1:A10; ; -1)— сортирует данные по убыванию.ИНДЕКС(..., 2)— возвращает второе значение из отсортированного списка.
Это единственный метод, который автоматически обновляет результат при добавлении новых данных в исходный диапазон (функция "проливается" вниз).
🔹 Бонус: Чтобы получить топ-3 значения, используйте:
Даже опытные пользователи Excel сталкиваются с проблемами при поиске второго максимума. Вот топ-5 ошибок и их решения:
🔹 Ошибка #1: Формула возвращает #ЧИСЛО!
🔹 Ошибка #2: Результат — 0 вместо второго максимума
Причина: в данных есть текстовые ячейки или ошибки. Используйте формулу массива с фильтрацией:
🔹 Ошибка #3: Повторяющиеся максимумы искажают результат
Решение: применяйте метод с 🔹 Ошибка #4: Формула не обновляется при добавлении новых данных
В старых версиях Excel формулы массива не расширяются автоматически. Решения:
🔹 Ошибка #5: Медленная работа с большими диапазонами
Если формулы тормозят, попробуйте:
Да! Замените Используйте Для старых версий подойдёт формула массива:
В немецкой локализации Excel функция называется Для других языков:
Используйте ⚠️ Внимание: В формуле используйте абсолютные ссылки на диапазон ( Да, и она существенная:
Для критичных по скорости задач (например, в финансовых моделях) всегда отдавайте предпочтение
Примечание: =ИНДЕКС(СОРТИРОВКА(A1:A10; ; -1); ПОСЛЕДОВАТ(3))ПОСЛЕДОВАТ(3) создаёт массив {1; 2; 3}, поэтому формула вернёт три самых больших числа.
Частые ошибки и как их избежать
⚠️ Внимание: Это происходит, если в диапазоне меньше 2 числовых значений. Добавьте проверку:
=ЕСЛИ(СЧЁТ(A1:A10)>=2; БОЛЬШОЙ(A1:A10; 2); "Нет данных")=БОЛЬШОЙ(ЕСЛИОШИБКА(ЕСЛИ(ЕЧИСЛО(A1:A10); A1:A10); ""); 2)СЧЁТЕСЛИ (раздел 3) или сортируйте данные перед анализом.
Таблицы Excel (выделите данные и нажмите Ctrl+T).A1:A10) на динамические (A:A или именованные диапазоны).
FAQ: Ответы на популярные вопросы
Можно ли найти второе наименьшее значение аналогичными методами?
БОЛЬШОЙ на МАЛЕНЬКИЙ (англ. SMALL), а сортировку по убыванию — на сортировку по возрастанию. Пример:
=МАЛЕНЬКИЙ(A1:A10; 2)Как найти второе максимум в фильтрованном списке (например, только для "Январь")?
БОЛЬШОЙ с функцией ФИЛЬТР (Excel 365):
=БОЛЬШОЙ(ФИЛЬТР(A1:A10; B1:B10="Январь"); 2)
Примечание: В Excel 2019 и ранее вводите через =БОЛЬШОЙ(ЕСЛИ(B1:B10="Январь"; A1:A10); 2)Ctrl+Shift+Enter.
Почему функция БОЛЬШОЙ возвращает ошибку #ЗНАЧ! в немецкой версии Excel?
KGRÖSSTE (а не LARGE). Замените название или используйте английскую версию с разделителем ;:
=LARGE(A1:A10; 2)
GRANDE.VALEURK.ESIMO.MAYORGRANDEКак автоматически подсветить второе максимум в таблице?
Условное форматирование:
A1:A10).Главная → Условное форматирование → Создать правило.Использовать формулу... и введите:
=A1=БОЛЬШОЙ($A$1:$A$10; 2)ОК.$A$1:$A$10), но относительную на первую ячейку (A1).
Есть ли разница между БОЛЬШОЙ и комбинацией МАКС + ЕСЛИ по скорости?
БОЛЬШОЙ работает в 2-3 раза быстрее на больших диапазонах (10 000+ строк), так как оптимизирована под эту задачу.МАКС + ЕСЛИ требует пересчёта всего массива, что замедляет производительность.БОЛЬШОЙ.