首页 > 解决方案 > 在 Excel 中平均动态范围

问题描述

我有一个看起来像这样的值列表。每隔 30 分钟,我的数据中的第一行会向下移动,并插入一个新的最新值。我希望能够每天从 18:30 到最顶部的单元格中取模型列中所有值的平均值(所以只有具有 18:30 值的最新单元格到最顶部的单元格)

任何帮助将不胜感激

[1]:https://i.stack.imgur.com/H2pNc.png

我已经能够找到包含我需要使用此日期的行:

=MATCH(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY()-1))+TIME(18,30,0),AF47:AF4595,0)

所以现在我只需要能够从第 1 行平均到该公式的输出。我已经尝试过 Index(NamedRange,1:3,0) 但这没有用

标签: excelexcel-formula

解决方案


=INDEX(AF:AF,1):INDEX(AF:AF,MATCH(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY()-1))+TIME(18,30,0),AF47:AF4595,0))

虽然我会改变你的公式只是为了缩短它......你的公式更具可读性。我会将您的公式更改为:

MATCH(INT(TODAY())-1+TIME(18,30,0),AF:AF,0)

根据您的公式,我假设您的数据全部在 AF 中。调整 AF 以匹配您需要的列。

由于 INDEX 返回一个单元格地址,您只需将两个索引定义的范围包装在 AVERAGE 函数中:

=AVERAGE(INDEX(AF:AF,1):INDEX(AF:AF,MATCH(DATE(YEAR(TODAY()),MONTH(TODAY()),DAY(TODAY()-1))+TIME(18,30,0),AF47:AF4595,0)))

推荐阅读