Функция MAX в Excel: как найти максимальное значение в таблице — от базы до продвинутых приемов

Функция MAX в Microsoft Excel возвращает ошибку #ЗНАЧ! или неправильный результат, если в диапазоне есть текстовые ячейки, скрытые строки или формулы с ошибками. Чтобы корректно найти максимальное значение в столбце B2:B100, сначала проверьте данные на наличие нечисловых значений — используйте комбинацию =МАКС(ЕСЛИОШИБКА(B2:B100;"")) для игнорирования ошибочных ячеек. Если требуется учесть только видимые строки после фильтрации, применяйте =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;B2:B100).

В 90% случаев проблемы с MAX связаны с неправильно заданным диапазоном или неучтенными пустыми ячейками. Например, формула =MAX(A1:A10) проигнорирует пустые клетки, но вернет 0, если в диапазоне есть ячейки с формулами, возвращающими пустое значение (""). Для точного анализа используйте условное форматирование (выделите диапазон → Главная → Условное форматирование → Правила выделения ячеек → Больше...) — это визуально покажет все значения, участвующие в расчете.

Если вам нужно найти максимум с учетом дополнительных условий (например, только для строк, где в столбце C стоит "Да"), используйте формулу массива =MAX(ЕСЛИ(C2:C100="Да";B2:B100)) и завершите ввод сочетанием Ctrl+Shift+Enter (в новых версиях Excel работает без этого). Для динамических диапазонов с автоматическим расширением замените B2:B100 на B:B или используйте структурированные ссылки на таблицы Excel.

Базовый синтаксис функции MAX: как правильно задать аргументы

Функция MAX в Excel принимает до 255 аргументов, каждый из которых может быть:

  • 📊 Числом: =MAX(10; 20; 5) вернет 20.
  • 📋 Ссылкой на ячейку: =MAX(A1; B5; C10).
  • 📈 Диапазоном: =MAX(A1:A100) или =MAX(Таблица1[Столбец1]) для структурированных таблиц.
  • 🧮 Другой функцией: =MAX(SUM(A1:A5); B10).

Ключевые правила:

⚠️ Внимание: Если все аргументы функции MAX — текстовые значения, Excel вернет ошибку #ЗНАЧ!. Пустые ячейки и ячейки с текстом игнорируются, но ячейки с формулами, возвращающими пустую строку (""), воспринимаются как 0.
Тип аргументаПримерРезультатКомментарий
Числа=MAX(5; 10; -3)10Отрицательные числа учитываются
Смешанные данные=MAX(5; "текст"; 10)10Текст игнорируется
Диапазон с ошибками=MAX(A1:A3), где A2 содержит #ДЕЛ/0!#ДЕЛ/0!Ошибки распространяются на результат
Структурированная ссылка=MAX(Таблица1[Цена])Максимум из столбца "Цена"Автоматически обновляется при добавлении строк

Для поиска максимума в нескольких несмежных диапазонах перечислите их через точку с запятой: =MAX(A1:A10; C1:C10; E5). Если нужно исключить заголовки столбцов, используйте =MAX(A2:A100) вместо A1:A100.

Ошибки функции MAX: почему Excel возвращает #ЗНАЧ!, #ЧИСЛО! или 0

Распространенные причины ошибочных результатов:

  • 🔴 #ЗНАЧ!: Все аргументы — текстовые (например, =MAX("а"; "б")).
  • 🔴 #ЧИСЛО!: В диапазоне есть ячейки с ошибками (#ДЕЛ/0!, #Н/Д), и они не обработаны функцией ЕСЛИОШИБКА.
  • 🟡 0: В диапазоне есть пустые ячейки или ячейки с формулами, возвращающими "" (Excel воспринимает их как 0).
  • 🟡 Неправильный максимум: Диапазон включает заголовки или скрытые строки.

