Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как рассчитать среднее значение динамического диапазона в Excel?

Author Kelly Last modified

В Excel вам часто может потребоваться вычислить среднее значение диапазона, который не является фиксированным, а может изменяться динамически — например, на основе входных значений, обновленных критериев или при анализе данных, которые постоянно растут или меняются. Это часто встречается при создании отчетов, информационных панелей или когда требуется агрегация данных на основе гибких условий. К счастью, Excel предоставляет несколько практических методов, от формул до продвинутых инструментов для расчета среднего значения динамического диапазона, каждый из которых подходит для конкретных сценариев. Ниже вы найдете несколько подходов для вычисления таких средних значений, а также объяснения их ценности, применимых ситуаций и советов по использованию.


Метод 1: Расчет среднего значения динамического диапазона в Excel

Формулы являются универсальным подходом для расчета среднего значения динамического диапазона, когда начальная или конечная точка вашего диапазона часто меняется, что часто происходит с ежемесячными продажами или текущими итогами. Позволяя ячейке ввода определять границу динамического диапазона, вы можете быстро адаптироваться к обновленным данным без переписывания формулы.

Чтобы настроить это, выберите пустую ячейку, например Ячейку C4, и введите следующую формулу:

=IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))

Затем нажмите клавишу Ввод, чтобы увидеть полученное среднее значение.

The cell with number which equals to row number of last cell of the dynamic range

Formula entered in C4

Эта формула автоматически корректирует диапазон, чтобы включить все ячейки от A2 до строки, указанной в C2, поэтому, когда значение C2 меняется, меняется и усредняемый диапазон. Это делает его гибким для динамического расширения или сокращения диапазона усреднения по мере поступления новых данных или если вы хотите проанализировать конкретный поднабор.

Примечания:

(1) В этой формуле =IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2))): A2 представляет первую ячейку диапазона для усреднения, а C2 ссылается на ячейку, содержащую номер строки последней ячейки целевого диапазона. Измените эти ссылки в соответствии со своей структурой данных по мере необходимости. Убедитесь, что ячейка C2 ссылается на допустимую строку, иначе вы получите неожиданные результаты или "NA".

(2) В качестве альтернативы можно использовать:

=AVERAGE(INDIRECT("A2:A"&C2))

Этот метод одинаково эффективен, поскольку он создает текстовую ссылку на диапазон, которую INDIRECT затем интерпретирует динамически. Однако будьте осторожны при использовании INDIRECT с закрытыми книгами или большими наборами данных, так как это может повлиять на скорость вычислений и не так эффективно, как INDEX для изменчивых данных.

Практический совет: Когда ваши данные постоянно растут (например, добавляются новые строки каждый день), вы можете использовать функцию COUNTA или COUNT, чтобы автоматически установить верхнюю границу ссылки на ячейку — это гарантирует, что ваш динамический диапазон всегда охватывает актуальные записи.

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


Расчет среднего значения динамического диапазона на основе критериев

Для ситуаций, где ваш динамический диапазон определяется не положением, а конкретными критериями (такими как регион, категория или определяемая пользователем метка), вы можете комбинировать динамические именованные диапазоны и такие функции, как INDIRECT, чтобы адаптировать свои вычисления. Это особенно полезно для информационных панелей, где пользователи выбирают из выпадающего списка и мгновенно видят связанные средние значения.

Different averages based on different criteria

Сначала сгруппируйте свой набор данных по заголовкам строк или столбцов. Вот как это сделать:

1. Выберите всю область (например, A1:D11) и нажмите кнопку Создать имена из выделенного кнопка Create names from selection button в Имена панели. В появившемся диалоговом окне отметьте оба параметра Верхняя строка и Левый столбец опции, затем нажмите OK. Этот шаг присваивает именованные диапазоны данным в строках и столбцах автоматически, что упрощает ссылки в формулах.

Name manager pane

2. В выбранной пустой ячейке введите эту формулу:

=AVERAGE(INDIRECT(G2))

Здесь G2 — это ячейка критериев, где пользователи вводят или выбирают имя заголовка строки или столбца. Когда G2 меняется (например, с «Region1» на «Region2»), формула динамически вычисляет среднее значение для соответствующего диапазона. Всегда убедитесь, что ввод в G2 точно соответствует определенным именам (включая чувствительность к регистру), чтобы избежать ошибок #REF!

Formula entered in a cell

Наилучшее применение: Отчетные информационные панели, аналитика на основе критериев. Преимущества: Позволяет очень гибко динамическое представление данных или анализ одной ячейки через взаимодействие пользователя. Ограничение: Зависит от правильного управления именами и согласованных входных значений.

Автоматический подсчет/суммирование/усреднение ячеек по цвету заливки в Excel

Иногда вы помечаете ячейки цветом заливки, а затем подсчитываете/суммируете эти ячейки или вычисляете их среднее значение позже. Функция Подсчет по цвету из Kutools for Excel Подсчет по цвету может помочь вам решить эту задачу легко.


Kutools' Count by Color interface

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас


Код VBA – Расчет среднего значения динамического диапазона с помощью макроса

Для сложных динамических действий, таких как усреднение последних N строк, усреднение на основе нескольких динамических критериев или даже объединение данных из нескольких листов, вы можете создать пользовательский макрос VBA. Этот метод особенно полезен, когда встроенные формулы становятся слишком сложными для вашего сценария или когда вам нужна автоматизация, которая адаптируется к часто меняющимся структурам.

Например, вы можете захотеть вычислить среднее значение последних N строк в столбце A, где N вводится пользователем, либо усреднять значения из разрозненных, указанных пользователем диапазонов.

1. Перейдите в Инструменты разработчика > Visual Basic, чтобы открыть редактор Microsoft Visual Basic для приложений. Затем выберите Вставить > Модуль и вставьте следующий код VBA:

Sub DynamicAverage_LastNRows()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Dim N As Long
    Dim result As Double
    Dim xTitleId As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = Application.ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    N = Application.InputBox("How many last rows to average?", xTitleId, 5, Type:=1)
    
    If N <= 0 Or N > lastRow - 1 Then
        MsgBox "Invalid input for N!", vbExclamation
        Exit Sub
    End If
    
    Set rng = ws.Range("A" & lastRow - N + 1, "A" & lastRow)
    result = Application.WorksheetFunction.Average(rng)
    
    MsgBox "Average of the last " & N & " rows in column A: " & result, vbInformation
End Sub

2. Нажмите Run button кнопку для запуска макроса. В появившемся диалоговом окне введите количество последних строк, которые вы хотите усреднить (например, 5, 10 и т.д.) и нажмите OK. Результат появится в окне сообщения.

Чтобы усреднить с более сложными условиями (например, на основе критериев или из нескольких листов), вы можете соответственно адаптировать код VBA — например, добавив InputBox для значения критериев или циклически обрабатывая несколько рабочих листов для объединения диапазонов перед усреднением.

Этот подход обеспечивает максимальную гибкость и может автоматизировать сложные или повторяющиеся динамические вычисления средних значений. Однако убедитесь, что вы включили макросы и используйте этот метод в доверенной книге, чтобы избежать рисков безопасности. Сохраните свою работу перед запуском новых макросов и рассмотрите возможность создания резервных копий при автоматизации изменений.

Преимущества: Позволяет автоматизацию, справляется со сложными или большими наборами данных, может быть адаптирован для очень специфической бизнес-логики. Недостатки: Требует базового понимания VBA, и процедуры нужно поддерживать при изменении структуры.


Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек