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

Работа с отрицательными значениями в Microsoft Excel часто вызывает вопросы у пользователей, особенно когда требуется вычислить их среднее арифметическое, игнорируя положительные или нулевые данные. Стандартная функция =СРЗНАЧ() учитывает все числа в диапазоне, что не всегда удобно для анализа убытков, долгов или других отрицательных показателей. В этой статье разберём три надёжных метода, которые помогут точно рассчитать среднее только по отрицательным ячейкам — от простых формул до массивов и пользовательских функций.

Особенность задачи в том, что отрицательные числа в Excel могут храниться как в виде чисел (например, -1500), так и в формате текста или дат с отрицательным значением. Мы рассмотрим универсальные решения, которые работают в Excel 2010–2023 и Excel Online, а также укажем на типичные ошибки, из-за которых формулы возвращают неверный результат или #ДЕЛ/0!. Если вам нужно не просто среднее, а медиану или стандартное отклонение по отрицательным значениям — в конце статьи есть бонусный раздел с этими расчётами.

Почему стандартная функция СРЗНАЧ не подходит для отрицательных чисел

Функция =СРЗНАЧ(диапазон) в Excel рассчитывает среднее арифметическое всех числовых значений в указанном диапазоне, включая положительные, отрицательные и ноль. Например, для массива {-10; 5; -20; 15} она вернёт 0, хотя среднее только отрицательных (-10 и -20) должно быть -15.

Основные проблемы при использовании СРЗНАЧ:

  • 🔢 Игнорирование условия: функция не умеет фильтровать данные по знаку.
  • 📉 Искажение результата: положительные значения «разбавляют» среднее отрицательных, делая его менее точным для анализа убытков.
  • Ошибки при пустых ячейках: если в диапазоне есть текст или пустые клетки, СРЗНАЧ может вернуть #ДЕЛ/0!.

Чтобы обойти эти ограничения, потребуются условные функции или формулы массива. Далее разберём каждый метод с примерами.

📊 Какой способ расчёта среднего вы используете чаще?
Стандартные функции (СРЗНАЧ, СУММ)
Формулы массива
Пользовательские функции VBA
Другие инструменты

Способ 1: Формула массива с условием (для Excel 2019 и старше)

Самый универсальный метод — использование формулы массива с функцией СРЗНАЧЕСЛИ (или её аналогами). Она позволяет задать критерий отбора данных. Для отрицательных чисел формула будет такой:

=СРЗНАЧЕСЛИ(диапазон; "<0")

Пример: если ваши данные находятся в ячейках A1:A10, введите:

=СРЗНАЧЕСЛИ(A1:A10; "<0")

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

  1. Функция проверяет каждую ячейку в A1:A10 на условие «меньше 0».
  2. Складывает только те значения, которые удовлетворяют условию.
  3. Делит сумму на количество отрицательных чисел.

Если в диапазоне нет отрицательных значений, формула вернёт #ДЕЛ/0!. Чтобы избежать ошибки, оберните её в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(СРЗНАЧЕСЛИ(A1:A10; "<0"); "Нет отрицательных значений")

Способ 2: Комбинация СУММЕСЛИ и СЧЁТЕСЛИ (работает во всех версиях Excel)

Этот метод подходит для Excel 2007–2016 и не требует знания формул массива. Мы разобьём задачу на два шага:

  1. Посчитаем сумму всех отрицательных чисел с помощью СУММЕСЛИ.
  2. Посчитаем количество отрицательных чисел с помощью СЧЁТЕСЛИ.
  3. Разделим сумму на количество, чтобы получить среднее.

Формула будет выглядеть так:

=СУММЕСЛИ(A1:A10; "<0") / СЧЁТЕСЛИ(A1:A10; "<0")

Пример с данными:

ЯчейкаЗначение
A1-150
A2200
A3-50
A40
A5-30

Результат формулы: (-150 + -50 + -30) / 3 = -76,67.

1. Убедитесь, что в диапазоне нет текста (например, "Н/Д").

2. Проверьте формат ячеек — они должны быть "Общий" или "Числовой".

3. Если результат #ДЕЛ/0!, добавьте обработку ошибок с ЕСЛИОШИБКА.

-->

Способ 3: Пользовательская функция на VBA для сложных расчётов

Если вам часто приходится работать с отрицательными значениями, имеет смысл создать пользовательскую функцию на VBA. Она позволит гибко настраивать условия (например, игнорировать нули или учитывать только числа меньше -1000).

Откройте редактор VBA (Alt + F11) и вставьте следующий код в модуль:

