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

Почему поиск максимума в Excel — это не только про функцию МАКС

На первый взгляд, найти максимальное значение в Microsoft Excel или Google Таблицах — задача для одного клика. Достаточно выделить диапазон и применить функцию МАКС, верно? На практике всё сложнее: что если нужно игнорировать скрытые строки, учитывать только видимые данные после фильтра, или найти максимум с учётом дополнительных условий (например, только для определённого региона или периода)?

Эта статья не про тривиальные случаи, а про реальные сценарии, с которыми сталкиваются аналитики, бухгалтеры и менеджеры. Мы разберём:

  • 🔹 Базовые функции (МАКС, МАКСА) и когда они дают сбой
  • 🔹 Поиск максимума по условиюЕСЛИ, МАКСЕСЛИ, ФИЛЬТР)
  • 🔹 Работа с динамическими массивами в Excel 365 и 2021
  • 🔹 Ошибки, которые портят результаты (от #ЗНАЧ! до #ДЕЛ/0!)

Особое внимание уделим скрытым ловушкам: например, почему МАКС может проигнорировать ячейки с текстом, даже если они содержат числа, или как правильно обрабатывать пустые значения. Если вы работаете с большими данными — этот гайд сэкономит вам часы отладки.

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

Способ 1: Функция МАКС — когда она работает, а когда нет

Функция МАКС — самый очевидный инструмент для поиска максимального значения. Её синтаксис прост:

=МАКС(число1; [число2]; ...)

или для диапазона:

=МАКС(A2:A100)

Но есть 3 ключевых ограничения, о которых мало кто знает:

  • 🚫 Игнорирует текст: если в диапазоне есть ячейка с текстом (например, "Н/Д"), МАКС её пропустит. Это может привести к ложному максимуму, если текст маскирует реальное число.
  • 🚫 Не работает со скрытыми строками: если применить фильтр, функция вернёт максимум по всем данным, а не только по видимым.
  • 🚫 Ошибки ломают результат: если в диапазоне есть #ДЕЛ/0! или #ЗНАЧ!, МАКС вернёт ошибку, даже если есть корректные числа.

Пример проблемы: в таблице с продажами одна из ячеек содержит текст "Данные уточняются". МАКС проигнорирует её, но если это ячейка с реальным максимумом (например, 100 000 ₽), вы получите неверный результат.

⚠️ Внимание: Если вам нужно учитывать все ячейки, включая текстовые (например, для проверки корректности данных), используйте МАКСА — она обрабатывает текст как 0. Но это тоже может исказить результат!
Функция Обрабатывает текст Игнорирует ошибки Работает с фильтрами
МАКС ❌ Нет ❌ Нет (вернёт ошибку) ❌ Нет (учитывает скрытые строки)
МАКСА ✅ Да (как 0) ✅ Да ❌ Нет
ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4;...) ❌ Нет ❌ Нет ✅ Да

Способ 2: МАКСЕСЛИ и МАКСЕСЛИМН — максимум с условиями

Допустим, вам нужно найти максимальную продажу только для региона "Москва" или за последний квартал. Здесь на помощь приходят функции МАКСЕСЛИ (Excel 2019+) и МАКСЕСЛИМН (для нескольких условий).

Синтаксис:

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

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

Пример: найдём максимальную сумму сделки для менеджера "Иванов" в таблице:

=МАКСЕСЛИМН(B2:B100; A2:A100; "Иванов"; C2:C100; ">10000")

Эта формула вернёт максимум из столбца B, где в столбце A указан "Иванов", а в столбце C сумма больше 10 000.

Убедитесь, что диапазоны условий и чисел совпадают по размеру|

Проверьте регистр текста (Excel чувствителен к "Иванов" vs "иванов")|

Исключите пустые ячейки в диапазонах условий (они могут исказить результат)|

Для дат используйте формат, распознаваемый Excel (например, 01.01.2023, а не "январь 2023")

-->

Если у вас Excel 2016 или старше, эти функции недоступны. Альтернатива — массивная формула с ЕСЛИ:

=МАКС(ЕСЛИ(A2:A100="Иванов"; B2:B100; ""))

Не забудьте нажать Ctrl+Shift+Enter (в старых версиях Excel), чтобы активировать массив.