Решения:

  1. Для игнорирования ошибок: =МАКС(ЕСЛИОШИБКА(A1:A10;"")).
  2. Для исключения текста: =МАКС(ЕСЛИ(ЕЧИСЛО(A1:A10);A1:A10)) (формула массива).
  3. Для работы только с видимыми строками: =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;A1:A10).
📊 С какой ошибкой функции MAX вы сталкивались чаще?
#ЗНАЧ!
#ЧИСЛО!
Неправильный максимум из-за скрытых строк
Другое

MAX с условиями: как найти максимум по критерию (MAXIFS и альтернативы)

В Excel 2019 и новее есть специализированная функция MAXIFS, которая позволяет задать одно или несколько условий:

=MAXIFS(диапазон_максимума; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)

Примеры:

  • 📌 Максимум продаж по региону "Москва": =MAXIFS(B2:B100; A2:A100; "Москва").
  • 📌 Максимум для дат позже 01.01.2023: =MAXIFS(C2:C100; B2:B100; ">01.01.2023").
  • 📌 Максимум с двумя условиями: =MAXIFS(D2:D100; B2:B100; "Да"; C2:C100; ">1000").

Для старых версий Excel используйте формулу массива:

=MAX(ЕСЛИ(A2:A100="Москва"; B2:B100))

Завершайте ввод Ctrl+Shift+Enter в Excel 2016 и ранее. В Excel 365 формулы массива работают без этого.

Как работает MAXIFS с датами

Если в условии используете даты, заключайте их в кавычки: =MAXIFS(C2:C100; B2:B100; ">01.01.2023"). Для динамических дат (например, "последние 30 дней") используйте =MAXIFS(C2:C100; B2:B100; ">="&СЕГОДНЯ()-30).

MAX в фильтрованных таблицах: как получить максимум только для видимых строк

Функция MAX по умолчанию учитывает все ячейки диапазона, включая скрытые строки. Чтобы работать только с видимыми данными после применения фильтра:

  1. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
    =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4; B2:B100)

    где 4 — код функции MAX (другие коды: 9 для СУММ, 1 для СРЗНАЧ).

  2. Для динамических таблиц: =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4; Таблица1[Столбец1]).

Ограничения:

⚠️ Внимание: ПРОМЕЖУТОЧНЫЕ.ИТОГИ игнорирует строки, скрытые вручную (через контекстное меню "Скрыть"), но учитывает строки, скрытые фильтром. Чтобы исключить и те, и другие, комбинируйте с ЕСЛИ(СТРОКА(А1:A100)-СТРОКА(А1)+1=ПОДСЧЁТЗ(А1:A100)); ...).

1. Убедитесь, что фильтр применен (иконка воронки на заголовке столбца активна)

2. Проверьте, нет ли скрытых строк вручную (выделите диапазон → правая кнопка → "Показать")

3. Используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ с кодом 4 для MAX

4. Для структурированных таблиц укажите столбец в квадратных скобках (например, Таблица1[Цена])

-->

Продвинутые приемы: MAX с динамическими массивами и LAMBDA

В Excel 365 и 2021 доступны динамические массивы, которые позволяют упростить работу с MAX:

  • 🔄 Максимум по нескольким столбцам:
    =MAX(ВЫБРАТЬ(Таблица1[Столбец1]; Таблица1[Столбец2]))
  • 🔄 Максимум с сортировкой:
    =МАКС(СОРТ(ВЫБРАТЬ(Таблица1[Цена]); -1))

    (возвращает максимальное значение после сортировки по убыванию).

  • 🔄 MAX с пользовательской функцией (используя LAMBDA):
    =МАКС(КАРТА(Таблица1[Цена]; LAMBDA(x; ЕСЛИ(x>1000; x; 0))))

    (находит максимум только среди значений > 1000).

Для работы с текстовыми данными (например, найти последнюю дату в формате текста) используйте:

=MAX(ЗНАЧЕН(ЕСЛИОШИБКА(A1:A100; "")))

Альтернативы функции MAX: когда и чем ее заменить

