求修正:计算指定时间戳区间内温度平均值的Google Sheets公式
解决自定义时间戳区间内平均温度的公式问题
原公式错误分析
你提供的公式核心问题是语法错误:
Average(data!M:M(data!E:E)部分写法违规,没有正确分隔函数参数,把温度列和时间戳列直接拼接,不符合Google Sheets函数语法规则- 数组运算的逻辑没有正确传递给AVERAGE函数,导致无法识别有效数据范围
两种可行解决方案
方案1:使用AVERAGEIFS(推荐,简洁高效)
AVERAGEIFS是Google Sheets原生的多条件求平均函数,完全匹配你的需求,无需数组公式即可直接运行:
=AVERAGEIFS(data!M:M, data!E:E, ">="&C3, data!E:E, "<"&D3)
参数说明:
data!M:M:目标温度数据列data!E:E, ">="&C3:筛选条件1:时间戳≥C3的起始时间data!E:E, "<"&D3:筛选条件2:时间戳<D3的结束时间
方案2:修正数组公式思路
如果需要保留数组运算的写法,可通过FILTER先筛选符合条件的温度数据,再计算平均值:
=AVERAGE(FILTER(data!M:M, data!E:E>=C3, data!E:E<D3))
或者用IF函数结合数组运算实现:
=ARRAYFORMULA(AVERAGE(IF((data!E:E>=C3)*(data!E:E<D3), data!M:M, "")))
这个公式会先通过条件判断生成布尔数组,再用IF返回对应温度值或空值,最终由AVERAGE计算有效数据的平均值。
内容的提问来源于stack exchange,提问作者CeePee98
相关产品推荐
相关产品推荐

