Почему среднее значение — это не просто сумма делённая на количество
Вы когда-нибудь задумывались, почему в отчётах, статистике и даже бытовых расчётах так часто используется среднее арифметическое? На первый взгляд, это простая операция: сложил все числа, разделил на их количество — готово. Но в Microsoft Excel (и его аналогах вроде Google Sheets или LibreOffice Calc) расчёт среднего может превратиться в настоящую головоломку, если не учесть нюансы.
Допустим, вам нужно найти среднюю температуру за неделю, среднюю зарплату в отделе или средний чек в магазине. Казалось бы, что может пойти не так? А вот что:
пустые ячейки искажают результат, текстовые значения вызывают ошибки, а выбросы (например, одна зарплата в 500 тыс. руб. среди десятка в 50 тыс.) делают среднее бесполезным. В этой статье мы разберём не только базовую функцию СРЗНАЧ, но и её модификации для реальных задач — с фильтрами, условиями и даже без учёта экстремальных значений.
И да, если вы думаете, что среднее арифметическое и медиана — это одно и то же, то после прочтения пересмотрите своё отношение к статистике. Спойлер: медиана часто точнее отражает "типичное" значение, особенно когда данные неоднородны.
Способ 1: Базовая функция СРЗНАЧ — когда всё просто
Начнём с классики. Функция СРЗНАЧ (или AVERAGE в английской версии) — это ваш первый помощник. Она работает с любым набором чисел, игнорирует пустые ячейки и текстовые значения (но не ошибки!). Синтаксис предельно прост:
=СРЗНАЧ(число1; [число2]; ...)
или
=СРЗНАЧ(диапазон)
Примеры использования:
- 📌
=СРЗНАЧ(A1:A10)— среднее значений в ячейках сA1поA10. - 📌
=СРЗНАЧ(5; 10; 15; 20)— среднее четырёх чисел, введённых прямо в формулу. - 📌
=СРЗНАЧ(Лист2!B2:B100)— расчёт среднего с другого листа.
Но есть подводные камни. Например, если в диапазоне есть ячейка с текстом "Н/Д" или ошибкой #ДЕЛ/0!, функция вернёт ошибку. А если в данных есть нулевые значения, они учитываются в расчёте — иногда это логично (например, нулевые продажи), а иногда нет (например, пропущенные измерения).
Способ 2: СРЗНАЧА — когда пустые ячейки тоже важны
Функция СРЗНАЧА (или AVERAGEA) — это "всеядный" вариант СРЗНАЧ. Она учитывает все ячейки в диапазоне, включая:
- 🔢 Числа (как и
СРЗНАЧ). - 📝 Текстовые значения — они приравниваются к
0. - 🟠 Пустые ячейки — тоже считаются как
0. - ❌ Логические значения
ИСТИНА(1) иЛОЖЬ(0).
Пример: если в диапазоне A1:A5 значения 10, 20, "", "текст", ИСТИНА, то:
СРЗНАЧ(A1:A5)вернёт15(учитывает только 10 и 20).СРЗНАЧА(A1:A5)вернёт6(считает как(10 + 20 + 0 + 0 + 1) / 5).
Когда это полезно? Например, при анализе опросов, где пустой ответ может означать "нет мнения" (то есть 0), или в бухгалтерии, где пропущенные данные трактуются как нулевые операции.
Способ 3: Условное среднее — когда нужны только определённые данные
Допустим, вам нужно найти среднюю зарплату только для мужчин в таблице с данными сотрудников, или среднюю температуру только по будням. Здесь на помощь приходят функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН.
СРЗНАЧЕСЛИ (или AVERAGEIF) работает с одним условием:
=СРЗНАЧЕСЛИ(диапазон_условия; условие; [диапазон_среднего])
- 📍
диапазон_условия— где искать условие (например, столбец с полом). - 📌
условие— что искать (например,"М"для мужчин). - 📊
диапазон_среднего— откуда брать числа для расчёта (если не указан, используетсядиапазон_условия).
Пример: средняя зарплата мужчин, где пол указан в столбце B, а зарплата — в C:
=СРЗНАЧЕСЛИ(B2:B100; "М"; C2:C100)
Для нескольких условий используйте СРЗНАЧЕСЛИМН (AVERAGEIFS):
=СРЗНАЧЕСЛИМН(диапазон_среднего; диапазон_условия1; условие1; ...)
Пример: средняя зарплата мужчин старше 30 лет:
=СРЗНАЧЕСЛИМН(C2:C100; B2:B100; "М"; D2:D100; ">30")
Убедитесь, что диапазоны условий и среднего одинакового размера|
Проверьте регистр текста в условиях (например, "М" и "м" — разные значения)|
Исключите скрытые символы (пробелы, неразрывные пробелы) в текстовых условиях|-->
Способ 4: Среднее без учёта экстремальных значений (обрезка выбросов)
Представьте: у вас данные о продажах за месяц, и одна сделка на 1 млн руб. среди двадцати по 50 тыс. руб. Среднее значение взлетит до небес, хотя на самом деле majority продаж — это те самые 50 тыс. В таких случаях полезно обрезать выбросы (trimmed mean), то есть игнорировать, например, 10% самых больших и самых маленьких значений.
В Excel нет встроенной функции для этого, но её легко создать с помощью УРОВЕНЬ.ВЫБОРКИ (TRIMMEAN):
=УРОВЕНЬ.ВЫБОРКИ(массив; доля)
- 📊
массив— диапазон с данными. - 🔢
доля— какую часть значений обрезать с каждого конца (например,0,1для 10%).
Пример: обрезанное среднее для диапазона A1:A20 с исключением 10% выбросов:
=УРОВЕНЬ.ВЫБОРКИ(A1:A20; 0,1)
Важно: функция обрезает симметрично — если вы укажете 0,2, то будут исключены 20% самых маленьких и 20% самых больших значений. Если вам нужно обрезать только верхние или только нижние выбросы, используйте комбинацию НАИМЕНЬШИЙ/НАИБОЛЬШИЙ с СРЗНАЧ.
Что делать, если УРОВЕНЬ.ВЫБОРКИ недоступна?
В некоторых версиях Excel (например, Excel 2016 для Mac) этой функции нет. Альтернатива — использовать Power Query или написать пользовательскую функцию на VBA.
Способ 5: Среднее по фильтрованным данным (без формул)
Если вы работаете с отфильтрованными данными (например, применили Фильтр к таблице), то функции СРЗНАЧ или ПРОМЕЖУТОЧНЫЕ.ИТОГИ могут давать неожиданные результаты. Дело в том, что они по умолчанию учитывают все ячейки, включая скрытые фильтром.
Чтобы посчитать среднее только по видимым строкам, используйте:
- 📋 Выделите диапазон с данными (включая заголовки).
- 🔍 Примените фильтр (
Данные → Фильтр). - 📊 Перейдите на вкладку
Данные → Промежуточные итоги. - 📈 В окне настройте:
- 📌
При каждом изменении в:— выберите столбец, по которому фильтруете. - 📊
Операция:— выберитеСреднее. - 📌
Добавить итоги по:— укажите столбец с числами.
- 📌
ОК — среднее появится под отфильтрованными данными.Альтернатива — функция ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL):
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(1; диапазон)
Где 1 — это код операции для среднего по видимым ячейкам (для суммы используйте 9).
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с неожиданными результатами при расчёте среднего. Вот самые распространённые ловушки:
⚠️ Внимание: Если в диапазоне есть ячейки с формулами, возвращающими пустую строку (=""), функцияСРЗНАЧпроигнорирует их, аСРЗНАЧАпосчитает как0. Это может привести к разнице в результатах на 20–30%!
| Ошибка | Причина | Решение |
|---|---|---|
| #ДЕЛ/0! | В диапазоне нет числовых значений или все ячейки пустые/текстовые. | Проверьте диапазон на наличие чисел или используйте ЕСЛИОШИБКА: |
| #ЗНАЧ! | В условии для СРЗНАЧЕСЛИ использован недопустимый оператор (например, "=М" вместо "М"). |
Уберите знак = из текстового условия. |
| Неправильное среднее | В данных есть скрытые символы (например, пробелы перед числами) или числа хранятся как текст. | Используйте ЗНАЧЕН для преобразования текста в числа: =СРЗНАЧ(ЗНАЧЕН(A1:A10)). |
| Среднее "взлетает" из-за выбросов | В данных есть экстремально большие или маленькие значения. | Примените УРОВЕНЬ.ВЫБОРКИ или рассчитайте медиану (МЕДИАНА). |
Ещё один коварный момент: если вы копируете формулу с СРЗНАЧ в другую ячейку, относительные ссылки автоматически изменятся. Например, =СРЗНАЧ(A1:A10) при копировании вправо станет =СРЗНАЧ(B1:B10). Чтобы зафиксировать диапазон, используйте абсолютные ссылки: =СРЗНАЧ($A$1:$A$10).
Когда среднее арифметическое бесполезно: альтернативы
Среднее арифметическое — не всегда лучший показатель центральной тенденции. Вот случаи, когда стоит использовать другие методы:
- 📉 Данные с выбросами: одна экстремально большая или маленькая величина искажает результат. Например, средний доход в группе, где один миллиардер и 99 человек с доходом 30 тыс. руб. Решение:
МЕДИАНАилиУРОВЕНЬ.ВЫБОРКИ. - 📊 Нелинейные шкалы: если данные представляют собой проценты, коэффициенты или логарифмические величины, лучше использовать среднее геометрическое (
=СТЕПЕНЬ(ПРОИЗВЕД(A1:A10); 1/СЧЁТ(A1:A10))). - 📈 Временные ряды: для анализа трендов (например, средний рост продаж по месяцам) полезнее скользящее среднее (используйте
СРЗНАЧс динамическим диапазоном). - 🎯 Категориальные данные: если у вас номинальные значения (например, цвета или бренды), среднее вообще не имеет смысла. Используйте моду (наиболее частое значение).
Пример: если у вас данные о росте продаж за 12 месяцев, и вы хотите сгладить сезонные колебания, используйте скользящее среднее за 3 месяца:
=СРЗНАЧ(B2:B4) // для ячейки C4
=СРЗНАЧ(B3:B5) // для ячейки C5
и т.д.
FAQ: Ответы на частые вопросы
Можно ли посчитать среднее по нескольким несмежным диапазонам?
Да! Используйте синтаксис с точкой с запятой для разделения диапазонов:
=СРЗНАЧ(A1:A10; C1:C10; E1:E10)
Главное, чтобы все диапазоны содержали числа.
Почему моё среднее не совпадает с расчётом вручную?
Вероятные причины:
- В диапазоне есть скрытые символы (пробелы, табуляции) или числа в текстовом формате.
- Вы используете
СРЗНАЧАвместоСРЗНАЧ, и пустые ячейки считаются как0. - В данных есть ошибки (например,
#Н/Д), которые игнорируются при ручном счёте.
Проверьте данные с помощью функции ТИП:
=ТИП(A1)
Она вернёт 1 для чисел, 2 для текста, 16 для ошибок.
Как посчитать среднее по цвету ячеек?
Excel не поддерживает расчёт среднего по цвету ячеек стандартными функциями. Решения:
- 🎨 Используйте фильтр по цвету (вручную или через VBA).
- 📊 Добавьте вспомогательный столбец с формулой, которая присваивает значение
1ячейкам нужного цвета (например, с помощьюПОЛУЧИТЬ.ЯЧЕЙКУи VBA). - 🔍 Примените
Промежуточные итогипосле фильтрации по цвету.
Для автоматизации напишите пользовательскую функцию на VBA:
Function ColorAverage(rng As Range, color As Range) As Double
Dim cell As Range, sum As Double, count As Integer
For Each cell In rng
If cell.Interior.Color = color.Interior.Color Then
sum = sum + cell.Value
count = count + 1
End If
Next cell
If count > 0 Then ColorAverage = sum / count
End Function
Используйте её как =ColorAverage(A1:A10; B1), где B1 — ячейка с образцом цвета.
Можно ли посчитать среднее по динамическому диапазону?
Да! Используйте структурированные ссылки на таблицы Excel или функции СМЕЩ/ИНДЕКС:
- 📖 Преобразуйте данные в умную таблицу (
Ctrl + T). - 🔗 Используйте формулу вида:
=СРЗНАЧ(Таблица1[Столбец1])где
Таблица1— имя таблицы, аСтолбец1— имя столбца. - 📌 При добавлении новых строк в таблицу диапазон в формуле автоматически расширится.
Для более сложных случаев (например, среднее по последним 10 записям) используйте:
=СРЗНАЧ(СМЕЩ(A1; СЧЁТЗ(A:A)-10; 0; 10; 1))
Как посчитать средневзвешенное значение?
Средневзвешенное учитывает "вес" каждого значения. Формула:
=СУММПРОИЗВ(диапазон_значений; диапазон_весов) / СУММ(диапазон_весов)
Пример: средневзвешенная оценка студента, где A1:A3 — оценки (4, 5, 3), а B1:B3 — веса (например, количество кредитов: 2, 3, 1):
=СУММПРОИЗВ(A1:A3; B1:B3) / СУММ(B1:B3)
Результат: (4*2 + 5*3 + 3*1) / (2+3+1) = 4,33.