Google Sheets技术求助:交易日股票收盘价比值计算公式失效
解决Google Sheets中股票收盘价比值计算问题
原公式问题分析
你使用的=index(sort(GOOGLEFINANCE(B7, "close",today()-2,3),1,0),2,2)无法正常运行,核心问题在于:
today()-2,3指定的日期范围太窄,若遇到周末或节假日,该范围无法覆盖足够的交易日,导致返回的数据序列不符合预期。- 依赖固定位置的索引取值,一旦交易日分布不符合预设,就会取错数据。
修正后的公式
直接获取最近3个交易日的收盘价数据(自动跳过非交易日),再按日期降序排序后提取对应值计算比值:
=INDEX(SORT(GOOGLEFINANCE(B7, "close", , "DAILY", -3), 1, FALSE), 2, 2) / INDEX(SORT(GOOGLEFINANCE(B7, "close", , "DAILY", -3), 1, FALSE), 4, 2)
公式解释
GOOGLEFINANCE(B7, "close", , "DAILY", -3):获取单元格B7中股票代码的最近3个交易日的收盘价数据(自动排除周末、节假日),返回包含表头的二维数组。SORT(..., 1, FALSE):将返回的数组按日期列(第1列)降序排序,确保最新的交易日数据排在最前面。INDEX(..., 2, 2):提取排序后第2行第2列的值,即今日(当前交易日)的收盘价(第1行是表头)。INDEX(..., 4, 2):提取排序后第4行第2列的值,即两天前的交易日收盘价(跳过今日和昨日的交易日)。- 两者相除得到目标比值。
额外提示
- 若当前日期并非交易日,公式会返回#N/A错误,可结合
IFERROR函数处理:=IFERROR(INDEX(SORT(GOOGLEFINANCE(B7, "close", , "DAILY", -3), 1, FALSE), 2, 2)/INDEX(SORT(GOOGLEFINANCE(B7, "close", , "DAILY", -3), 1, FALSE), 4, 2), "非交易日无法计算")
内容的提问来源于stack exchange,提问作者Buzi Game
相关产品推荐
相关产品推荐

