首页 > 解决方案 > Excel - 逐步动态范围的平均值

问题描述

我的目标是取二维逐步动态范围的平均值。逐步表示参考单元格的右侧和左侧一个,x 次。例如,如果我有下表,我想取 A1、B2、C3、D4 和 E5 的平均值,这些单元格是动态范围的一部分。因此,如果我将参考单元格更改为 B2,它将取 B2、C3、D4 和 E5 的平均值。我已经进行了研究,OFFSET 或 Sumproduct 的变体可能会起作用;但是,对于逐步结构而言,没有什么特别的。任何帮助将不胜感激!

示例表

标签: exceldynamicrangedimensional

解决方案


以下用户定义的函数返回一个“逐步”数字数组,您可以对这些数字求和、平均等。

Function stepWise(rng As Range, steps As Long)
    Dim i As Long
    ReDim arr(1 To steps, 1 To 1) As Variant

    For i = 1 To steps
        arr(i, 1) = rng.Cells(1).Offset(i - 1, i - 1)
    Next i

    stepWise = arr
End Function

将 UDF 代码粘贴到标准公共模块代码表中。

AVERAGE(A1,B2,C3,D4,E5) 的示例:

=AVERAGE(stepWise(A1, 5))

AVERAGE(B1,C2,D3,E4) 的示例:

=AVERAGE(stepWise(B2, 4))

推荐阅读