Excel VBA宏 - 如何获取列的中位数和平均值并打印出结果

问题描述 投票:0回答:1

我试图查找列名称“总循环时间”,然后在列的最后我想要平均值,然后在整个列的中位数以下的一行。

下面是一个开始,但它似乎只从一个表拉,因此Table14参考。我不明白如何只看这个活动表。

Sub Macro10()
'
' Macro10 Macro
'
Range("U" & Cells.Rows.Count).End(xlUp).Select
ActiveCell.Offset(1, 0).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = _
        "=AVERAGE(Table14[[#Headers],[#Data],[Total Cycle Time]])"
    ActiveCell.Offset(1, 0).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = _
        "=MEDIAN(Table14[[#Headers],[#Data],[Total Cycle Time]])"

'
End Sub
excel vba excel-vba
1个回答
0
投票

假设在工作表的某个地方我们有一个标题单元格,其下面的数据如下:

enter image description here

运行这个短宏将:

1.locate标头和相关的数据列 2.将所需的统计信息放在值下方的单元格中

Sub SaveStats()
    Dim header As Range, DataRange As Range

    Set header = Cells.Find(What:="total cycle time", after:=Cells(1, 1))
    Set DataRange = Range(header, Cells(Rows.Count, header.Column).End(xlUp))

    With Application.WorksheetFunction
        Cells(DataRange.Rows.Count + DataRange.Row, DataRange.Column).Value = .Average(DataRange)
        Cells(DataRange.Rows.Count + DataRange.Row + 1, DataRange.Column).Value = .Median(DataRange)
    End With
End Sub

enter image description here

注意:

宏没有错误处理。如果标题下方没有数据,它将会死亡。

© www.soinside.com 2019 - 2024. All rights reserved.