Function СреднееОтрицательных(рнг As Range) As Double

Dim клетка As Range

Dim сумма As Double, количество As Integer

сумма = 0

количество = 0

For Each клетка In рнг

If IsNumeric(клетка.Value) And клетка.Value < 0 Then

сумма = сумма + клетка.Value

количество = количество + 1

End If

Next клетка

If количество > 0 Then

СреднееОтрицательных = сумма / количество

Else

СреднееОтрицательных = CVErr(xlErrDiv0) ' Возвращает #ДЕЛ/0!

End If

End Function

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

=СреднееОтрицательных(A1:A10)

Преимущества этого метода:

  • 🔄 Гибкость: можно модифицировать код для дополнительных условий (например, игнорировать значения от -10 до 0).
  • 📊 Производительность: работает быстрее формул массива на больших диапазонах.
  • 🛠 Обработка ошибок: корректно обрабатывает текстовые и пустые ячейки.
Как модифицировать функцию для игнорирования нулей?

Замените строку If IsNumeric(клетка.Value) And клетка.Value < 0 Then на:

If IsNumeric(клетка.Value) And клетка.Value < -0.0001 Then

Это исключит нули и значения, близкие к нулю (с учётом погрешности вычислений).

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

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

⚠️ Внимание: Если в диапазоне есть ячейки с текстом (например, "Нет данных"), функции СУММЕСЛИ и СЧЁТЕСЛИ проигнорируют их, но СРЗНАЧЕСЛИ может вернуть ошибку. Используйте ЕСЛИОШИБКА для защиты.

Частые проблемы:

ОшибкаПричинаРешение
#ДЕЛ/0!Нет отрицательных чисел в диапазонеДобавьте ЕСЛИОШИБКА или проверьте данные
#ЗНАЧ!В диапазоне есть текст или логические значения (ИСТИНА/ЛОЖЬ)Используйте ЕОШИБКА для фильтрации:
=СРЗНАЧЕСЛИ(A1:A10; "<0"; A1:A10)
Неверное среднееЯчейки отформатированы как текст (например, '-100)Примените формат "Числовой" или используйте ЗНАЧЕН()

Если формула возвращает 0 вместо ожидаемого отрицательного числа, проверьте:

  • 🔍 Формат ячеек: выделите диапазон и нажмите Ctrl + 1, выберите "Числовой".
  • 📌 Скрытые символы: иногда перед числом стоит пробел или апостроф (например, ' -100). Используйте ПЕЧСИМВ(A1) для проверки.
  • 🔄 Автоматический пересчёт: если формулы не обновляются, перейдите в Формулы → Параметры вычислений → Автоматически.

Бонус: Расчёт медианы и стандартного отклонения для отрицательных чисел

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

Медиана отрицательных чисел:

=МЕДИАНА(ЕСЛИ(A1:A10<0; A1:A10))

Введите эту формулу как формулу массива (Ctrl + Shift + Enter в старых версиях Excel).

Стандартное отклонение отрицательных чисел:

=СТАНДОТКЛОН.В(ЕСЛИ(A1:A10<0; A1:A10))

Для Excel 2019 и новее можно использовать ФИЛЬТР:

=МЕДИАНА(ФИЛЬТР(A1:A10; A1:A10<0))

FAQ: Частые вопросы по расчёту среднего отрицательных чисел

Можно ли посчитать среднее отрицательных чисел без VBA?

Да, используйте СРЗНАЧЕСЛИ (для Excel 2019+) или комбинацию СУММЕСЛИ/СЧЁТЕСЛИ (для всех версий). Примеры есть в разделах выше.

Почему моя формула возвращает #ЗНАЧ! вместо результата?

Скорее всего, в диапазоне есть текстовые значения или ячейки с ошибками. Используйте ЕСЛИОШИБКА или проверьте данные функцией ТИП().

Как посчитать среднее только по ячейкам красного цвета (отрицательные числа)?

Цвет ячейки — это формат, а не значение, поэтому стандартными формулами это сделать нельзя. Используйте VBA или надстройку Power Query для анализа по цвету.

Можно ли использовать эти методы в Google Таблицах?

Да, в Google Sheets работают аналогичные функции: =AVERAGEIF, =SUMIF/=COUNTIF. Синтаксис идентичен Excel.

Как посчитать среднее по модулю отрицательных чисел?

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

=СРЗНАЧ(ЕСЛИ(A1:A10<0; АБС(A1:A10)))
(не забудьте Ctrl+Shift+Enter в старых версиях).