Функция AVERAGE в Excel: полное руководство по расчету среднего значения

Функция AVERAGE в Microsoft Excel возвращает ошибку #DIV/0!, если вы пытаетесь рассчитать среднее значение для пустого диапазона ячеек или столбца с текстовыми данными. Это самая распространенная проблема при работе с формулой, но её легко исправить — достаточно добавить хотя бы одно числовое значение в выбранный диапазон или использовать модификацию AVERAGEA для игнорирования текста. В 90% случаев пользователи ошибочно применяют AVERAGE к некорректным данным, не проверяя предварительно тип содержимого ячеек.

Среднее арифметическое в Excel рассчитывается автоматически: функция суммирует все числовые значения в указанном диапазоне и делит результат на количество этих значений. Однако если в диапазоне есть пустые ячейки, они игнорируются — это ключевое отличие от ручного подсчета, где пустые поля часто воспринимаются как нули. Например, для диапазона A1:A5 с числами 10, 20, , 30, 40 (где одна ячейка пустая) формула =AVERAGE(A1:A5) вернет 25, а не 20, как могли бы ожидать новички.

В этой статье разберем не только базовый синтаксис AVERAGE, но и скрытые нюансы: как обрабатываются логические значения, почему функция может возвращать неожиданные результаты при работе с датами, и как обойти ограничение на 255 аргументов. Также покажем альтернативные способы расчета среднего через SUM и COUNT для сложных сценариев.

Базовый синтаксис функции AVERAGE

Формула AVERAGE в Excel имеет простой синтаксис, но поддерживает до 255 аргументов — отдельных чисел, ссылок на ячейки или диапазонов. Основная структура:

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

Где:

  • 📌 число1 — обязательный аргумент (может быть числом, ссылкой на ячейку или диапазоном, например A1:A10)
  • 📌 [число2] — необязательные дополнительные аргументы (до 254)

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

  • 🔢 =AVERAGE(5; 10; 15) → вернет 10
  • 📊 =AVERAGE(B2:B10) → среднее значений в ячейках с B2 по B10
  • 🔄 =AVERAGE(A1:A5; C1:C5) → среднее по двум несмежным диапазонам
⚠️ Внимание: Если аргумент содержит текст (например, "Н/Д"), AVERAGE вернет ошибку #VALUE!. Для игнорирования текста используйте AVERAGEA.

Чем AVERAGE отличается от AVERAGEA и AVERAGEIF

В Excel есть три похожие функции для расчета среднего, но каждая решает свои задачи:

Функция Обрабатывает тексты Учитывает логические значения Поддерживает условия Пример использования
AVERAGE ❌ Игнорирует ❌ Игнорирует ❌ Нет =AVERAGE(A1:A10)
AVERAGEA ✅ Преобразует в 0 ИСТИНА=1, ЛОЖЬ=0 ❌ Нет =AVERAGEA(A1:A10)
AVERAGEIF ❌ Игнорирует ❌ Игнорирует ✅ Да =AVERAGEIF(B2:B10; ">50")

AVERAGEA полезна, когда в данных есть текстовые пометки (например, "Отсутствует"), которые не должны ломать расчет. Например, для диапазона с числами 10, 20, "Н/Д", 30 формула =AVERAGEA(A1:A4) вернет 15 (так как "Н/Д" приравнивается к 0), а =AVERAGE(A1:A4) — ошибку.

AVERAGEIF позволяет учитывать только значения, соответствующие условию. Например, =AVERAGEIF(C2:C10; ">100"; C2:C10) посчитает среднее только для чисел больше 100 в диапазоне C2:C10.

📊 Какую функцию вы используете чаще?
AVERAGE
AVERAGEA
AVERAGEIF
Другую

Типичные ошибки при работе с AVERAGE и как их исправить

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

  1. #DIV/0! — возникает, если в диапазоне нет числовых значений или все ячейки пустые. Решение: добавьте хотя бы одно число или используйте IFERROR:
    =IFERROR(AVERAGE(A1:A10); "Нет данных")
  2. #VALUE! — появляется, если в диапазоне есть текст, который нельзя преобразовать в число. Решение: очистите данные или замените AVERAGE на AVERAGEA.
  3. Неожиданный результат — часто связан с скрытыми символами (например, пробелами) или форматом ячеек. Решение: используйте функцию TRIM для удаления пробелов или проверьте формат через Формат ячеек → Число.

