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

Работа с большими массивами данных в Microsoft Excel часто требует поиска экстремальных значений — и максимальное среди них не исключение. Без этого навыка невозможно анализировать продажи, оценивать эффективность, строить прогнозы или просто проверять корректность введённых данных. Но как найти максимум быстро и без ошибок?

В этой статье мы разберём не только базовые методы с функцией MAX, но и продвинутые приёмы: поиск максимального значения с условиями, игнорирование ошибок, работа с динамическими диапазонами и даже альтернативные способы через фильтры и сводные таблицы. Вы узнаете, как избежать распространённой ошибки с пустыми ячейками, которая искажает результаты в 80% случаев, и почему иногда проще использовать МАКСА вместо классического МАКС.

Неважно, новичок вы или опытный пользователь — здесь найдётся решение для любой задачи. Давайте начнём с самого простого и постепенно перейдём к профессиональным техникам.

1. Базовый метод: функция MAX (МАКС) для простого диапазона

Самый очевидный и универсальный способ — использовать встроенную функцию MAX (в русской версии — МАКС). Она анализирует переданный диапазон и возвращает наибольшее числовое значение. Синтаксис прост:

=МАКС(диапазон)

Например, чтобы найти максимальную цену в столбце B2:B100, достаточно ввести:

=МАКС(B2:B100)
  • ✅ Работает с числами, датами (возвращает самую позднюю дату) и логическими значениями (ИСТИНА=1, ЛОЖЬ=0)
  • ❌ Игнорирует текстовые значения и пустые ячейки (но это может быть опасно — см. предупреждение ниже)
  • 🔄 Можно указывать несколько диапазонов через запятую: =МАКС(B2:B100; D2:D100)

Пример практического применения: у вас есть таблица продаж по регионам, и нужно найти самый высокий показатель за месяц. Достаточно выделить столбец с суммами и применить МАКС. Но что делать, если в данных есть аномалии?

⚠️ Внимание: Если в диапазоне есть скрытые строки (через фильтр или вручную), функция МАКС проигнорирует их и рассчитает максимум только по видимым ячейкам. Это может привести к неверным выводам при анализе отфильтрованных данных.

2. MAXA vs MAX: когда игнорировать ошибки и текст

