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

Среднее арифметическое — одна из самых востребованных статистических операций в Microsoft Excel. Без неё не обходится ни анализ продаж, ни обработка опросов, ни даже расчёт средней температуры по больнице. Но что делать, если стандартная функция AVERAGE выдаёт ошибку #DIV/0!? Или как исключить из расчёта нулевые значения? А может, вам нужно среднее по условию — например, только для ячеек с прибылью выше 1000₽?

В этой статье мы разберём все формулы среднего в Excel — от базовой AVERAGE до продвинутых AVERAGEIFS и массивов. Вы узнаете, как избежать типичных ошибок (например, когда функция игнорирует текстовые ячейки), как считать среднее по цвету или с учётом нескольких критериев. А ещё — секретный способ вычислить среднее без формул, используя только инструменты ленты.

Базовая формула среднего: AVERAGE

Функция AVERAGE — это «рабочая лошадка» для расчёта среднего арифметического. Она суммирует все числа в указанном диапазоне и делит результат на количество этих чисел. Синтаксис прост:

=AVERAGE(число1; [число2]; ...)

или

=AVERAGE(диапазон)

Примеры использования:

  • 📊 Простой диапазон: =AVERAGE(B2:B10) — посчитает среднее для ячеек с B2 по B10.
  • 🔢 Отдельные ячейки: =AVERAGE(B2; D5; F8) — среднее для трёх конкретных ячеек.
  • 📈 Смешанный ввод: =AVERAGE(B2:B10; 15; D5) — комбинация диапазона, числа и ячейки.

Но есть нюансы! Функция AVERAGE игнорирует:

  • 🔳 Пустые ячейки
  • 📝 Текстовые значения (например, "Н/Д")
  • 🟠 Логические значения ИСТИНА/ЛОЖЬ (если они не введены как результат формулы)
⚠️ Внимание: Если в диапазоне нет ни одного числового значения, Excel вернёт ошибку #DIV/0!. Чтобы избежать этого, используйте конструкцию =IFERROR(AVERAGE(B2:B10); "Нет данных").
📊 Как часто вы используете функцию AVERAGE в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда не пользовался

Среднее с учётом текста и логических значений: AVERAGEA

Функция AVERAGEA (от англ. AVERAGE All) отличается от AVERAGE тем, что учитывает все типы данных, включая текст и логические значения. Как она это делает?

  • 📌 Текст: Приравнивается к 0 (например, слово "Прибыль" = 0).
  • 🟢 Логические значения: ИСТИНА = 1, ЛОЖЬ = 0.
  • 🔳 Пустые ячейки: Игнорируются (как и в AVERAGE).

Пример:

=AVERAGEA(B2:B10)

Если в диапазоне B2:B10 есть ячейки с текстом "Отсутствует" или ЛОЖЬ, они будут учтены как 0. Это полезно для баз данных, где пропуски заполнены текстовыми метками.

Данные в ячейке AVERAGE AVERAGEA
10 Учитывается Учитывается
"Нет данных" Игнорируется Приравнивается к 0
ИСТИНА Игнорируется Приравнивается к 1
Пустая ячейка Игнорируется Игнорируется
⚠️ Внимание: Использование AVERAGEA может исказить результат, если в данных есть текстовые метки (например, "Неизвестно"). Перед применением функции проверьте диапазон на наличие таких значений.

Среднее по условию: AVERAGEIF и AVERAGEIFS

Что делать, если нужно посчитать среднее только для ячеек, которые соответствуют определённому критерию? Например, среднюю зарплату только для сотрудников отдела продаж или среднюю температуру только для дней выше 20°C. Здесь на помощь приходят AVERAGEIF (одно условие) и AVERAGEIFS (несколько условий).

Функция AVERAGEIF

Синтаксис:

=AVERAGEIF(диапазон_условия; условие; [диапазон_среднего])
  • 📌 диапазон_условия — где проверяется условие.
  • 🔍 условие — критерий (может быть числом, текстом или выражением как ">100").
  • 📊 диапазон_среднего — опционально, где берутся значения для среднего (если не указан, используется диапазон_условия).

Примеры:

  • 💰 Средняя зарплата > 50 000₽: =AVERAGEIF(C2:C100; ">50000")
  • 📦 Средний вес товаров категории "Электроника": =AVERAGEIF(B2:B100; "Электроника"; D2:D100)
  • Средний рейтинг (только для оценок ≥ 4): =AVERAGEIF(E2:E50; ">=4")