Еще одна ловушка — даты. Excel хранит даты как числа (например, 01.01.2023 = 44927), поэтому если в диапазоне есть даты, AVERAGE вернет их числовое представление, а не осмысленное значение. Чтобы посчитать среднюю дату, используйте:

=TEXT(AVERAGE(A1:A5); "дд.мм.гггг")
⚠️ Внимание: Если вы копируете формулу с AVERAGE в другую книгу, проверьте, не изменились ли ссылки на диапазоны. Относительные ссылки (например, A1:A10) автоматически сдвигаются, что может исказить результат.
Как проверить, почему AVERAGE возвращает ошибку?

1. Выделите диапазон, по которому считаете среднее.

2. Нажмите Ctrl+Shift+~ (тильда) — это отобразит реальное содержимое ячеек (включая скрытые символы).

3. Проверьте, нет ли в данных:

- Текста, маскирующегося под числа (например, "10 " с пробелом)

- Логических значений (ИСТИНА/ЛОЖЬ)

- Формул, возвращающих пустую строку (="")

4. Используйте =ISTEXT(A1) или =ISNUMBER(A1) для проверки типа данных в проблемных ячейках.

Практические примеры использования AVERAGE

Рассмотрим реальные задачи, где AVERAGE экономит время:

1. Средняя зарплата по отделу

Допустим, в столбце B указаны зарплаты сотрудников (B2:B20), а в столбце A — их отделы. Чтобы посчитать среднюю зарплату для отдела "Маркетинг":

=AVERAGEIF(A2:A20; "Маркетинг"; B2:B20)

2. Средний балл студента с игнорированием пропусков

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

=AVERAGE(СТРОКА_С_ОЦЕНКАМИ)

Пустые ячейки будут проигнорированы автоматически.

3. Среднее значение с учетом весов

Для взвешенного среднего (например, оценки с разным весом) используйте SUMPRODUCT:

=SUMPRODUCT(B2:B5; C2:C5)/SUM(C2:C5)

Где B2:B5 — значения, а C2:C5 — их веса.

Выделите диапазон данных|Проверьте формат ячеек (должен быть "Общий" или "Числовой")|Удалите лишние пробелы функцией TRIM|Замените тексты типа "Н/Д" на 0 или используйте AVERAGEA|Убедитесь, что нет скрытых строк/столбцов с данными-->

Как ускорить расчеты с AVERAGE в больших таблицах

При работе с диапазонами более 10 000 строк AVERAGE может замедлять пересчет книги. Оптимизируйте формулы так:

  • 🚀 Используйте именованные диапазоны: Создайте имя для диапазона через Формулы → Диспетчер имен и ссылайтесь на него в формуле (например, =AVERAGE(Зарплаты)). Это ускоряет пересчет на 15-20%.
  • 🔄 Отключите автоматический пересчет: Перейдите в Формулы → Параметры вычислений → Вручную и обновляйте данные по F9 только когда нужно.
  • 📊 Разбивайте большие диапазоны: Вместо =AVERAGE(A1:A10000) используйте =AVERAGE(A1:A5000; A5001:A10000) — это снижает нагрузку.

Для динамических диапазонов (где данные постоянно добавляются) используйте TABLE (Excel-таблицы). Формула автоматически расширится при добавлении новых строк:

=AVERAGE(Таблица1[Столбец1])
⚠️ Внимание: Если в книге много формул AVERAGE с пересекающимися диапазонами, Excel может создавать избыточные зависимости, что замедляет работу. Проверьте зависимости через Формулы → Влияющие ячейки.

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

Иногда AVERAGE не подходит — например, когда нужно учитывать только видимые ячейки после фильтра или игнорировать ошибки. В таких случаях используйте:

