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

Чтобы определить, сколько раз в массиве данных встречается температура, равная максимальному значению, в Excel требуется комбинация функций для поиска максимума и подсчёта его вхождений. Типичная ошибка новичков — попытка использовать COUNTIF с жёстко прописанным значением (например, =COUNTIF(A2:A100; 35)), что некорректно, так как максимальная температура может меняться. Правильный подход подразумевает динамическое определение максимума с помощью MAX или MAXIFS (для условных диапазонов), а затем подсчёт его повторений.

Рассмотрим практический пример: у вас есть столбец B2:B500 с ежедневными показаниями температуры за год. Задача — узнать, сколько дней температура достигала своего годового максимума. Решение зависит от структуры данных: если значения уникальны, достаточно COUNTIF с вложенной MAX, но при наличии повторяющихся максимумов потребуются массивы или SUMPRODUCT. Ниже разберём все варианты, включая обработку ошибок и оптимизацию для больших массивов.

1. Базовая формула с COUNTIF и MAX

Самый простой способ — соединить COUNTIF (подсчёт условий) и MAX (поиск максимума) в одной формуле:

=COUNTIF(B2:B500; MAX(B2:B500))

Эта формула сначала находит максимальное значение в диапазоне B2:B500, затем подсчитывает, сколько раз оно встречается. Ограничение: работает только для числовых данных без текстовых или пустых ячеек. Если в диапазоне есть ошибки (#N/A), формула вернёт #VALUE!.

  • ✅ Подходит для небольших диапазонов (до 10 000 строк).
  • ✅ Простота и наглядность.
  • ❌ Не учитывает дополнительные условия (например, максимум по месяцам).
  • ❌ Ломается при наличии нечисловых данных.

2. Подсчёт максимумов с учётом дополнительных условий (MAXIFS + COUNTIFS)

Если нужно посчитать повторения максимальной температуры в рамках конкретного периода (например, только за июль), используйте комбинацию MAXIFS и COUNTIFS. Предположим, в столбце A указаны даты, а в B — температуры:

=COUNTIFS(B2:B500; MAXIFS(B2:B500; A2:A500; ">="&DATE(2023;7;1); A2:A500; "<="&DATE(2023;7;31)))

Здесь:

  1. MAXIFS находит максимум температуры за июль 2023 года.
  2. COUNTIFS подсчитывает, сколько раз это значение встречается в том же периоде.
⚠️ Внимание: Функция MAXIFS доступна только в Excel 2019 и новее. Для старых версий используйте формулу массива (см. раздел 4).
ФункцияСинтаксисПримерПоддержка старых версий
MAX=MAX(диапазон)=MAX(B2:B500)Да
MAXIFS=MAXIFS(диапазон_значений; диапазон_условий; условие)=MAXIFS(B2:B500; A2:A500; ">10")Нет (Excel 2019+)
COUNTIF=COUNTIF(диапазон; критерий)=COUNTIF(B2:B500; 35)Да
COUNTIFS=COUNTIFS(диапазон1; условие1; ...)=COUNTIFS(B2:B500; ">30"; A2:A500; "<>""Да

3. Обработка ошибок и нечисловых данных

В реальных данных часто встречаются:

  • 🔹 Пустые ячейки ("").
  • 🔹 Текстовые значения (например, "Н/Д").
  • 🔹 Ошибки (#N/A, #VALUE!).

Чтобы формула работала корректно, добавьте фильтрацию через IF или ISNUMBER:

=COUNTIFS(B2:B500; MAX(IF(ISNUMBER(B2:B500); B2:B500)); B2:B500; "<>"&"")

Эта формула массива:

  1. Проверяет, является ли значение числом (ISNUMBER).
  2. Игнорирует пустые ячейки (<>"").
  3. Подсчитывает только числовые максимумы.
📊 Как часто вы работаете с большими массивами данных в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

4. Формула массива для старых версий Excel

В Excel 2016 и старше нет MAXIFS, но ту же логику можно реализовать через формулу массива (вводится нажатием Ctrl+Shift+Enter):

=SUMPRODUCT(--(B2:B500=MAX(B2:B500)))

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

  1. B2:B500=MAX(B2:B500) возвращает массив ИСТИНА/ЛОЖЬ.
  2. -- преобразует ИСТИНА в 1, ЛОЖЬ — в 0.
  3. SUMPRODUCT суммирует единицы, давая количество повторений.

Преимущество: работает во всех версиях Excel, включая 2010. Недостаток: может тормозить на диапазонах свыше 100 000 строк.

Почему SUMPRODUCT лучше COUNTIF для больших данных?

Функция SUMPRODUCT обрабатывает массивы в памяти, не перебирая каждую ячейку отдельно. Это ускоряет вычисления на 15–30% при работе с диапазонами свыше 50 000 строк. Однако для простых задач разница незаметна, а синтаксис SUMPRODUCT сложнее для новичков.

5. Подсчёт максимумов по группам (сводные таблицы vs. формулы)

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

Вариант 1: Формула с критериями

Предположим, в столбце A — названия городов, в B — температуры. Чтобы посчитать повторения максимума для Москвы:

=SUMPRODUCT(--(A2:A500="Москва"); --(B2:B500=MAXIFS(B2:B500; A2:A500; "Москва")))

Вариант 2: Сводная таблица

  1. Выделите диапазон A1:B500.
  2. Нажмите Вставка → Сводная таблица.
  3. Поместите Город в строки, а Температура — в значения (опция Максимум).
  4. Добавьте ещё одно поле Температура в значения с опцией Количество и фильтром по максимуму.
⚠️ Внимание: Сводные таблицы автоматически обновляются при изменении данных, но не подходят для динамических отчётов, где требуется формула в ячейке.

6. Оптимизация для больших массивов (100 000+ строк)

При работе с метеоданными за десятилетия (например, 36 500 строк по дням) стандартные формулы тормозят. Решения:

  • 📊 Power Query: импортируйте данные и группируйте по максимумам без формул.
  • 🔄 VBA: напишите макрос для подсчёта (пример ниже).
  • Формулы с ограничением диапазона: вместо B2:B50000 используйте именованные диапазоны.

Пример кода VBA для подсчёта максимумов:

Function CountMax(rng As Range) As Long

Dim maxVal As Double

Dim cell As Range

maxVal = Application.WorksheetFunction.Max(rng)

For Each cell In rng

If cell.Value = maxVal Then CountMax = CountMax + 1

Next cell

End Function

Используйте в ячейке как =CountMax(B2:B50000). Работает в 10–50 раз быстрее COUNTIF на больших данных.

1. Убедитесь, что в диапазоне нет текстовых значений|2. Проверьте наличие скрытых символов (например, пробелов перед числами)|3. Для условного подсчёта используйте MAXIFS/COUNTIFS|4. Тестируйте формулу на небольшом фрагменте данных (10–20 строк)

-->

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

Ошибка 1: Формула возвращает 0 при явном наличии максимумов.

Причина: в данных есть невидимые символы (например, 35° вместо 35). Решение — очистите данные через ТРИМ или ЗАМЕНИТЬ:

=COUNTIF(B2:B500; TRIM(MAX(B2:B500)))

Ошибка 2: #VALUE! при использовании COUNTIFS с несколькими условиями.

Причина: несовпадение размеров диапазонов. Например, =COUNTIFS(B2:B100; ">30"; A2:A99; "Июль") вернёт ошибку, так как диапазоны разной длины.

Ошибка 3: Формула массива не работает после копирования.

Причина: забыли ввести её как формулу массива (Ctrl+Shift+Enter). В новых версиях Excel (365) это не требуется, но в 2016 и старше обязательно.

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

Можно ли посчитать повторения максимума без формул?

Да, через условное форматирование:

  1. Выделите диапазон с температурами.
  2. Нажмите Главная → Условное форматирование → Правила выделения ячеек → Больше.
  3. Введите значение =MAX($B$2:$B$500) и задайте цвет.
  4. Вручную посчитайте количество выделенных ячеек.

Минус метода: не автоматизируется и не обновляется динамически.

Почему MAXIFS не работает в моём Excel?

MAXIFS появилась только в Excel 2019. Для старых версий используйте:

=MAX(IF(условие1; диапазон_значений; ""))

Введите как формулу массива (Ctrl+Shift+Enter).

Как посчитать максимумы по неделим?

Добавьте столбец с номером недели (=WEEKNUM(A2), где A2 — дата), затем используйте MAXIFS с группировкой по этому столбцу:

=COUNTIFS(B2:B500; MAXIFS(B2:B500; C2:C500; 10); C2:C500; 10)

Здесь C2:C500 — столбец с номерами недель.

Можно ли использовать эту логику для минимумов?

Да, замените MAX на MIN, а MAXIFS — на MINIFS. Например:

=COUNTIF(B2:B500; MIN(B2:B500))
Как автоматизировать подсчёт для нового файла каждый месяц?

Создайте шаблон:

  1. Запишите формулу в отдельной ячейке (например, D1).
  2. Сохраните файл как .xltx (шаблон Excel).
  3. Каждый месяц открывайте шаблон и импортируйте новые данные.

Для полной автоматизации используйте Power Query или VBA.