excel - Excel - 逐步动态范围的平均值
问题描述
我的目标是取二维逐步动态范围的平均值。逐步表示参考单元格的右侧和左侧一个,x 次。例如,如果我有下表,我想取 A1、B2、C3、D4 和 E5 的平均值,这些单元格是动态范围的一部分。因此,如果我将参考单元格更改为 B2,它将取 B2、C3、D4 和 E5 的平均值。我已经进行了研究,OFFSET 或 Sumproduct 的变体可能会起作用;但是,对于逐步结构而言,没有什么特别的。任何帮助将不胜感激!
解决方案
以下用户定义的函数返回一个“逐步”数字数组,您可以对这些数字求和、平均等。
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))
推荐阅读
- angular - 在离开页面或更改 Angular 组件中的参数之前保存数据
- java - Object 到泛型类型转换的未检查警告的定义在哪里?
- json - 如何使用三元条件-flutter
- css - 将 prop 传递给样式化组件
- javascript - 角度 - DOM .contains() 找不到元素并且 parentNode 为空
- python - Django allauth 页面重定向
- .net-core - 使用带有接口的 AutoMapper
- angular - Nativescript Listview在IOS上的不同行为
- database - 从 PostgreSQL 块有条件地设置 dbname
- apache-spark - Spark 保存功能在后台使用 MapReduce