В некоторых сценариях MAX неоптимальна. Рассмотрите альтернативы:

ЗадачаАльтернативная функцияПримерПреимущество
Максимум с игнорированием ошибокАГРЕГАТ(4; 6; диапазон)=АГРЕГАТ(4; 6; A1:A100)Игнорирует ошибки и скрытые строки
Максимум по условию в старых версияхМАКС(ЕСЛИ(условие; диапазон))=МАКС(ЕСЛИ(A1:A10="Да"; B1:B10))Работает в Excel 2010+
Максимум с учетом нескольких критериевMAXIFS (Excel 2019+)=MAXIFS(B2:B100; A2:A100; "Москва"; C2:C100; ">100")Простой синтаксис для сложных условий
Максимум в динамическом диапазонеМАКС(СМЕЩ(...=МАКС(СМЕЩ(A1;0;0;СЧЁТЗ(A:A);1))Автоматически подстраивается под размер данных

Для поиска второго по величине значения используйте:

=БОЛЬШОЙ(диапазон; 2)

Чтобы найти максимум по модулю (игнорируя знак), применяйте:

=MAX(ABS(A1:A100))

Оптимизация производительности: как ускорить MAX в больших таблицах

В таблицах с более чем 100 000 строк функция MAX может замедлять пересчет. Оптимизируйте ее работу:

  • Используйте структурированные таблицы: Ссылки вида Таблица1[Столбец1] пересчитываются быстрее, чем A1:A100000.
  • Ограничивайте диапазоны: Вместо =MAX(A:A) используйте =MAX(A2:A&СЧЁТЗ(A:A)).
  • Отключите автоматический пересчет: Перейдите в Формулы → Параметры вычислений → Вручную и обновляйте данные по F9.
  • Замените MAX на ПРОМЕЖУТОЧНЫЕ.ИТОГИ для фильтрованных данных — она оптимизирована для больших массивов.

Для сверхбольших наборов данных (1+ млн строк) рассмотрите:

  1. Использование Power Query для предварительной агрегации данных.
  2. Переход на Power Pivot и меру MAX в DAX:
  3. Максимум := MAX(Таблица[Столбец])

Частые вопросы по функции MAX в Excel

Как найти максимум в Excel, если в ячейках текст и числа?

Используйте формулу массива: =MAX(ЕСЛИ(ЕЧИСЛО(A1:A100); A1:A100)). В Excel 365 можно упростить до =MAX(ФИЛЬТР(A1:A100; ЕЧИСЛО(A1:A100))).

Почему MAX возвращает 0, если в диапазоне нет нулей?

Скорее всего, в диапазоне есть пустые ячейки или ячейки с формулами, возвращающими "" (пустую строку). Excel воспринимает их как 0. Чтобы исключить: =MAX(ЕСЛИ(A1:A100<>""; A1:A100)).

Как найти максимум по цвету ячейки?

Стандартными функциями — невозможно. Используйте VBA или надстройку. Пример кода для VBA:

Function MaxByColor(rng As Range, color As Range) As Double

Dim cell As Range, maxVal As Double

maxVal = -1E+307

For Each cell In rng

If cell.Interior.Color = color.Interior.Color And cell.Value > maxVal Then

maxVal = cell.Value

End If

Next cell

MaxByColor = maxVal

End Function

Вызов: =MaxByColor(A1:A100; B1), где B1 — ячейка с нужным цветом.

Можно ли использовать MAX для дат?

Да, Excel хранит даты как числа (количество дней с 01.01.1900). Формула =MAX(A1:A10) вернет самую позднюю дату в диапазоне. Для форматирования результата как даты используйте Формат ячеек → Дата.

Как найти максимум в сводной таблице?

Добавьте поле значений в сводную таблицу, затем щелкните по нему правой кнопкой → Параметры полей значений → Дополнительные вычисления → Максимум. Или используйте =ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("Максимум"; "Имя_сводной_таблицы").