如何用GoogleFinance公式获取指定日期前一交易日股票收盘价
自定义指定日期取前一交易日股票收盘价(Google Sheets)
现有方案的问题
- 内置
closeyest参数不支持传入自定义日期,仅能返回公式计算当日的前一交易日收盘价,无法适配任意日期查询需求 - 直接对输入日期做减1天的计算逻辑存在缺陷:当输入日期为周一、法定节假日后首个交易日时,减1天的结果落在周末/休市日,
GOOGLEFINANCE会自动向后顺延取最近的有效交易日数据,最终返回值和输入日期当日收盘价一致,结果错误。
验证案例:GOOG 2022年6月24日(周五)收盘价2370.76,6月27日(周一)收盘价2332.45。输入日期为6月27日时,使用公式
=INDEX(GOOGLEFINANCE("GOOG","close","27/06/22"-1),2,2)会错误返回2332.45,预期返回值应为2370.76。
可用公式
假设输入日期存放在单元格A1,查询股票代码存放在单元格B1(示例值为GOOG),使用以下公式即可正确返回对应前一交易日收盘价:
=INDEX(SORT(GOOGLEFINANCE(B1,"close",A1-10,A1-1,1),1,FALSE),2,2)
逻辑说明
- 用
GOOGLEFINANCE(B1,"close",A1-10,A1-1,1)拉取输入日期前10天至前1天区间内的所有有效交易日收盘价数据,返回结果第一列为交易日期,第二列为对应收盘价,自动过滤周末、休市日的无效日期 - 用
SORT(...,1,FALSE)将返回的交易数据按日期倒序排列,距离输入日期最近的有效交易日排在数据行最前 - 用
INDEX(...,2,2)提取排序后结果第二行第二列的值(第一行为字段表头),即为目标前一交易日收盘价
适配调整
- 若需覆盖春节、国庆等长度超过7天的长假场景,可将公式中
A1-10调整为A1-15,预留足够的时间冗余即可,冗余天数不会影响最终返回结果的准确性。
内容的提问来源于stack exchange,提问作者Treghlop
相关产品推荐
相关产品推荐

