Пользовательские функции СРЗНАЧ в Excel VBA
Ниже мы рассмотрим программу в Excel VBA, которая создает ссылке: / VBA-примеры-определяемые пользователем функция [User Defined Function]
, который вычисляет среднее значение произвольно выбранного диапазона за исключением одного или нескольких значений, которые являются выпадающие и не должны быть усреднены.
Ситуация:
Пользовательские функции должны быть помещены в модуль.
-
Откройте редактор Visual Basic и выберите Вставка, модуль.
-
Добавьте следующую строку кода:
Function CUSTOMAVERAGE(rng As Range, lower As Integer, upper As Integer)
Название нашей функции является CUSTOMAVERAGE. Часть в скобках означает, что мы даем Excel VBA диапазон и две переменные Integer в качестве входных данных. Мы называем наш диапазон ГСЧ, одну переменную типа Integer мы называем ниже, и одну переменную типа Integer мы называем верхней, но вы можете использовать любые имена.
-
Далее, мы объявляем объект Range и две переменные типа Integer.
Мы называем объект ячейки диапазона. Одна переменной Integer мы называем общие и одна переменной Integer мы называем сосчитать.
Dim cell As Range, total As Integer, count As Integer
-
Мы хотим, чтобы проверить каждую ячейку в случайно выбранном диапазоне (этот диапазон может быть любого размера). В Excel VBA, вы можете использовать для каждого следующего цикла для этого. Добавьте следующие строки кода:
For Each cell In rng Next cell
Примечание: RNG и клетки случайным образом выбраны здесь, вы можете использовать любые имена.
Не забывайте ссылаться на эти имена в остальной части кода.
-
Далее, мы проверяем для каждого значения в этом диапазоне, если он падает между двумя значениями (нижний и верхний). Если это правда, мы увеличиваем всего по значению ячейки и мы увеличиваем рассчитывать на 1. Добавьте следующие строки кода в петлю.
If cell.Value >= lower And cell.Value <= upper Then total = total + cell.Value count = count + 1 End If
-
Чтобы вернуть результат этой функции (в среднем) желаемого, добавьте следующую строку кода вне цикла.
CUSTOMAVERAGE = total / count
-
Не забудьте завершить функцию. Добавьте строку:
End Function
-
Теперь вы можете использовать эту функцию, так же, как и любую другую функцию Excel для вычисления среднего числа, которые попадают между двумя значениями.
Результат:
В качестве проверки, вы можете удалить все значения, которые ниже 10 и выше 30 и использовать стандартную функцию Average в Excel, чтобы увидеть, если Excel вычисляет средний же, как наша пользовательскую усредненную функцию.
Наша пользовательский средняя функция работает! Примечание: эта функция доступна только в этой книге.