如何在Google Sheets中自动显示某列过去5个月的月度平均值
Google Sheets 自动计算并展示过去5个月月度平均值
一、先聚合月度平均值
假设原始数据在A:B列(A列为年月、B列为对应数值),用QUERY函数分组计算每月平均值并按时间倒序排列:
=QUERY(A:B, "SELECT A, AVG(B) WHERE A IS NOT NULL GROUP BY A ORDER BY A DESC", 1)
这个公式会自动生成包含年月和对应平均值的结果集,表头保留,新增月份时会自动更新聚合结果。
二、提取过去5个月的数据
如果不想用辅助列,直接合并公式自动提取最新5个月的结果:
=INDEX( QUERY(A:B, "SELECT A, AVG(B) WHERE A IS NOT NULL GROUP BY A ORDER BY A DESC", 1), SEQUENCE(MIN(5, COUNTA(QUERY(A:B, "SELECT A WHERE A IS NOT NULL GROUP BY A"))), 2), 0 )
MIN(5, ...)确保当数据不足5个月时,只显示已有月份的结果,避免报错SEQUENCE生成对应行数的序列,配合INDEX精准提取前N行数据
三、关于TOROW/CHOSECOLS的问题
你之前尝试的函数没成功,大概率是因为没有先完成月度聚合+倒序排序的前提步骤。先通过QUERY把原始数据整理成按时间倒序的月度平均值列表,再用INDEX+SEQUENCE提取,比单独用TOROW/CHOSECOLS更稳定,且完全无需手动更新公式。
内容的提问来源于stack exchange,提问作者waroti50
相关产品推荐
相关产品推荐

