计算VBA中一个数据集中的多个描述性统计信息

时间:2017-10-30 12:31:22

标签: arrays excel vba grouping average

我有一个数据集,其中包含有关公司及其员工(年龄/性别等)的信息。目前,每个公司员工都列在新行上。我想要的是用员工年龄平均值/标准差,性别平均等来描述公司。基本上从每个公司的多行到每行包含这些描述性统计的1行。

到目前为止我所拥有的是:

Sub mergecompany()

Dim Currentline As Integer
Dim z As Integer
Dim a As Integer
Dim Agestart As Integer


For i = 2 To 30
j = 0
Currentline = (Cells(i, 1))
    If Currentline = 0 Then Exit For

        Do While Currentline = (Cells(i + j, 1))
            a = Val(Cells(i + j, 5))
            j = j + 1
            Cells(i, 20) = (Cells(i, 20) + a)
            Loop

Next i
End Sub

这给了我每组(每个公司的第一行)一次正确的年龄总和,但也有很多绒毛,如下所示 example data 我怎样才能最好地删除额外的数据?我猜是因为我还想计算平均值/标准值我必须通过使用数组或计数器来计算每组的条目数吗?也许使用某种Entirerow.delete?或者根本不使用VBA?

任何帮助都将不胜感激。

亲切的问候

1 个答案:

答案 0 :(得分:0)

您应该考虑创建一个数据透视表(非VBA路由),它可以帮助您构建此类摘要。

如果您在Google上搜索数据透视表,则会出现以下几个链接: http://www.contextures.com/CreatePivotTable_2007.html