0

从第 5 行到第 25 行,我在 C 列中有 2013 年的数据,在 D 列中有 2014 年的数据。在 E 列中,我在每一行都有复选框,这些复选框链接到它所在的单元格。我使用下面的代码来计算平均值第 26 行的 C 和 D 列中的数据,但仅包括旁边有一个 true(启用)复选框的行。到现在为止还挺好。

现在,我的问题是,我想扩展此代码以计算 2013 年和 2014 年(即分别为 C 和 D 列)的第 27 行的平均值和第 28 行的标准差。我不太确定该怎么做 - 你能帮我解决这个问题吗?谢谢你的帮助!

mean13 = 0
mean14 = 0
inc = 0

For Each c In ActiveSheet.Range("E5:E26").Cells

If c.Row <> 26 Then

    If c = "True" Then

    mean13 = mean13 + Cells(c.Row, c.Column - 2).Value
    mean14 = mean14 + Cells(c.Row, c.Column - 1).Value
    inc = inc + 1

    End If

ElseIf c.Row = 26 Then

Cells(26, c.Column - 2).Value = mean13 / inc
Cells(26, c.Column - 1).Value = mean14 / inc

End If

Next
4

1 回答 1

1

根据 Julien Marrec 的评论,您可能想熟悉数组公式。好的起点可能是Cheap Pearson intro to Array Formulas

在您的情况下,您可能需要使用:

=AVERAGE(IF(E5:E26=TRUE,D5:D26))
=AVERAGE(IF(E5:E26=TRUE,C5:C26))

分别计算列 C 和 D 的平均值。

相似地:

=STDEV.P(IF(E5:E26=TRUE,D5:D26))
=MEDIAN(IF(E5:E26=TRUE,D5:D26))

记住(引用链接):

输入数组公式:要将公式作为数组公式输入,请在单元格中键入公式并同时按 CTRL SHIFT 和 ENTER 键,而不是直接按 ENTER。您必须在第一次输入公式时以及以后编辑公式时执行此操作。如果您正确执行此操作,Excel 将显示用大括号 { } 括起来的公式。您无需输入大括号——Excel 将自动显示它们。如果您忽略使用 CTRL SHIFT ENTER 输入公式,则公式可能会返回 #VALUE 错误或返回不正确的结果。

于 2013-07-15T17:04:22.393 回答