Arrays visualbasic中的摘要统计

Arrays visualbasic中的摘要统计,arrays,vba,excel,statistics,Arrays,Vba,Excel,Statistics,下面我将尝试编写一个脚本,其目标是为几个不同的数字列计算一些汇总统计数据。我已经得到了一些帮助,直到“需要帮助低于”标记。但除此之外,我对如何计算简单的统计数据(总和、平均值、标准差、变异系数)感到震惊。我知道VB有这些统计数据的脚本,我已经把它们包含在我的代码中了,但我想我需要做一些额外的声明之类的事情。非常感谢你的建议。谢谢 Sub TOAinput() Const n As Integer = 648 Dim stratum(n), hybrid(n), acr

下面我将尝试编写一个脚本,其目标是为几个不同的数字列计算一些汇总统计数据。我已经得到了一些帮助,直到“需要帮助低于”标记。但除此之外,我对如何计算简单的统计数据(总和、平均值、标准差、变异系数)感到震惊。我知道VB有这些统计数据的脚本,我已经把它们包含在我的代码中了,但我想我需要做一些额外的声明之类的事情。非常感谢你的建议。谢谢

    Sub TOAinput()

    Const n As Integer = 648

    Dim stratum(n), hybrid(n), acres(n), hhsz(n), offinc(n)
    Dim s1 As Integer
    Dim s2 As Integer
    Dim i As Integer

    For i = 1 To n
    stratum(i) = Worksheets("hhid level").Cells(i + 1, 2).Value
    Next i

    s1 = 0
    s2 = 0
    For i = 1 To n
        If stratum(i) = 1 Then
        s1 = s1 + 1
        Else:
        s2 = s2 + 1
        End If
    Next i

    Dim acres1(), hhsz1(), offinc1(), acres2(), hhsz2(), offinc2()
    ReDim acres1(s1), hhsz1(s1), offinc1(s1), acres2(s2), hhsz2(s2), offinc2(s2)

    'data infiles: acres, hh size, off-farm income,

    For i = 1 To n
    acres(i) = Worksheets("hhid level").Cells(i + 1, 4).Value
    hhsz(i) = Worksheets("hhid level").Cells(i + 1, 5).Value
    offinc(i) = Worksheets("hhid level").Cells(i + 1, 6).Value
    Next i

    s1 = 0
    s2 = 0
    For i = 1 To n
        If stratum(i) = 1 Then
        s1 = s1 + 1
        acres1(s1) = acres(i)
        hhsz1(s1) = hhsz(i)
        offinc1(s1) = offinc(i)
        Else:
        s2 = s2 + 1
        acres2(s2) = acres(i)
        hhsz2(s2) = hhsz(i)
        offinc2(s2) = offinc(i)
        End If
    Next i

    '****************************
    'Need help below
    '****************************

    Dim sumac1, sumac2, mhhsz1, mhhsz2, cvhhsz1, cvhhsz2

    sumac1 = Sum(acres1)
    sumac2 = Sum(acres2)
    mhhsz1 = Average(hhsz1)
    mhhsz2 = Average(hhsz2)
    cvhhsz1 = StDev(hhsz1) / Average(hhsz1)
    cvhhsz2 = StDev(hhsz2) / Average(hhsz2)


    End Sub

Sum、Average和StdDev是工作表函数,不能直接在VBA中使用

试一试


如果Nick Sabbe建议将公式放在单元格中是不合适的。

你想实现什么?代码中似乎没有任何错误,但它没有做任何事情——它是一个子代码,因此没有结果,也没有在任何地方输出统计数据。您是在询问统计函数的源代码,还是有特定错误。顺便说一句,我会启用,这样您就不会进行任何牵连类型转换。@Marchthibault我试图在代码末尾获得变量的平均值等。例如,我想对“acres1”变量求和。然后我想把这个总数输出到excel工作表上(但我忘了在这篇文章中包含这方面的代码)。主要的一点是“sumac1=Sum(acres1)”并没有起作用。我收到一条错误消息。如果有人能告诉我如何求“acres1”的和或得到“hhsz1”的平均值并将其输出到工作表上,那就太好了。你为什么要在代码中做这样的事情?如果您真的想走Excel之路,请使用Excel之路:单元格中的公式。。。
 MyInteger = Application.WorksheetFunction.Sum(MyIntegerArray)