如何在Google Sheets中用Google Finance获取最近开市日的股票价格
实现方案
该需求完全可以实现,核心思路是拉取目标日期前后一定区间内的所有交易数据,筛选出有效交易日后取最接近目标日期的收盘价即可。
适配你当前场景的可直接复用公式
=INDEX(SORT(GOOGLEFINANCE("NASDAQ:TSLA", "close", EOMONTH(TODAY(),-1)-5, EOMONTH(TODAY(),-1)), 1, FALSE), 2, 2)
公式逻辑说明
- 内层
GOOGLEFINANCE函数拉取目标日期(上月最后一天)往前推5天到目标日期的所有收盘价数据,返回结果默认包含「日期、收盘价」两列,第一行为表头 SORT函数将拉取到的交易数据按日期倒序排列,离目标日期越近的记录排在越靠前的位置INDEX函数取排序后的第2行第2列值,跳过表头后第一条就是离目标日期最近的前序交易日收盘价
注意:只要设置的往前推移的天数足够覆盖最长的休市周期,该公式不会触发无数据报错,常规场景下设置往前推5天已经可以覆盖周末+3天小长假的情况。
自定义调整规则
- 如果需要覆盖更长的休市周期(比如美股法定长假期),可以将公式中的
-5调整为更大的数值,比如-10 - 如果需要严格匹配「距离最近的交易日(允许在目标日期之后)」,可以将
GOOGLEFINANCE的时间区间调整为EOMONTH(TODAY(),-1)-3到EOMONTH(TODAY(),-1)+3,再按日期与目标日期的差值绝对值排序即可 - 替换
"NASDAQ:TSLA"为其他标的代码即可适配不同股票的查询需求
内容的提问来源于stack exchange,提问作者JordanLeo
相关产品推荐
相关产品推荐