⚠️ Внимание: Функции МАКСЕСЛИМН и МИНЕСЛИМН появились только в Excel 2019. В Google Таблицах их аналог — MAXIFS, но синтаксис отличается (диапазон чисел указывается последним).

Способ 3: Динамические массивы — максимум с фильтрацией в Excel 365

Если вы используете Excel 365 или Excel 2021, у вас есть доступ к динамическим массивам — революционному инструменту для работы с данными. Комбинация функций ФИЛЬТР + МАКС позволяет гибко управлять условиями без сложных формул.

Пример: найдём максимальную зарплату среди сотрудников отдела "Маркетинг", исключив стажёров:

=МАКС(ФИЛЬТР(B2:B100; (A2:A100="Маркетинг")*(C2:C100<>"Стажёр")))

Как это работает:

  1. ФИЛЬТР возвращает динамический массив значений из B2:B100, где выполняются оба условия.
  2. МАКС находит максимум в полученном массиве.

Преимущество перед МАКСЕСЛИМН: вы можете использовать логические выражения (например, C2:C100<>"Стажёр") вместо жёстких критериев.

Что делать, если ФИЛЬТР возвращает ошибку #ПУСТО!?

Ошибка #ПУСТО! означает, что ни одна строка не удовлетворила условиям фильтра. Чтобы избежать сбоя, оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(МАКС(ФИЛЬТР(...)); "Нет данных")

Ещё один мощный приём — комбинация с СОРТ для поиска второго по величине значения:

=ИНДЕКС(СОРТ(ФИЛЬТР(B2:B100; A2:A100="Москва");;-1); 2)

Эта формула:

  1. Фильтрует данные по Москве.
  2. Сортирует их по убыванию.
  3. Возвращает второе значение (индекс 2).

Способ 4: Поиск максимума в отфильтрованных данных

Одна из самых распространённых проблем: вы применили фильтр к таблице, но функция МАКС по-прежнему учитывает все строки, включая скрытые. Решение — функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ.

Синтаксис:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(функция_номер; диапазон)

Для поиска максимума используйте функция_номер = 4:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4; B2:B100)

Особенности:

  • ✅ Учитывает только видимые строки после фильтра.
  • ✅ Игнорирует строки, скрытые вручную (через контекстное меню "Скрыть").
  • ❌ Не работает с ошибками в ячейках (вернёт #ДЕЛ/0!).

Если вам нужно учитывать несколько столбцов, комбинируйте с ЕСЛИ:

=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4; ЕСЛИ(A2:A100="Да"; B2:B100))

Не забудьте подтвердить массив Ctrl+Shift+Enter в Excel 2016.

⚠️ Внимание: Функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ не работает с таблицами, созданными через Вставка → Таблица, если фильтр применён к самой таблице. В этом случае используйте МАКС с ручным указанием видимого диапазона.

Способ 5: Максимум по датам, времени и нестандартным форматам

Excel часто воспринимает даты и время как числа, но поиск максимума здесь имеет нюансы. Например, если в ячейках смешаны форматы (например, "01.01.2023" и "1 января 2023"), МАКС может дать сбой.

Правила работы с датами:

  • 📅 Формат ячеек: Убедитесь, что все даты имеют одинаковый формат (например, ДД.ММ.ГГГГ). Используйте ФОРМАТ ЯЧЕЕК → Дата.
  • 🕒 Время: Для поиска максимального времени (например, в логах) используйте МАКС с форматом ЧЧ:ММ:СС.
  • 🔄 Текстовые даты: Если даты хранятся как текст (например, "январь 2023"), преобразуйте их в числовой формат с помощью ДАТАЗНАЧ:
=МАКС(ДАТАЗНАЧ(A2:A100))

Пример: найдём самую позднюю дату поставки в таблице:

=МАКС(ЕСЛИ(ИНДЕКС(B2:B100; 0); ДАТАЗНАЧ(B2:B100)))

Здесь ИНДЕКС(B2:B100; 0) возвращает весь столбец, а ДАТАЗНАЧ преобразует текст в даты.

Для времени (например, в логах звонков) используйте:

=МАКС(ЕСЛИ(A2:A100<>""; ВРЕМЗНАЧ(A2:A100)))
⚠️ Внимание: Функция ДАТАЗНАЧ не распознаёт все текстовые форматы дат. Например, "1 января" без года вернёт ошибку. В таких случаях используйте ПОДСТАВИТЬ + ДАТА для приведения к стандартному виду.

