用户定义函数,其计算所述平均随机选择的范围的排除是异常值和一个或多个值不应当是平均值。

现状:

Custom Average Function in Excel VBA

用户定义的函数需要被放置到一个模块。

1.打开Visual Basic编辑器,然后单击插入,模块。

2.添加以下代码行:

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

我们的函数的名称是CUSTOMAVERAGE。在括号中的一部分,是指我们给Excel的VBA的范围和两个整数变量输入。我们命名我们的范围毫克,一个整型变量我们称之为低,和一个整型变量,我们上打电话,但你可以使用任何名字。

3.接下来,我们声明Range对象和Integer类型的两个变量。

我们呼吁Range对象细胞。一个整型变量我们称之为总与一个整型变量我们称之为计数。

Dim cell As Range, total As Integer, count As Integer

4.我们想要查询在一个随机选择的范围内的每个小区(该范围可以是任何大小的)。在Excel VBA中,你可以使用对于每个Next循环这一点。添加以下代码行:

For Each cell In rng

Next cell

注:RNG以及细胞随机选择了这里,你可以使用任何名字。

请记住,是指这些名字在你的代码的其余部分。

5.接下来,我们检查在该范围内的每个值,如果它落在两个值(降低和上)之间。如果属实,我们增加由单元格的值合计,我们通过增量1计数下面的代码行添加到循环。

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

total = total + cell.Value

count = count + 1

End If

6.要返回该功能(所期望的平均值)的结果,添加外循环以下代码行。

CUSTOMAVERAGE = total / count

7.不要忘了最终的功能。添加一行:

End Function

8.现在你可以使用这个功能就像任何其他Excel函数来计算落在两个值之间数字的平均值。

结果:

Custom Average Function Result

作为检验,你可以删除那些低于10和高于30的所有值,并使用标准平均函数在Excel中,看看是否Excel计算相同的平均值作为我们的自定义功能平均。

Custom Average Function Check

我们的自定义功能,平均工作!注:此功能只适用于该工作簿。