Ниже мы рассмотрим программу в Excel VBA, которая создает ссылке: / VBA-примеры-определяемые пользователем функция [User Defined Function], который вычисляет среднее значение произвольно выбранного диапазона за исключением одного или нескольких значений, которые являются выпадающие и не должны быть усреднены.

Ситуация:

Custom Average Function in Excel VBA

Пользовательские функции должны быть помещены в модуль.

  1. Откройте редактор Visual Basic и выберите Вставка, модуль.

  2. Добавьте следующую строку кода:

Function CUSTOMAVERAGE(rng As Range, lower As Integer, upper As Integer)

Название нашей функции является CUSTOMAVERAGE. Часть в скобках означает, что мы даем Excel VBA диапазон и две переменные Integer в качестве входных данных. Мы называем наш диапазон ГСЧ, одну переменную типа Integer мы называем ниже, и одну переменную типа Integer мы называем верхней, но вы можете использовать любые имена.

  1. Далее, мы объявляем объект Range и две переменные типа Integer.

Мы называем объект ячейки диапазона. Одна переменной Integer мы называем общие и одна переменной Integer мы называем сосчитать.

Dim cell As Range, total As Integer, count As Integer
  1. Мы хотим, чтобы проверить каждую ячейку в случайно выбранном диапазоне (этот диапазон может быть любого размера). В Excel VBA, вы можете использовать для каждого следующего цикла для этого. Добавьте следующие строки кода:

For Each cell In rng

Next cell

Примечание: RNG и клетки случайным образом выбраны здесь, вы можете использовать любые имена.

Не забывайте ссылаться на эти имена в остальной части кода.

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

If cell.Value >= lower And cell.Value <= upper Then

total = total + cell.Value

count = count + 1

End If
  1. Чтобы вернуть результат этой функции (в среднем) желаемого, добавьте следующую строку кода вне цикла.

CUSTOMAVERAGE = total / count
  1. Не забудьте завершить функцию. Добавьте строку:

End Function
  1. Теперь вы можете использовать эту функцию, так же, как и любую другую функцию Excel для вычисления среднего числа, которые попадают между двумя значениями.

Результат:

Custom Average Function Result

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

Custom Average Function Check

Наша пользовательский средняя функция работает! Примечание: эта функция доступна только в этой книге.