Функция AVERAGEIFS

Если нужно применить несколько условий, используйте AVERAGEIFS. Синтаксис:

=AVERAGEIFS(диапазон_среднего; диапазон_условия1; условие1; [диапазон_условия2; условие2]; ...)

Пример: средняя цена для товаров категории "Одежда", которые были проданы в количестве > 10 штук:

=AVERAGEIFS(D2:D100; B2:B100; "Одежда"; C2:C100; ">10")

Убедитесь, что диапазоны условия и среднего совпадают по размеру

Проверьте, что условия записаны в правильном формате (текст в кавычках, числа без)

Используйте абсолютные ссылки ($B$2:$B$100), если копируете формулу

-->

Среднее без учёта нулей и ошибок

Частая проблема при расчёте среднего — наличие нулей или ошибок (например, #N/A) в данных. Стандартные функции их учитывают, что искажает результат. Решения:

Игнорировать нули

Используйте формулу массива (в новых версиях Excel вводится как обычная формула, в старых — нажимайте Ctrl+Shift+Enter):

=AVERAGE(IF(B2:B100<>0; B2:B100))

Эта формула проверяет каждое значение в диапазоне B2:B100 и включает в расчёт только ненулевые.

Игнорировать ошибки (#N/A, #DIV/0!)

Комбинация функций AVERAGE и IFERROR:

=AVERAGE(IFERROR(B2:B100; ""))

Здесь ошибки заменяются на пустые строки, которые AVERAGE игнорирует.

Игнорировать и нули, и ошибки

Объедините оба подхода:

=AVERAGE(IF(IFERROR(B2:B100; 0)<>0; B2:B100))
⚠️ Внимание: В Excel 365 и 2021 формулы массива вводятся без Ctrl+Shift+Enter. В более старых версиях (2019 и ранее) не забудьте использовать это сочетание клавиш, иначе формула не сработает!
Почему нельзя просто отфильтровать нули?

Фильтрация данных не меняет исходный диапазон, поэтому формула =AVERAGE(B2:B100) всё равно учтёт скрытые нули. Чтобы исключить их, нужно использовать формулы с условиями или создать отдельный диапазон без нулей.

Среднее по цвету ячейки (продвинутый уровень)

Excel не имеет встроенной функции для расчёта среднего по цвету ячейки, но это можно сделать с помощью пользовательской функции на VBA или фильтрации.

Метод 1: Фильтрация по цвету

  1. Выделите диапазон с данными.
  2. Нажмите Данные → Фильтр.
  3. Откройте фильтр по столбцу и выберите Фильтр по цвету → [нужный цвет].
  4. Скопируйте отфильтрованные данные в новый диапазон и примените AVERAGE.

Метод 2: Пользовательская функция VBA

Если вам часто нужно считать среднее по цвету, создайте собственную функцию:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert → Module).
  3. Скопируйте этот код:
    Function AverageByColor(rng As Range, color As Range) As Double
    

    Dim cl As Range, total As Double, count As Integer

    For Each cl In rng

    If cl.Interior.Color = color.Interior.Color Then

    total = total + cl.Value

    count = count + 1

    End If

    Next cl

    If count > 0 Then AverageByColor = total / count

    End Function

  4. Теперь в Excel используйте формулу: =AverageByColor(B2:B100; A1), где A1 — ячейка с образцом цвета.

Средневзвешенное значение: SUMPRODUCT

Среднее арифметическое предполагает, что все значения равнозначны. Но что, если у вас есть веса? Например, средняя оценка студента с учётом кредитов предметов или средняя цена товара с учётом объёмов продаж. Здесь нужен средневзвешенный расчёт.

Формула:

=SUMPRODUCT(диапазон_значений; диапазон_весов) / SUM(диапазон_весов)

Пример: у вас есть цены товаров в столбце B и количество продаж в столбце C. Средневзвешенная цена рассчитывается так:

=SUMPRODUCT(B2:B10; C2:C10) / SUM(C2:C10)

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

  • 🧮 SUMPRODUCT перемножает каждый элемент B2:B10 на соответствующий в C2:C10 и суммирует результаты.
  • 📉 SUM(C2:C10) считает общий вес (объём продаж).
  • 🔄 Деление даёт средневзвешенное значение.
⚠️ Внимание: Если в диапазоне весов есть нули, соответствующие значения будут исключены из расчёта. Убедитесь, что это соответствует вашей логике!

Альтернативные способы расчёта среднего

Формулы — не единственный способ посчитать среднее в Excel. Вот ещё 3 метода:

1. Инструмент "Анализ данных" (надстройка)

  • 📊 Активируйте надстройку: Файл → Параметры → Надстройки → Перейти → поставьте галочку "Пакет анализа".
  • 🔧 Перейдите на вкладку Данные → Анализ данных → Описательная статистика.
  • 📌 Укажите входной диапазон и выберите опцию "Итоговая статистика".

2. Сводная таблица

  • 📈 Выделите данные и создайте сводную таблицу (Вставка → Сводная таблица).
  • 🔄 Перетащите поле с числовыми данными в область Значения.
  • 📊 Нажмите на стрелочку рядом с полем и выберите Параметры значений → Среднее.

3. Быстрое среднее на статусной строке

Выделите диапазон с числами — и в правом нижнем углу окна Excel (на статусной строке) появится среднее значение. Это не формула, но удобно для быстрой проверки.

Как включить отображение среднего на статусной строке?

Щёлкните правой кнопкой по статусной строке (внизу окна Excel) и выберите "Среднее" в контекстном меню. Теперь при выделении ячеек с числами будет показываться их среднее.

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

Даже опытные пользователи Excel иногда сталкиваются с ошибками при расчёте среднего. Вот самые распространённые:

Ошибка Причина Решение
#DIV/0! В диапазоне нет числовых значений или все ячейки пустые/текстовые. Используйте =IFERROR(AVERAGE(...); "Нет данных") или проверьте диапазон.
#VALUE! В формуле перемешаны разные типы данных (например, текст и числа в AVERAGEA). Убедитесь, что все аргументы совместимы, или используйте IFERROR.
Неправильное среднее В диапазоне есть скрытые строки или фильтры, которые искажают выборку. Используйте SUBTOTAL(1; диапазон) для учёта только видимых ячеек.
Среднее не обновляется Включён ручной режим пересчёта (Формулы → Параметры вычислений → Вручную). Верните автоматический режим или нажмите F9 для принудительного пересчёта.

Ещё одна частая проблема — несоответствие диапазонов в AVERAGEIFS. Например, если диапазон условий B2:B100, а диапазон среднего D2:D99, Excel вернёт ошибку. Всегда проверяйте, что диапазоны одинакового размера!

FAQ: Ответы на частые вопросы

🔹 Можно ли посчитать среднее по нескольким листам?

Да! Используйте 3D-ссылки. Например, чтобы посчитать среднее по диапазону B2:B10 на листах Лист1, Лист2 и Лист3, введите:

=AVERAGE(Лист1:Лист3!B2:B10)

Убедитесь, что структура данных на всех листах одинаковая.

🔹 Как посчитать среднее без учёта максимального и минимального значений?

Используйте формулу массива:

=AVERAGE(IF(B2:B100<>MAX(B2:B100); IF(B2:B100<>MIN(B2:B100); B2:B100)))

В Excel 365 можно упростить:

=AVERAGE(FILTER(B2:B100; (B2:B100<>MAX(B2:B100))*(B2:B100<>MIN(B2:B100))))
🔹 Почему моя формула AVERAGEIF не работает с текстом?

Функция AVERAGEIF чувствительна к регистру и пробелам. Если условие — текст (например, "Да"), убедитесь, что:

  • Текст в ячейках и условии совпадает по регистру ("да" ≠ "Да").
  • Нет лишних пробелов (используйте TRIM для их удаления).
  • Текст заключён в кавычки: =AVERAGEIF(A2:A10; "Да"; B2:B10).
🔹 Как посчитать среднее по динамическому диапазону?

Если ваш диапазон постоянно меняется (например, добавляются новые строки), используйте таблицы Excel или динамические массивы:

  1. Преобразуйте данные в таблицу (Ctrl + T).
  2. Используйте структурированные ссылки: =AVERAGE(Таблица1[Столбец1]).

Или (в Excel 365):

=AVERAGE(FILTER(B2:B100; B2:B100<>0))
🔹 Можно ли посчитать среднее по датам?

Да, но сначала преобразуйте даты в числа (например, в дни с момента начала отсчёта). Используйте:

=AVERAGE(D2:D10)

Где D2:D10 — ячейки с датами. Excel хранит даты как числа, поэтому среднее тоже будет числом. Чтобы отформатировать результат как дату, примените формат ячейки Дата.