Ошибки при поиске максимума и как их исправить

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

Ошибка Причина Решение
#ЗНАЧ! В диапазоне есть текст, который Excel не может проигнорировать (например, "N/A" вместо числа). Используйте МАКСА или очистите данные от текста.
#ДЕЛ/0! В диапазоне есть ошибка деления на ноль или пустая ячейка в знаменателе. Оберните формулу в ЕСЛИОШИБКА или используйте ЕСЛИ для проверки:
#ИМЯ? Опечатка в названии функции (например, МАХ вместо МАКС). Проверьте синтаксис. В неанглоязычных версиях Excel используйте локализованные названия (например, MAX в английской версии).
Некорректный результат В диапазоне есть скрытые символы (например, пробелы) или числа хранятся как текст. Примените ЧИСТ и ЗНАЧЕН:

Пример исправления ошибки #ДЕЛ/0!:

=ЕСЛИОШИБКА(МАКС(A2:A100); "Ошибка в данных")

Если проблема в скрытых символах (например, неразрывный пробел), используйте:

=МАКС(ЗНАЧЕН(ПОДСТАВИТЬ(A2:A100; СИМВОЛ(160); " ")))

Здесь СИМВОЛ(160) — это неразрывный пробел, который часто копируется из веб-страниц.

FAQ: Ответы на частые вопросы

Как найти максимум в Excel Online или мобильной версии?

В Excel Online и мобильных приложениях доступны те же функции (МАКС, МАКСЕСЛИ), но могут отсутствовать динамические массивы (в зависимости от версии). Для сложных формул:

  1. Используйте МАКСЕСЛИ вместо массивных формул.
  2. Если нужны динамические массивы, откройте файл в десктопной версии Excel.

В мобильной версии Google Таблиц все функции работают аналогично десктопной, но интерфейс для ввода формул менее удобен.

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

Нет, стандартные функции Excel не умеют анализировать цвет ячеек. Альтернативы:

  • 🔹 Фильтр по цвету: Примените фильтр по цвету ячейки, затем используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ(4; ...).
  • 🔹 VBA: Напишите макрос, который проверяет Interior.Color ячеек.
  • 🔹 Условное форматирование: Создайте правило, которое выделяет максимум, затем вручную проверьте цвет.

Пример VBA-кода для поиска максимума среди красных ячеек:

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

Dim cl As Range, maxVal As Double

maxVal = -1E+307

For Each cl In rng

If cl.Interior.Color = color.Interior.Color Then

If cl.Value > maxVal Then maxVal = cl.Value

End If

Next cl

MaxByColor = maxVal

End Function

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

В сводной таблице максимум можно посчитать двумя способами:

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

Ограничение: если в сводной таблице применён фильтр, МАКС вернёт значение по всем данным, а не по видимым. Для корректного результата используйте ПРОМЕЖУТОЧНЫЕ.ИТОГИ на исходных данных.

Чем отличается МАКС от МАКСА?

Основные различия:

Критерий МАКС МАКСА
Обработка текста Игнорирует Воспринимает как 0
Обработка логических значений (ИСТИНА/ЛОЖЬ) Игнорирует ИСТИНА=1, ЛОЖЬ=0
Обработка ошибок (#Н/Д, #ДЕЛ/0!) Возвращает ошибку Игнорирует
Производительность на больших данных Быстрее Медленнее (проверяет все ячейки)

Пример, где МАКСА полезнее:

=МАКСА(A2:A100)  // Вернёт 0, если все ячейки пустые или содержат текст

=МАКС(A2:A100) // Вернёт 0 только если есть хотя бы одно число

Как найти максимум в Power Query?

В Power Query (инструмент для ETL в Excel) поиск максимума осуществляется через:

  1. Выделите столбец с числами.
  2. Перейдите на вкладку ПреобразованиеСтатистикаМаксимум.
  3. Или добавьте пользовательский столбец с формулой:
= List.Max([ВашСтолбец])

Пример: найдём максимальную цену в таблице Sales:

  1. Загрузите данные в Power Query.
  2. Добавьте группировку по категории (если нужно).
  3. В новой таблице создайте столбец с формулой = List.Max([Price]).

Преимущество Power Query: результат обновляется при изменении исходных данных.