可变范围使用标准的统计

时间:2018-02-25 05:12:56

标签: excel vba excel-vba

我需要帮助来使用数据标准计算最小值,最大值,平均值。下图显示了两列数据,即时间和速度。我想计算从时间0(单元格2)到单元格14的范围的平均速度。然后,计算从下一个0(单元格15)到单元格20的平均速度,依此类推。显然,可以应用相同的公式来计算最小值,最大值和其他统计量。

有没有办法编写一个智能公式,知道如何分别平均每个细分?下图说明了三个细分,但我的原始数据集要大得多:enter image description here

2 个答案:

答案 0 :(得分:2)

您可以在找到0时将列添加到组。

  1. 使用1初始化单元格,然后在下一个单元格中使用=IF(A3=0,C2+1,C2)
  2. 然后您可以使用公式AVERAGEIFMINIFSMAXIFS。 (仅适用于Excel v2016)。

    =AVERAGEIF($C$2:$C$17,E2,$B$2:$B$17)
    =MINIFS($B$2:$B$17,$C$2:$C$17,E2)
    =MAXIFS($B$2:$B$17,$C$2:$C$17,E2)
    

答案 1 :(得分:1)

仅在摘要中使用帮助列进行处理

您不需要使用辅助列填充所有数据行,您可以将输入限制在汇总范围。 此方法使用汇总范围中的Indirect函数将Match数据块中的每个最后一个单元格(由0标识)和 通过Subtotal函数计算结果(参数 1-average,5-minimum,4-maximum )。

  1. 使用 =1
  2. 初始化单元格 E1
  3. 然后,您可以将以下表格 ae 写入 E2:H2 行,并在找到数据块时将其复制下来。列 E 显示每个块中的最后一个单元格, F:H 显示平均值,最小值和最大值:

    E2 =MATCH(0,INDIRECT("$A" &$E1+2 & ":$A$10000"),0)+$E1

    F2 =SUBTOTAL(1,INDIRECT("$B$" & $E1 +1 & ":$B$" & $E2))
    G2 =SUBTOTAL(5,INDIRECT("$B$" & $E1 +1 & ":$B$" & $E2))
    H2 =SUBTOTAL(4,INDIRECT("$B$" & $E1 +1 & ":$B$" & $E2))

  4. 注意

    a)最后一个数据行必须有一个结束零(0)。

    b)此示例假定$ E列中的帮助项;您可以轻松地将其更改为任何列。