You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中通过Google Finance计算股票12个月移动平均?

解决Google Finance月末收盘价转数值并计算12月移动平均的方案

核心问题

你获取的月末收盘价是文本格式,无法直接用AVERAGE()计算,需要先转换为数值格式,以下是三种可行方案:


方案1:修改收盘价提取公式,直接返回数值

在提取收盘价的公式外层包裹VALUE()函数,将文本格式的收盘价直接转为数值。
示例公式(以股票代码GOOG为例):

=VALUE(INDEX(GOOGLEFINANCE("GOOG","close",EDATE(TODAY(),-12),TODAY(),"MONTHLY"),2,2))

把这个公式下拉填充12行,得到的就是可计算的数值格式收盘价,之后直接用=AVERAGE(B2:B13)(假设数据在B2到B13)计算平均值。

方案2:批量转换现有文本格式数据

如果已经有一列文本格式的收盘价(比如A2:A13),用ARRAYFORMULA()批量转换:

=ARRAYFORMULA(VALUE(A2:A13))

将公式输入到空白列的首行,整列会自动转为数值,再对转换后的列计算平均。

方案3:一步到位计算平均值(无需单独列)

直接在平均函数中完成提取、转数值、计算的全流程,无需单独存储收盘价:

=AVERAGE(ARRAYFORMULA(VALUE(INDEX(GOOGLEFINANCE("GOOG","close",EDATE(TODAY(),-12),TODAY(),"MONTHLY"),ROW(2:13),2))))
  • EDATE(TODAY(),-12):获取12个月前的日期作为起始时间
  • INDEX(...,ROW(2:13),2):提取历史数据中第2到13行的收盘价(跳过表头行)
  • VALUE():将文本转数值
  • AVERAGE():计算12个数值的平均值

如果需要处理可能的错误值(比如部分月份无数据),可以加入IFERROR()忽略错误:

=AVERAGE(ARRAYFORMULA(IFERROR(VALUE(INDEX(GOOGLEFINANCE("GOOG","close",EDATE(TODAY(),-12),TODAY(),"MONTHLY"),ROW(2:13),2)),"")))

内容的提问来源于stack exchange,提问作者jy2da

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 02:15:59