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

Вы когда-нибудь сталкивались с ситуацией, когда нужно посчитать среднюю зарплату только для сотрудников отдела маркетинга? Или средний чек покупателей старше 30 лет? Стандартная функция СРЗНАЧ в Microsoft Excel здесь не поможет — она считает среднее по всем данным без разбора. А вот условное среднее позволяет учитывать только те значения, которые соответствуют заданным критериям.

В этой статье мы разберём 5 способов расчёта среднего с условием — от базовых функций СРЗНАЧЕСЛИ до продвинутых массивов и Power Query. Вы узнаете, как работать с одним и несколькими условиями, обрабатывать ошибки в данных и автоматизировать расчёты для больших таблиц. Каждый метод проиллюстрирован практическими примерами с формулами, которые можно скопировать и адаптировать под свои задачи.

1. Базовый метод: функция СРЗНАЧЕСЛИ для одного условия

Функция СРЗНАЧЕСЛИ (англ. AVERAGEIF) — самый простой способ посчитать среднее значение с одним условием. Она проверяет каждый элемент в диапазоне и включает его в расчёт только если условие выполняется.

Синтаксис функции:

=СРЗНАЧЕСЛИ(диапазон_условия; условие; [диапазон_среднего])

Где:

  • 📌 диапазон_условия — столбец или строка, где Excel будет проверять условие (например, названия отделов).
  • 🔍 условие — критерий отбора (может быть числом, текстом или логическим выражением, например ">20" или "Маркетинг").
  • 📊 диапазон_среднего (необязательно) — если не указан, функция берёт значения из диапазон_условия.

Пример: рассчитаем среднюю зарплату сотрудников отдела "Продажи" (данные в таблице ниже).

ИмяОтделЗарплата, ₽
ИвановПродажи50 000
ПетроваМаркетинг60 000
СидоровПродажи55 000
КузнецоваIT80 000

Формула:

=СРЗНАЧЕСЛИ(B2:B5; "Продажи"; C2:C5)

Результат: 52 500 ₽ (среднее по двум сотрудникам отдела "Продажи").

2. Несколько условий: функция СРЗНАЧЕСЛИМН

Когда нужно учитывать два или более условий, на помощь приходит СРЗНАЧЕСЛИМН (англ. AVERAGEIFS). В отличие от СРЗНАЧЕСЛИ, она позволяет задавать критерии для нескольких диапазонов одновременно.

Синтаксис:

=СРЗНАЧЕСЛИМН(диапазон_среднего; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)

Пример: найдём среднюю зарплату сотрудников отдела "Маркетинг", которые работают больше 3 лет (добавим столбец "Стаж").

ИмяОтделСтаж, летЗарплата, ₽
ИвановПродажи250 000
ПетроваМаркетинг460 000
СидоровПродажи555 000
КузнецоваМаркетинг180 000

Формула:

=СРЗНАЧЕСЛИМН(D2:D5; B2:B5; "Маркетинг"; C2:C5; ">3")

Результат: 60 000 ₽ (только Петрова подходит под оба условия).

⚠️ Внимание: В СРЗНАЧЕСЛИМН первым аргументом всегда идёт диапазон_среднего, а не диапазон условия. Это частая ошибка новичков!

3. Продвинутый подход: формулы массива для сложных условий

Если вам нужно посчитать среднее с динамическими условиями (например, по списку значений из другой таблицы) или применить логические операции (И/ИЛИ), на помощь придут формулы массива. Они позволяют обрабатывать данные более гибко, чем стандартные функции.

Пример 1: среднее значение для нескольких отделов (например, "Продажи" или "Маркетинг"). Используем функцию СРЗНАЧ с условием внутри массива:

=СРЗНАЧ(ЕСЛИ((B2:B5="Продажи")+(B2:B5="Маркетинг"); C2:C5))

Не забудьте нажать Ctrl+Shift+Enter (в старых версиях Excel) или просто Enter (в Excel 365).

Пример 2: среднее для значений, которые больше среднего по всему диапазону (рекурсивное условие):

=СРЗНАЧ(ЕСЛИ(C2:C5>СРЗНАЧ(C2:C5); C2:C5))
Как работает формула массива?

Формула ЕСЛИ создаёт временный массив из ИСТИНА/ЛОЖЬ, где ИСТИНА соответствует ячейкам, удовлетворяющим условию. Функция СРЗНАЧ игнорирует ЛОЖЬ и считает среднее только по ИСТИНА.

Формулы массива могут значительно замедлить работу Excel при больших объёмах данных (10 000+ строк). В таких случаях лучше использовать Power Query или сводные таблицы.

📊 Какой метод условного среднего вы используете чаще?
СРЗНАЧЕСЛИ
СРЗНАЧЕСЛИМН
Формулы массива
Power Query
Не знаю, что это

4. Обработка ошибок и пустых ячеек

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

Способы решения:

  • 🛡️ Исключить ошибки: используйте ЕОШИБКА в формуле массива:
    =СРЗНАЧ(ЕСЛИ(НЕ(ЕОШИБКА(C2:C5)); C2:C5))
  • 🗑️ Игнорировать пустые ячейки: добавьте условие C2:C5<>"".
  • 🔄 Заменить ошибки на 0: оберните диапазон в ЕСЛИОШИБКА:
    =СРЗНАЧ(ЕСЛИОШИБКА(C2:C5; 0))

Пример: рассчитаем среднюю зарплату, исключив пустые ячейки и ошибки (допустим, в ячейке C4 ошибка #ДЕЛ/0!):

=СРЗНАЧ(ЕСЛИ((C2:C5<>""); ЕСЛИОШИБКА(C2:C5; 0); C2:C5))
⚠️ Внимание: Если в диапазоне есть текстовые значения (например, "Нет данных"), Excel автоматически проигнорирует их в СРЗНАЧЕСЛИ. Но в формулах массива текст может вызвать ошибку — используйте ЕЧИСЛО для проверки:
=СРЗНАЧ(ЕСЛИ(ЕЧИСЛО(C2:C5); C2:C5))

5. Автоматизация с Power Query

Для больших таблиц (100 000+ строк) или регулярных отчётов удобнее использовать Power Query — инструмент для преобразования и анализа данных. Он позволяет:

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

Пошаговая инструкция:

  1. Выделите исходную таблицу и перейдите на вкладку Данные → Из таблицы/диапазона (в Excel 2016+).
  2. В редакторе Power Query отфильтруйте данные по нужным условиям (например, Отдел = "Продажи").
  3. Добавьте шаг группировки: Преобразовать → Группировка, выберите столбец для группировки (например, "Отдел") и операцию Среднее для столбца "Зарплата".
  4. Нажмите Закрыть и загрузить — результат появится на новом листе.

Убедиться, что таблица имеет заголовки|Проверить отсутствие объединённых ячеек|Удалить пустые строки/столбцы|Преобразовать данные в таблицу Excel (Ctrl+T)

-->

Power Query особенно полезен, если данные импортируются из внешних источников (например, SQL, CSV или JSON). В отличие от формул, он не пересчитывает всё с нуля при каждом изменении файла, что экономит ресурсы.

6. Альтернативные методы: сводные таблицы и VBA

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

Как посчитать условное среднее через сводную таблицу:

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

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

Function CustomAverage(rng As Range, condition As String) As Double

Dim cell As Range

Dim sum As Double, count As Integer

For Each cell In rng

If cell.Offset(0, -1).Value = condition Then

sum = sum + cell.Value

count = count + 1

End If

Next cell

CustomAverage = sum / count

End Function

Использование: =CustomAverage(C2:C5; "Продажи") (предполагается, что условия в столбце B).

FAQ: Частые вопросы по условному среднему

Можно ли использовать подстановочные знаки (* и ?) в условиях?

Да! В функциях СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН можно применять:

  • "М*" — все значения, начинающиеся на "М" (например, "Маркетинг").
  • "*инг" — все значения, заканчивающиеся на "инг".
  • "??? " — все значения из 3 символов.

Пример: =СРЗНАЧЕСЛИ(B2:B5; "М*"; C2:C5) — среднее для всех отделов, названия которых начинаются на "М".

Как посчитать среднее по датам (например, за последний месяц)?

Используйте СРЗНАЧЕСЛИМН с условиями по дате. Пример для расчёта среднего за апрель 2026:

=СРЗНАЧЕСЛИМН(C2:C100; A2:A100; ">="&ДАТА(2026;4;1); A2:A100; "<="&ДАТА(2026;4;30))

Где A2:A100 — столбец с датами, C2:C100 — столбец со значениями.

Почему функция возвращает ошибку #ДЕЛ/0?

Ошибка #ДЕЛ/0! означает, что ни одна ячейка не удовлетворила условию (например, вы ищете среднее для несуществующего отдела). Решения:

  • Проверьте правильность написания условия (регистр не важен, но опечатки — да).
  • Используйте ЕСЛИОШИБКА для замены ошибки на 0 или текст:
    =ЕСЛИОШИБКА(СРЗНАЧЕСЛИ(B2:B5; "Бухгалтерия"; C2:C5); "Нет данных")
Как посчитать среднее по цвету ячейки?

Стандартными функциями это невозможно. Варианты:

  • 🎨 Фильтр по цвету: отфильтруйте данные по цвету (меню Данные → Фильтр → Фильтр по цвету), затем используйте СРЗНАЧ для видимых ячеек.
  • 🤖 VBA: напишите макрос, который проверяет цвет фона ячейки (Interior.Color).
  • 📊 Условное форматирование + столбец-помощник: добавьте столбец с формулой, которая присваивает метку (например, "Красный") на основе цвета, затем используйте СРЗНАЧЕСЛИ.
Есть ли разница между СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН для одного условия?

Да! СРЗНАЧЕСЛИ игнорирует пустые ячейки в диапазоне_условия, а СРЗНАЧЕСЛИМН — нет. Пример:

A (Отдел)B (Зарплата)
Продажи50 000
60 000
Продажи70 000

Формулы:

=СРЗНАЧЕСЛИ(A2:A4; "Продажи"; B2:B4)  → 60 000 (считает по 2 ячейкам)

=СРЗНАЧЕСЛИМН(B2:B4; A2:A4; "Продажи") → 55 000 (учитывает пустую ячейку в A3 как несоответствие)