Задача Формула Пример
Среднее только видимых ячеек (после фильтра) SUBTOTAL(1; диапазон) =SUBTOTAL(1; B2:B100)
Среднее с игнорированием ошибок AGGREGATE(1; 6; диапазон) =AGGREGATE(1; 6; A1:A50)
Среднее с несколькими условиями AVERAGEIFS =AVERAGEIFS(B2:B10; A2:A10; "Да"; C2:C10; ">100")

SUBTOTAL особенно полезен в отчетах: если применить фильтр к таблице, формула автоматически пересчитает среднее только по видимым строкам. Например, для диапазона B2:B100:

=SUBTOTAL(1; B2:B100)

AGGREGATE — самая гибкая функция: второй аргумент (6) игнорирует ошибки, скрытые строки и другие проблемы. Синтаксис:

AGGREGATE(номер_функции; параметры; диапазон)

Где номер_функции=1 для среднего, а параметры=6 для игнорирования ошибок.

Расширенные приемы: AVERAGE с массивами и LAMBDA

Для опытных пользователей Excel 365 доступны продвинутые техники:

1. Среднее по нескольким условиям без AVERAGEIFS

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

=AVERAGE(IF((A2:A10="Да")*(B2:B10>50); C2:C10))

Эта формула посчитает среднее по столбцу C, где в столбце A стоит "Да", а в B — число >50.

2. Среднее с пользовательской функцией (LAMBDA)

В Excel 365 можно создать собственную функцию для нестандартных расчетов. Например, среднее без учета 10% самых больших и маленьких значений:

=LAMBDA(диапазон;

LET(

отсортировано; SORT(диапазон);

обрезано; DROP(отсортировано; ROUNDUP(COUNT(диапазон)*0.1; 0); -ROUNDUP(COUNT(диапазон)*0.1; 0));

AVERAGE(обрезано)

)

)(A1:A20)

3. Среднее по цвету ячейки

Для расчета среднего только по ячейкам определенного цвета потребуется VBA-макрос. Пример кода:

Function AverageByColor(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

AverageByColor = sum / count

End Function

Используйте в формуле как =AverageByColor(A1:A10; B1), где B1 — ячейка с нужным цветом.

Как вставить LAMBDA-функцию в старых версиях Excel?

К сожалению, LAMBDA доступна только в Excel 365 и Excel 2021. Для старых версий используйте альтернативы:

1. Создайте пользовательскую функцию на VBA (как в примере с цветом).

2. Разбейте логику на несколько столбцов с промежуточными расчетами.

3. Используйте AGGREGATE или SUMPRODUCT для сложных условий.

FAQ: Частые вопросы по функции AVERAGE

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

Да, используйте 3D-ссылки. Например, =AVERAGE(Лист1:Лист3!A1) посчитает среднее по ячейке A1 на трех листах. Для диапазонов: =AVERAGE(Лист1:Лист3!A1:A10).

Почему AVERAGE игнорирует мои данные?

Скорее всего, ваши данные хранятся как текст. Проверьте:

  1. Выделите ячейку и посмотрите на строку формул — если слева зеленый треугольник, это текст.
  2. Используйте =VALUE(A1) для преобразования в число.
  3. Или примените формат "Общий" через Главная → Формат → Формат ячеек.

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

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

=AVERAGE(IF(A1:A10<>0; A1:A10))

В Excel 365 достаточно нажать Enter, в старых версиях — Ctrl+Shift+Enter.

Можно ли в AVERAGE использовать условия, как в SUMIF?

Да, для этого есть отдельная функция AVERAGEIF (одно условие) или AVERAGEIFS (несколько условий). Пример:

=AVERAGEIF(B2:B10; ">50")

посчитает среднее только для значений >50.

Как посчитать среднее по времени (например, среднее время выполнения задачи)?summary>

Excel хранит время как доли суток (например, 12:00 = 0.5). Чтобы посчитать среднее время:

  1. Убедитесь, что ячейки с временем отформатированы как "Время".
  2. Используйте =AVERAGE(A1:A10) — результат будет в формате времени.
  3. Примените формат "ч:мм" к ячейке с формулой.

Пример: для времен 10:00, 12:00, 14:00 среднее будет 12:00.