在VBA中查找中位数

时间:2018-11-01 17:41:20

标签: vba dictionary median

我发现中位数超出范围存在一些问题。不幸的是,由于没有设置范围,所以无法使用内置函数Median,但是变量存储在Dictionary中。我在线找到了以下函数,该函数应该返回中位数,但是当我使用时,我得到的类型不匹配“期望为数组或用户定义类型”。这是功能:

Private Function Median(x() As Double, n As Integer) As Double
'this function calculates the median of a vector

    'Determine Median
    If n Mod 2 = 0 Then
        Median = 0.5 * (x(n / 2) + x((n + 2) / 2))
    Else
        Median = x((n + 1) / 2)
    End If

End Function

我试图以这种方式调用该函数:

x = Median(v_Array(), dct(vAdd).Count)

V_array是一个我想在其中存储值的数组,可以将其从字典中复制过来。我认为这里的问题与x() as Double部分有关。如果x的值是双精度值,如何插入值列表?我是否需要使用循环来遍历数组中的值?

Ps。如果您知道要从字典中的值列表中求出中位数的任何其他函数/方式,我将不胜感激!

0 个答案:

没有答案