如何将整列除以它在Excel中的平均值之和

时间:2016-04-30 02:18:33

标签: excel

您好我在excel中有一个大文件。我可以使用=AVERAGE(A2:A34315)计算整个列的平均值并得到它的平均值。现在我试图将整个列除以它的平均值。如果没有我进入新列并手动输入它,是否有更简单的方法可以做到这一点。例如,让我们取平均数为1000

=A2/1000

我不想一直输入或拖动,因为我的文件很大。列从2开始一直到34315.这样做的原因是我试图规范化或缩放数据。

2 个答案:

答案 0 :(得分:0)

以下简短程序获取A列中所有数字的AVERAGE并将其存储在B1中。然后,它使用看起来像常见列标题标签的自定义数字格式来伪装数字。基础值用于“缩放”或“标准化”从A列到B列的数字。

Sub scaled()
    With Worksheets("sheet4")
        .Range("B1").Formula = "=average(a:a)"
        .Range("B1").NumberFormat = "\S\c\a\l\e"
        .Range("B2:B" & .Cells(Rows.Count, "A").End(xlUp).Row).Formula = "=a2/b$1"
    End With
End Sub

您可以在B列中使用公式,例如=A2/AVERAGE(A:A),但会一遍又一遍地计算相同的平均值。计算一次并使其“隐藏”应该更有效率。

答案 1 :(得分:0)

尝试以下代码

如果您需要个别百分比,请添加Range("B" & i).NumberFormat = "0.00%"

Sub getavg()
    Dim lastrow As Long
    Dim avgg As Variant
    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    avgg = Application.WorksheetFunction.Average(Range("A2:A" & lastrow))
    For i = 2 To lastrow
        Range("B" & i).Value = Range("A" & i).Value / avgg
        'Range("B" & i).NumberFormat = "0.00%"
    Next i
End Sub
相关问题