我有几个5列乘30行的矩阵,其中的数据是从左到右逐行连续的。
订购示例
我希望能够根据指数对该数据的特定范围求平均值。例如,我希望得到以下各项的平均值:
- 前6个值(黄色)
- 接下来的3个值(绿色)
- 接下来的2个值(蓝色)
- 接下来的4个值(橙子)
在我看来,实现这一点的一种方法是将数组扁平化为2D向量,然后使用类似=average(offset(reference,X,0,Y,1))
的函数,其中:
- X是向量中要跳过的行数
- Y是要求平均值的行大小
是否有某种方法可以使用offset或其他Excel函数将矩阵视为2D向量,并根据要求前X个值、然后是下一个Y、下一个Z等值的索引提取平均值?
1条答案
按热度按时间dgsult0t1#
使用Office 2016,我们需要从2D数组创建一个1D数组。我们可以使用INDEX,使用MOD和INT,根据开始和结束的输入获得正确的值。
H1
保存开始索引,H2
保存结束索引。确保用数据集的范围替换A1:E3
。使用ZZ
是任意的,因为我们只关心返回的行号。我使用它是因为它通常是空的,如果数据改变,不会导致不必要的计算。对于旧版本,退出编辑模式时可能需要使用Ctrl-Shift-Enter而不是Enter。
对于使用Office 365或更高版本的用户,我们可以使用TOCOL和SEQUENCE: