Работа с данными в Microsoft Excel часто требует вычисления средних значений — будь то анализ продаж, оценка успеваемости или финансовый отчёт. На первый взгляд задача кажется элементарной: взять сумму чисел и разделить на их количество. Но даже здесь кроются нюансы: как исключить пустые ячейки? Как посчитать среднее только по определённым критериям? И почему иногда Excel выдаёт ошибку #ДЕЛ/0! вместо ожидаемого результата?
В этой статье разберём все способы расчёта среднего — от простейшей функции AVERAGE до сложных формул с условиями, а также типичные ошибки и лайфхаки для ускорения работы. Вы узнаете, как правильно применять функции в разных версиях Excel (включая Excel 365 и Excel 2019), и почему иногда лучше использовать СРЗНАЧ вместо ручных вычислений.
Для начинающих пользователей мы подготовили пошаговые инструкции с картинками, а для продвинутых — примеры с вложенными функциями и динамическими массивами. Независимо от вашего уровня, после прочтения вы сможете уверенно работать со средними значениями в любых таблицах.
1. Базовый способ: функция СРЗНАЧ (AVERAGE)
Функция СРЗНАЧ (или AVERAGE в английской версии) — самый простой и универсальный инструмент для расчёта среднего арифметического. Она автоматически игнорирует пустые ячейки и текстовые значения, что избавляет от необходимости предварительной очистки данных.
Синтаксис функции:
=СРЗНАЧ(число1; [число2]; ...)
Где число1, число2 и т.д. — это либо отдельные числа, либо диапазоны ячеек. Например, для расчёта среднего значения в столбце B2:B10 формула будет выглядеть так:
=СРЗНАЧ(B2:B10)
🔹 Пример на практике:
Допустим, у вас есть таблица с продажами за неделю. Чтобы узнать средний дневной доход, достаточно выделить ячейку для результата и ввести формулу. Excel мгновенно пересчитает значение, если данные в исходном диапазоне изменятся.
⚠️ Внимание:
Если в выбранном диапазоне нет ни одного числового значения, Excel вернёт ошибку #ДЕЛ/0!. Это не баг, а особенность функции: делить на ноль невозможно. Чтобы избежать такой ситуации, проверьте данные на наличие чисел или используйте функцию ЕСЛИОШИБКА.
2. Расчёт среднего с условиями: СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН
Часто требуется посчитать среднее не по всем данным, а только по тем, которые соответствуют определённым критериям. Например, средняя зарплата сотрудников отдела маркетинга или средняя температура по дням, когда она превышала 20°C. Для этого в Excel есть две функции:
📌 СРЗНАЧЕСЛИ (AVERAGEIF) — учитывает одно условие.
Синтаксис:
=СРЗНАЧЕСЛИ(диапазон_условия; условие; [диапазон_среднего])
📌 СРЗНАЧЕСЛИМН (AVERAGEIFS) — учитывает несколько условий.
Синтаксис:
=СРЗНАЧЕСЛИМН(диапазон_среднего; диапазон_условия1; условие1; ...)
🔹 Пример с СРЗНАЧЕСЛИ:
Допустим, у вас есть таблица с оценками студентов по предметам. Чтобы посчитать средний балл только по математике (предмет указан в столбце A, оценки — в столбце B), используйте:
=СРЗНАЧЕСЛИ(A2:A10; "Математика"; B2:B10)
🔹 Пример с СРЗНАЧЕСЛИМН:
Если нужно посчитать средний балл по математике только для 10 класса (класс указан в столбце C), формула будет такой:
=СРЗНАЧЕСЛИМН(B2:B10; A2:A10; "Математика"; C2:C10; "10")
Убедитесь, что диапазоны условия и среднего совпадают по размеру
Проверьте регистр текста в условиях (Excel чувствителен к "Математика" vs "математика")
Исключите пустые ячейки в диапазоне условий, если они не должны учитываться-->
⚠️ Внимание:
Если в диапазоне условий есть пустые ячейки, функция СРЗНАЧЕСЛИ будет их игнорировать, а СРЗНАЧЕСЛИМН — нет. Это может привести к неожиданным результатам. Например, если в столбце с классами есть пустые строки, они будут восприняты как "0", и среднее посчитается неверно.
3. Среднее по фильтру: ДСРЗНАЧ (SUBTOTAL)
Когда вы применяете фильтр к таблице, функции СРЗНАЧ или СРЗНАЧЕСЛИ будут считать среднее по всем данным, а не только по видимым строкам. Чтобы посчитать среднее только по отфильтрованным записям, используйте функцию ДСРЗНАЧ (или SUBTOTAL).
Синтаксис:
=ДСРЗНАЧ(номер_функции; диапазон)
Где номер_функции для среднего — это 1 (или 101, если нужно игнорировать скрытые вручную строки).
🔹 Пример:
Предположим, у вас отфильтрованы продажи за июнь 2023 года. Чтобы посчитать среднюю сумму сделки только по этим данным, введите:
=ДСРЗНАЧ(1; B2:B100)
📊 Сравнение с обычным СРЗНАЧ:
| Функция | Учитывает скрытые строки | Учитывает отфильтрованные строки | Игнорирует текст |
|---|---|---|---|
СРЗНАЧ |
Да | Да | Да |
ДСРЗНАЧ(1) |
Нет | Только видимые | Да |
ДСРЗНАЧ(101) |
Нет | Только видимые | Да |
⚠️ Внимание:
Если вы используете ДСРЗНАЧ в таблице с промежуточными итогами, убедитесь, что функция находится вне диапазона группировки. Иначе результат может быть искажён из-за двойного учёта данных.
СРЗНАЧ (AVERAGE)
СРЗНАЧЕСЛИ (AVERAGEIF)
СРЗНАЧЕСЛИМН (AVERAGEIFS)
ДСРЗНАЧ (SUBTOTAL)
Другой вариант-->
4. Продвинутые приёмы: среднее по динамическим диапазонам
В современных версиях Excel (начиная с Excel 365 и Excel 2021) появились динамические массивы, которые позволяют гибко работать с изменяющимися диапазонами. Например, вы можете посчитать среднее по последним 5 записям или по данным, которые соответствуют сложным критериям.
🔹 Пример 1: Среднее по последним N строкам
Допустим, у вас есть столбец с ежедневными продажами, и вы хотите посчитать среднее за последние 7 дней. Используйте комбинацию функций СРЗНАЧ и ИНДЕКС:
=СРЗНАЧ(ИНДЕКС(B2:B100; ПОСЛЕДНИЕ(7; СТРОКА(B2:B100)-СТРОКА(B2)+1)))
🔹 Пример 2: Среднее с несколькими условиями (альтернатива СРЗНАЧЕСЛИМН)
Если вам нужно посчитать среднее по двум и более условиям, но СРЗНАЧЕСЛИМН кажется неудобной, используйте ФИЛЬТР:
=СРЗНАЧ(ФИЛЬТР(B2:B100; (A2:A100="Математика")*(C2:C100="10 класс")))
Важно: функции ФИЛЬТР, ПОСЛЕДНИЕ и ИНДЕКС в динамических массивах работают только в Excel 365 и Excel 2021. В более старых версиях (Excel 2019 и ниже) они вернут ошибку #ИМЯ?.
⚠️ Внимание:
При работе с динамическими массивами избегайте ссылок на целые столбцы (например, B:B). Это может замедлить работу книги, особенно если данных много. Всегда указывайте конкретный диапазон (например, B2:B1000).
5. Типичные ошибки и как их исправить
Даже опытные пользователи Excel иногда сталкиваются с ошибками при расчёте среднего. Разберём самые распространённые случаи и способы их решения.
🔴 Ошибка #ДЕЛ/0!
Причина: В выбранном диапазоне нет числовых значений, или все ячейки пустые/содержат текст.
Решение:
- 🔍 Проверьте диапазон на наличие чисел с помощью функции
=СЧЁТ(B2:B10). - 📊 Используйте
ЕСЛИОШИБКАдля вывода альтернативного текста:=ЕСЛИОШИБКА(СРЗНАЧ(B2:B10); "Нет данных")
🔴 Ошибка #ЗНАЧ!
Причина: В диапазоне условий для СРЗНАЧЕСЛИМН указаны несовпадающие по размеру массивы.
Решение: Убедитесь, что все диапазоны имеют одинаковое количество строк и столбцов.
🔴 Неверный результат (слишком высокое/низкое значение)
Причины и решения:
- 📉 В данных есть выбросы (например, опечатка "1000" вместо "100"). Используйте
=СРЗНАЧЕСЛИМНс ограничением по максимуму:=СРЗНАЧЕСЛИМН(B2:B10; B2:B10; "<1000") - 🔢 В диапазоне есть скрытые строки с данными. Примените
ДСРЗНАЧ(101)вместоСРЗНАЧ. - 📌 Учтён нулевой столбец (например, пустые ячейки посчитаны как 0). Используйте
=СРЗНАЧЕСЛИ(B2:B10; ">0").
Почему среднее в Excel не совпадает с ручным расчётом?
Чаще всего это происходит из-за:
1. Скрытых символов в ячейках (пробелы, неразрывные пробелы, переносы строк). Используйте =ПЕЧСИМВ(B2), чтобы их обнаружить.
2. Разного формата чисел (например, "100" как текст vs 100 как число). Проверьте формат ячеек через Формат ячеек → Числовой.
3. Округления. Excel хранит 15 знаков после запятой, а отображает только те, что указаны в формате. Попробуйте увеличить количество десятичных знаков в ячейке с результатом.
6. Альтернативные методы: Power Query и сводные таблицы
Если вам нужно посчитать среднее по большим объёмам данных или с сложной логикой, стандартные функции Excel могут быть неудобны. В таких случаях на помощь приходят Power Query и сводные таблицы.
🔹 Сводные таблицы
Сводная таблица позволяет рассчитать среднее за несколько кликов:
- Выделите исходные данные (включая заголовки).
- Перейдите на вкладку
Вставка → Сводная таблица. - В поле
Значенияперетащите столбец, по которому нужно посчитать среднее. - Нажмите на стрелку рядом с
Сумма по...и выберитеСреднее.
🔹 Power Query
Инструмент Power Query (доступен в Excel 2016 и новее) позволяет трансформировать данные и рассчитывать средние с учётом сложных фильтров. Например, вы можете:
- 📂 Импортировать данные из нескольких файлов.
- 🔍 Отфильтровать строки по нескольким критериям.
- 📊 Группировать данные и рассчитывать среднее по группам.
Пример группировки в Power Query:
- Выделите данные и нажмите
Данные → Из таблицы/диапазона. - В открывшемся редакторе выберите столбец для группировки (например, "Категория").
- Нажмите
Трансформация → Группировка. - Укажите столбец для расчёта среднего и выберите операцию
Среднее.
⚠️ Внимание:
При использовании Power Query помните, что изменения в исходных данных не обновляются автоматически. Чтобы обновить результаты, нажмите Данные → Обновить все.
7. Автоматизация: макросы для расчёта среднего
Если вам регулярно приходится считать средние по одним и тем же критериям, имеет смысл автоматизировать процесс с помощью макросов VBA. Например, можно создать кнопку, которая будет рассчитывать среднее по выделенному диапазону и вставлять результат в указанную ячейку.
🔹 Пример макроса для расчёта среднего:
Sub CalculateAverage()
Dim rng As Range
Dim avg As Double
On Error Resume Next
Set rng = Application.Selection
If Not rng Is Nothing Then
avg = Application.WorksheetFunction.Average(rng)
MsgBox "Среднее значение: " & avg, vbInformation
End If
End Sub
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Назначьте макрос на кнопку или сочетание клавиш.
⚠️ Внимание:
Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). Если вы сохраните файл как .xlsx, код VBA будет утерян.
🔧 Продвинутый вариант:
Вы можете модифицировать макрос, чтобы он автоматически вставлял результат в определённую ячейку (например, D1):
Range("D1").Value = Application.WorksheetFunction.Average(Selection)
FAQ: Частые вопросы о расчёте среднего в Excel
Можно ли посчитать среднее по цвету ячеек?
Стандартными функциями — нет. Но можно использовать пользовательскую функцию VBA или надстройку Excel VBA UDF. Например, этот код посчитает среднее по ячейкам зелёного цвета:
Function AverageByColor(rng As Range, color As Range) As Double
Dim cell As Range, total As Double, count As Long
For Each cell In rng
If cell.Interior.Color = color.Interior.Color Then
total = total + cell.Value
count = count + 1
End If
Next cell
If count > 0 Then AverageByColor = total / count
End Function
Вызов: =AverageByColor(A1:A10; B1), где B1 — ячейка с образцом цвета.
Как посчитать среднее гармоническое или геометрическое?
Excel не имеет встроенных функций для этих типов средних, но их можно рассчитать вручную:
- 🔹 Среднее гармоническое (для скоростей, плотностей):
=СЧЁТ(A2:A10)/СУММ(1/A2:1/A10) - 🔹 Среднее геометрическое (для процентов, коэффициентов):
=СТЕПЕНЬ(ПРОИЗВЕД(A2:A10); 1/СЧЁТ(A2:A10))
Почему СРЗНАЧ и СРГЕОМ не совпадают?
Потому что это разные типы средних:
- 📌
СРЗНАЧ— арифметическое среднее (сумма делится на количество). - 📌
СРГЕОМ— геометрическое среднее (корень n-й степени из произведения).
Например, для чисел 2 и 8:
- Арифметическое среднее: (2+8)/2 = 5.
- Геометрическое среднее: √(2×8) ≈ 4.
Как посчитать среднее по датам?
Excel хранит даты как числа (количество дней с 1 января 1900 года), поэтому вы можете использовать СРЗНАЧ для расчёта средней даты. Например:
=СРЗНАЧ(A2:A10)
где A2:A10 — диапазон с датами. Результат отформатируйте как дату (Формат ячеек → Дата).
⚠️ Если в диапазоне есть пустые ячейки, они будут проигнорированы. Если нужны все даты (включая "пустышки"), используйте:
=ДАТАГОД(СРЗНАЧ(A2:A10); 1; 0)
(это приблизительный расчёт среднего года).
Можно ли посчитать среднее по нескольким листам?
Да, используйте трёхмерные ссылки. Например, чтобы посчитать среднее по ячейке B2 на листах Лист1, Лист2 и Лист3:
=СРЗНАЧ(Лист1:Лист3!B2)
Если нужно посчитать среднее по одинаковым диапазонам на нескольких листах:
=СРЗНАЧ(Лист1:Лист3!B2:B10)
⚠️ Убедитесь, что все листы имеют одинаковую структуру, иначе Excel вернёт ошибку.