You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Google Sheets中查找股票历史最高价(ATH)对应的日期

解决方案:获取股票历史最高价(ATH)对应的日期

嘿,我来帮你搞定这个问题!既然你已经成功拿到了股票的历史最高价,咱们只需要把日期和这个最高价对应起来就行,下面直接给你实用的公式和逻辑说明:

第一步:确认你的ATH获取公式(参考)

假设你已经用类似这样的公式计算出历史最高价(存在单元格B1),这里以单元格A1存放股票代码为例:

=MAX(INDEX(GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY()),,2))
  • DATE(2010,1,1)是你要查询的起始日期,可以根据需求修改;TODAY()自动取当前日期作为结束时间
  • INDEX(...,2)是从GOOGLEFINANCE返回的数组里提取出第二列的所有最高价数据,再用MAX拿到最大值

第二步:获取ATH对应的日期

在相邻单元格(比如C1)输入下面的公式,就能拿到这个最高价对应的日期:

=INDEX(GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY()), MATCH(B1, INDEX(GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY()),,2), 0), 1)

公式逻辑拆解:

  1. GOOGLEFINANCE(A1, "high", ...)返回的是一个二维数组:第一列是日期,第二列是对应日期的最高价
  2. INDEX(...,2)提取出所有最高价构成的列,供MATCH查找ATH的位置
  3. MATCH(B1, ..., 0)精确匹配到ATH在最高价列中的行位置
  4. 最后用INDEX从整个历史数据数组中,取出该位置第一列的日期值

进阶:获取最新的ATH日期(如果有多个日期达到同一最高价)

如果某只股票在多个日期都达到过同一个历史最高价,上面的公式会返回最早的那个日期。要是你想拿到最新的那个日期,可以用SORT把数据按日期倒序排列后再匹配:

=INDEX(SORT(GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY()), 1, FALSE), MATCH(B1, INDEX(SORT(GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY()), 1, FALSE),,2), 0), 1)
  • SORT(...,1,FALSE)把历史数据按日期列(第一列)降序排列,这样MATCH找到的第一个匹配结果就是最新的日期

注意事项

  • 确保两个公式里的GOOGLEFINANCE日期范围完全一致,不然会出现匹配错误
  • 如果需要考虑拆股/分红的价格调整,可以在GOOGLEFINANCE里添加参数,比如GOOGLEFINANCE(A1, "high", DATE(2010,1,1), TODAY(), "priceadjustment=dividends"),根据你的需求选择复权方式
  • 要是出现#N/A错误,检查一下ATH的计算是否正确,或者日期范围是否包含了最高价对应的日期

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

火山引擎 最新活动