Функция МАКСА (англ. MAXA) — это "умный" аналог МАКС, который умеет обрабатывать не только числа, но и:

  • 🔢 Текстовые представления чисел (например, ячейка с текстом "100" будет воспринята как число 100)
  • ⚠️ Ячейки с ошибками (#ДЕЛ/0!, #ЗНАЧ! и др.) — они просто игнорируются
  • 📅 Даты и время (как и МАКС, но с дополнительной обработкой текста)

Синтаксис идентичен:

=МАКСА(B2:B100)

Где это пригодится? Например, если вы импортировали данные из внешнего источника, где числа записаны как текст, или если в таблице есть расчётные ошибки, которые не должны влиять на результат. Но будьте осторожны:

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

3. Поиск максимального значения с условием (функции МАКСЕСЛИ и ДМАКС)

Часто требуется найти максимум не во всём диапазоне, а только среди записей, соответствующих определённому критерию. Например, максимальная продажа только по региону "Москва" или самый высокий балл среди студентов группы А.

Для этого есть два основных подхода:

3.1. Функция МАКСЕСЛИ (MAXIFS) в Excel 2019 и новее

Синтаксис:

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

Пример: найдём максимальную зарплату среди сотрудников отдела "Маркетинг" (столбец B2:B100 — зарплаты, C2:C100 — отделы):

=МАКСЕСЛИ(B2:B100; C2:C100; "Маркетинг")
  • 🎯 Можно задавать несколько условий (до 127 пар в новых версиях Excel)
  • 📌 Условия могут быть текстовыми, числовыми или логическими
  • ⚡ Быстрее, чем ДМАКС, так как не требует отдельного диапазона критериев

3.2. Функция ДМАКС (DMAX) для старых версий Excel

Если у вас Excel 2016 или старше, используйте ДМАКС из категории Базы данных. Ей нужно:

  1. Указать диапазон с данными (включая заголовки)
  2. Задать имя столбца, где ищем максимум (или его номер)
  3. Создать отдельный диапазон с критериями (обычно 2 строки: заголовок + значение)

Пример структуры:

A1: "Зарплата" | B1: "Отдел"

A2: 50000 | B2: "Маркетинг"

A3: 60000 | B3: "Продажи"

...

Критерий (например, в ячейках E1:F2):

E1: "Отдел" | F1: (пусто)

E2: "Маркетинг" | F2: (пусто)

Формула:

=ДМАКС(A1:B100; "Зарплата"; E1:F2)
📊 Какую функцию для условного максимума вы используете чаще?
МАКСЕСЛИ
ДМАКС
Другую (напишите в комментариях)
Не знаю таких функций

4. Максимум с несколькими условиями: комбинирование функций

Иногда МАКСЕСЛИ недостаточно — например, когда условия сложные или данные структурированы неудобно. В таких случаях поможет комбинация функций:

4.1. MAX + IF (массивная формула)

Для Excel 2019 и старше подойдёт такая конструкция:

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

Пример: максимальная продажа в Москве (B2:B100 — город) за январь (C2:C100 — месяц), где суммы в D2:D100:

=МАКС(ЕСЛИ((B2:B100="Москва")*(C2:C100="Январь"); D2:D100))
⚠️ Внимание: В старых версиях Excel (до 2019) эту формулу нужно вводить как массивную — нажать Ctrl+Shift+Enter. В новых версиях это не требуется.

4.2. MAX + FILTER (Excel 365 и 2021)

В самых свежих версиях появилась функция FILTER, которая упрощает работу:

=МАКС(ФИЛЬТР(диапазон_значений; (диапазон_условия1=условие1)*(диапазон_условия2=условие2)))

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

  • 🧩 Более читаемый синтаксис
  • 🚀 Быстрее обрабатывает большие массивы
  • 🔄 Легко модифицировать условия

Убедитесь, что все диапазоны одинакового размера|Проверьте, нет ли в данных ошибок (#ДЕЛ/0!, #ЗНАЧ!)|Для массивов в старом Excel не забудьте Ctrl+Shift+Enter|Тестируйте формулу на небольшом фрагменте данных-->

5. Альтернативные способы: фильтры, сводные таблицы и Power Query

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

5.1. Фильтр по цвету или значению

Если нужно визуально выделить максимумы:

  1. Выделите диапазон с данными
  2. Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек → Больше...
  3. Выберите "10 верхних элементов" и задайте количество "1"
  4. Задайте формат (например, зелёную заливку)

Теперь максимальное значение будет всегда подсвечено, даже если данные изменятся.

5.2. Сводная таблица

Идеально для анализа больших массивов:

  1. Выделите исходные данные (включая заголовки)
  2. Нажмите Вставка → Сводная таблица
  3. Перетащите поле с значениями в область "Значения"
  4. Нажмите на стрелочку рядом с полем → "Параметры значений" → "Максимум"

Преимущество: можно группировать данные по категориям и находить максимумы в каждой группе автоматически.

5.3. Power Query (для продвинутых пользователей)

Если данные импортируются из внешних источников, Power Query позволит:

  • 🔄 Автоматически очищать и трансформировать данные
  • 📊 Группировать записи и рассчитывать максимумы по группам
  • 🔄 Обновлять результаты одним кликом

Пример группировки в Power Query:

  1. Загрузите данные в Power Query (Данные → Получить данные)
  2. Выделите столбец для группировки (например, "Регион")
  3. Нажмите Трансформация → Группировка
  4. Выберите операцию "Максимум" для целевого столбца
Как обновить данные в Power Query?

После изменения исходных данных нажмите в Excel Данные → Обновить все или кликните правой кнопкой по таблице и выберите "Обновить". Все максимумы пересчитаются автоматически.

6. Распространённые ошибки и как их избежать

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

6.1. Пустые ячейки и нули

Функция МАКС игнорирует пустые ячейки, но если в данных есть нули, они будут учитываться. Это может привести к неверным выводам, если ноль — недопустимое значение (например, в данных о продажах).

Решение: используйте МАКСЕСЛИ с дополнительным условием:

=МАКСЕСЛИ(B2:B100; B2:B100; ">0")

6.2. Текстовые значения, маскирующиеся под числа

Если числа импортированы как текст (например, с апострофом: '100), МАКС их проигнорирует. Чтобы это исправить:

  • Выделите проблемный диапазон
  • Нажмите на восклицательный знак ! рядом с ячейкой → "Преобразовать в число"
  • Или используйте функцию ЗНАЧЕН: =МАКС(ЗНАЧЕН(B2:B100))

6.3. Ошибки в данных (#ДЕЛ/0!, #ЗНАЧ!)

Ошибки в ячейках ломают МАКС, но не МАКСА. Альтернативное решение — функция АГРЕГАТ:

=АГРЕГАТ(4; 6; B2:B100)

Где:

  • 4 — код операции "Максимум"
  • 6 — параметр "Игнорировать ошибки"

6.4. Динамические диапазоны и #ССЫЛКА!

Если диапазон в формуле меняется (например, при добавлении строк), может появиться ошибка #ССЫЛКА!. Решения:

  • Используйте структурированные ссылки (если данные в таблице Excel: =МАКС(Таблица1[Столбец1]))
  • Задавайте диапазоны с запасом: B2:B1000 вместо B2:B10
  • Применяйте ДВССЫЛ для динамических диапазонов (продвинутый метод)

7. Продвинутые техники: максимум с учётом дат, времени и других нюансов

Иногда требуется найти максимум не просто по числовому значению, а с учётом дополнительных параметров, таких как даты, время или приоритеты.

7.1. Максимум за последний месяц (динамический диапазон)

Допустим, у вас есть данные о продажах с датами в столбце A, а суммы — в B. Нужно найти максимальную продажу за последние 30 дней:

=МАКСЕСЛИ(B2:B100; A2:A100; ">="&СЕГОДНЯ()-30; A2:A100; "<="&СЕГОДНЯ())

Эта формула автоматически обновляется каждый день.

7.2. Максимум с учётом приоритета

Если у вас есть дополнительный столбец с приоритетами (например, C2:C100, где 1 — высокий приоритет, 2 — низкий), и нужно найти максимум только среди высокоприоритетных записей:

=МАКСЕСЛИ(B2:B100; C2:C100; 1)

7.3. Максимум по нескольким критериям с разными условиями

Например, максимальная зарплата среди мужчин (D2:D100="М") старше 30 лет (E2:E100>30):

=МАКСЕСЛИ(B2:B100; D2:D100; "М"; E2:E100; ">30")

7.4. Максимум с учётом времени (не только даты)

Если в данных есть время (например, 15:30:00), и нужно найти максимальное значение только для записей до полудня:

=МАКСЕСЛИ(B2:B100; A2:A100; "<12:00:00")

Где A2:A100 — столбец со временем.

8. Автоматизация: VBA-макрос для поиска максимума

Если вам часто приходится искать максимумы по сложным критериям, имеет смысл написать VBA-макрос. Например, этот код найдёт максимальное значение в выделенном диапазоне и выведет его в сообщении:

Sub FindMaxValue()

Dim rng As Range

Dim maxVal As Double

Set rng = Selection 'Выделенный диапазон

maxVal = Application.WorksheetFunction.Max(rng)

MsgBox "Максимальное значение: " & maxVal, vbInformation, "Результат"

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA
  2. Вставьте код в новый модуль (Insert → Module)
  3. Выделите диапазон в Excel и запустите макрос (F5 или через Вид → Макросы)

Для условного максимума можно модифицировать код:

Sub FindConditionalMax()

Dim rngValues As Range, rngCriteria As Range

Dim maxVal As Double

Dim criteria As String

Set rngValues = Range("B2:B100") 'Диапазон со значениями

Set rngCriteria = Range("C2:C100") 'Диапазон с условием

criteria = "Москва" 'Условие

maxVal = Application.WorksheetFunction.MaxIfs(rngValues, rngCriteria, criteria)

MsgBox "Максимум для " & criteria & ": " & maxVal, vbInformation

End Sub

⚠️ Внимание: Макросы работают только если в настройках Excel разрешено их выполнение (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов). В корпоративных сетях это может быть заблокировано администратором.

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

Как найти максимальное значение в строке, а не в столбце?

Используйте ту же функцию МАКС, но укажите диапазон по строке. Например, для строки 5 от ячейки B5 до Z5:

=МАКС(B5:Z5)

Если нужно найти максимум в каждой строке таблицы, протяните формулу вниз.

Почему функция МАКС возвращает 0, хотя в данных есть большие значения?

Скорее всего, в вашем диапазоне есть:

  • Ячейки с формулами, возвращающими 0 (например, =ЕСЛИ(A1="";0;B1))
  • Текстовые значения, которые Excel интерпретирует как 0 (например, пустые ячейки после операции)
  • Ошибки, которые маскируются под 0 (проверьте формат ячеек)

Решение: используйте МАКСЕСЛИ с условием ">0" или очистите данные от ненужных нулей.

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

Да, для этого есть функция НАИБОЛЬШИЙ (англ. LARGE):

=НАИБОЛЬШИЙ(B2:B100; 2)

Где 2 — порядковый номер по убыванию (1 — максимум, 2 — второе место и т.д.).

Как найти максимум в отфильтрованном диапазоне?

Если данные отфильтрованы (через Данные → Фильтр), стандартная функция МАКС проигнорирует скрытые строки. Чтобы учитывать все данные, используйте:

=АГРЕГАТ(4; 5; B2:B100)

Где 5 — параметр "Игнорировать скрытые строки".

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

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

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