VBA Average - СРЕДНИЙ, СРЕДНИЙ, СРЕДНИЙ

Из этого туториала Вы узнаете, как использовать функцию Excel Average в VBA.

Функция Excel AVERAGE используется для вычисления среднего значения из ячеек диапазона на вашем рабочем листе, в которых есть значения. В VBA доступ к нему осуществляется с помощью метода WorksheetFunction.

СРЕДНИЙ рабочий лист

Объект WorksheetFunction можно использовать для вызова большинства функций Excel, доступных в диалоговом окне «Вставить функцию» в Excel. Функция СРЕДНИЙ - одна из них.

123 Sub TestFunctionДиапазон ("D33") = Application.WorksheetFunction.Average ("D1: D32")Конец подписки

У вас может быть до 30 аргументов в функции AVERAGE. Каждый из аргументов должен относиться к диапазону ячеек.

В приведенном ниже примере будет получено среднее значение суммы ячеек от B11 до N11.

123 Среднее значение теста ()Диапазон ("O11") = Application.WorksheetFunction.Average (Диапазон ("B11: N11"))Конец подписки

В приведенном ниже примере будет получено среднее значение суммы ячеек от B11 до N11 и суммы ячеек в B12: N12. Если вы не введете объект Application, он будет принят.

123 Среднее значение теста ()Range ("O11") = WorksheetFunction.Average (Range ("B11: N11"), Range ("B12: N12"))Конец подписки

Присваивание СРЕДНЕГО результата переменной

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

1234567 Sub AssignAverage ()Уменьшить результат как целое число'Назначьте переменнуюresult = WorksheetFunction.Average (Диапазон ("A10: N10"))'Показать результатMsgBox «Среднее значение для ячеек в этом диапазоне» & resultКонец подписки

СРЕДНИЙ с объектом диапазона

Вы можете назначить группу ячеек объекту Range, а затем использовать этот объект Range с Рабочий лист объект.

123456789 Sub TestAverageRange ()Dim rng As Range'назначить диапазон ячеекУстановить rng = Диапазон ("G2: G7")'используйте диапазон в формулеДиапазон ("G8") = WorksheetFunction.Average (rng)'отпустить объект диапазонаУстановить rng = ничегоКонец подписки

СРЕДНИЙ Объекты с несколькими диапазонами

Точно так же вы можете вычислить среднее значение ячеек из нескольких объектов диапазона.

123456789101112 Sub TestAverageMultipleRanges ()Dim rngA As ДиапазонDim rngB as Range'назначить диапазон ячеекУстановите rngA = Range ("D2: D10")Установите rngB = Range ("E2: E10")'используйте диапазон в формулеДиапазон ("E11") = WorksheetFunction.Average (rngA, rngB)'отпустить объект диапазонаУстановите rngA = NothingУстановить rngB = НичегоКонец подписки

Использование AVERAGEA

Функция СРЗНАЧ отличается от функции СРЗНАЧ тем, что она создает среднее значение из всех ячеек в диапазоне, даже если в одной из ячеек есть текст - она ​​заменяет текст нулем и включает его при вычислении среднего. Функция СРЗНАЧ игнорирует эту ячейку и не учитывает ее при вычислении.

123 Sub TestAverageA ()Диапазон ("B8) = Application.WorksheetFunction.AverageA (Диапазон (" A10: A11 "))Конец подписки

В приведенном ниже примере функция СРЗНАЧ возвращает другое значение функции СРЗНАЧ, когда вычисление используется в ячейках с A10 по A11.

Ответ для формулы AVERAGEA ниже, чем для формулы AVERAGE, поскольку она заменяет текст в A11 нулем и, следовательно, усредняет более 13 значений, а не 12 значений, по которым вычисляется AVERAGE.

Использование AVERAGEIF

Функция СРЗНАЧЕСЛИ позволяет усреднить сумму диапазона ячеек, отвечающих определенным критериям.

123 Субсредний Если ()Диапазон ("F31") = WorksheetFunction.AverageIf (Диапазон ("F5: F30"), "Экономия", Диапазон ("G5: G30"))Конец подписки

Приведенная выше процедура будет усреднять только ячейки в диапазоне G5: G30, где в соответствующей ячейке в столбце F есть слово «Экономия». Используемые вами критерии должны быть заключены в кавычки.

Недостатки WorksheetFunction

Когда вы используете Рабочий лист для усреднения значений в диапазоне на вашем листе возвращается статическое значение, а не гибкая формула. Это означает, что при изменении ваших цифр в Excel значение, возвращаемое Рабочий лист не изменится.

В приведенном выше примере процедура TestAverage создала среднее значение B11: M11 и поместила ответ в N11. Как вы можете видеть в строке формул, это число, а не формула.

Если какое-либо из значений изменится в диапазоне (B11: M11), результаты в N11 будут НЕТ изменение.

Вместо использования Рабочий листФункция.Среднее, вы можете использовать VBA для применения функции AVERAGE к ячейке с помощью Формула или Формула R1C1 методы.

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

Метод формулы позволяет указать конкретный диапазон ячеек, например: B11: M11, как показано ниже.

123 Sub TestAverageFormula ()Диапазон ("N11"). Формула = "= Среднее (B11: M11)"Конец подписки

Использование метода FormulaR1C1

Метод FomulaR1C1 более гибкий, поскольку он не ограничивает вас заданным диапазоном ячеек. Пример ниже даст нам тот же ответ, что и приведенный выше.

123 Sub TestAverageFormula ()Диапазон ("N11"). Формула = "= Среднее (RC [-12]: RC [-1])"Конец подписки

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

123 Sub TestCountFormula ()ActiveCell.FormulaR1C1 = "= Счетчик (R [-11] C: R [-1] C)"Конец подписки

Где бы вы ни находились на своем листе, формула затем усреднит значения в 12 ячейках слева от нее и поместит ответ в вашу ActiveCell. На диапазон внутри функции AVERAGE следует ссылаться с использованием синтаксиса Row (R) и Column (C).

Оба эти метода позволяют использовать динамические формулы Excel в VBA.

Теперь вместо значения в N11 будет формула.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave