Вы когда-нибудь сталкивались с ситуацией, когда нужно посчитать среднюю зарплату только для сотрудников отдела маркетинга? Или средний чек покупателей старше 30 лет? Стандартная функция СРЗНАЧ в Microsoft Excel здесь не поможет — она считает среднее по всем данным без разбора. А вот условное среднее позволяет учитывать только те значения, которые соответствуют заданным критериям.
В этой статье мы разберём 5 способов расчёта среднего с условием — от базовых функций СРЗНАЧЕСЛИ до продвинутых массивов и Power Query. Вы узнаете, как работать с одним и несколькими условиями, обрабатывать ошибки в данных и автоматизировать расчёты для больших таблиц. Каждый метод проиллюстрирован практическими примерами с формулами, которые можно скопировать и адаптировать под свои задачи.
1. Базовый метод: функция СРЗНАЧЕСЛИ для одного условия
Функция СРЗНАЧЕСЛИ (англ. AVERAGEIF) — самый простой способ посчитать среднее значение с одним условием. Она проверяет каждый элемент в диапазоне и включает его в расчёт только если условие выполняется.
Синтаксис функции:
=СРЗНАЧЕСЛИ(диапазон_условия; условие; [диапазон_среднего])
Где:
- 📌 диапазон_условия — столбец или строка, где Excel будет проверять условие (например, названия отделов).
- 🔍 условие — критерий отбора (может быть числом, текстом или логическим выражением, например
">20"или"Маркетинг"). - 📊 диапазон_среднего (необязательно) — если не указан, функция берёт значения из
диапазон_условия.
Пример: рассчитаем среднюю зарплату сотрудников отдела "Продажи" (данные в таблице ниже).
| Имя | Отдел | Зарплата, ₽ |
|---|---|---|
| Иванов | Продажи | 50 000 |
| Петрова | Маркетинг | 60 000 |
| Сидоров | Продажи | 55 000 |
| Кузнецова | IT | 80 000 |
Формула:
=СРЗНАЧЕСЛИ(B2:B5; "Продажи"; C2:C5)
Результат: 52 500 ₽ (среднее по двум сотрудникам отдела "Продажи").
2. Несколько условий: функция СРЗНАЧЕСЛИМН
Когда нужно учитывать два или более условий, на помощь приходит СРЗНАЧЕСЛИМН (англ. AVERAGEIFS). В отличие от СРЗНАЧЕСЛИ, она позволяет задавать критерии для нескольких диапазонов одновременно.
Синтаксис:
=СРЗНАЧЕСЛИМН(диапазон_среднего; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)
Пример: найдём среднюю зарплату сотрудников отдела "Маркетинг", которые работают больше 3 лет (добавим столбец "Стаж").
| Имя | Отдел | Стаж, лет | Зарплата, ₽ |
|---|---|---|---|
| Иванов | Продажи | 2 | 50 000 |
| Петрова | Маркетинг | 4 | 60 000 |
| Сидоров | Продажи | 5 | 55 000 |
| Кузнецова | Маркетинг | 1 | 80 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 или сводные таблицы.
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 — инструмент для преобразования и анализа данных. Он позволяет:
- 🔄 Фильтровать данные по нескольким условиям без формул.
- 📊 Группировать данные и рассчитывать средние по категориям.
- 🔄 Автоматически обновлять результаты при изменении исходных данных.
Пошаговая инструкция:
- Выделите исходную таблицу и перейдите на вкладку
Данные → Из таблицы/диапазона(в Excel 2016+). - В редакторе Power Query отфильтруйте данные по нужным условиям (например,
Отдел = "Продажи"). - Добавьте шаг группировки:
Преобразовать → Группировка, выберите столбец для группировки (например, "Отдел") и операциюСреднеедля столбца "Зарплата". - Нажмите
Закрыть и загрузить— результат появится на новом листе.
Убедиться, что таблица имеет заголовки|Проверить отсутствие объединённых ячеек|Удалить пустые строки/столбцы|Преобразовать данные в таблицу Excel (Ctrl+T)
-->
Power Query особенно полезен, если данные импортируются из внешних источников (например, SQL, CSV или JSON). В отличие от формул, он не пересчитывает всё с нуля при каждом изменении файла, что экономит ресурсы.
6. Альтернативные методы: сводные таблицы и VBA
Если формулы и Power Query кажутся сложными, попробуйте сводные таблицы — они визуально интуитивны и не требуют знания функций.
Как посчитать условное среднее через сводную таблицу:
- Выделите исходные данные и нажмите
Вставка → Сводная таблица. - Перетащите поле с категориями (например, "Отдел") в область
Строки. - Перетащите поле со значениями (например, "Зарплата") в область
Значения. - Щёлкните по полю в области
Значения→Параметры полей значений → Среднее.
Для автоматизации рутинных расчётов можно написать макрос на 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 как несоответствие)