我编写了以下公式,它只返回开始日期的高点,而不是整个日期范围的高点:= INDEX(GoogleFinance(C7,“high”,A7,B7,“DAILY”),2 ,2)
其中C7是包含股票代码的Google表格单元格,A7包含开始日期,B7包含结束日期。
答案 0 :(得分:1)
答案 1 :(得分:0)
公式:
=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))
...在您的示例中,将返回股票在A7和B7日期之间的高价。 1
使用公式:
=GOOGLEFINANCE(<symbol>, "high", <StartDate>, <EndDate>)
或
=GOOGLEFINANCE(C7, "high", A7, B7)
(在您的示例中)
…将返回一个数组,看起来像这样:
使用INDEX()
函数,可以将该数组转换为高值的单列:
=INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2)
现在,您可以将该数组传递到MAX()
函数中,以在单个单元格中获得最大值:
=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))
如果您在GOOGLEFINANCE的“高价”功能中包含日期范围,则在当前交易日内不包含今天的价格-因此如果您需要将今天的高价包含在您的价格范围内,则需要将今天的高价与历史数据进行明确比较。
例如,函数=GOOGLEFINANCE(symbol, "high")
为您提供今天的高价,因此:
=MAX(GOOGLEFINANCE(C7, "high"), MAX(INDEX(GOOGLEFINANCE(C7, "high", TODAY()-30, TODAY()), , 2)))
…将为您提供过去30天(包括今天)的高价。
如果您的日期范围可能仅包括今天(即没有A7和B7今天都等于今天的历史数据),那么上述公式将返回#NA。我有最终的解决方案来生成正确的数组,即使它不包含历史数据也是如此。
无论指定什么日期范围,下面的公式都会捕获#NA条件并构建包含今天高点的数组:
=MAX(INDEX({IFNA(GOOGLEFINANCE(E7, "high", A7, TODAY()), {"Date", "High"}); NOW(), GOOGLEFINANCE(E7, "high")}, , 2))
我被这个怪癖咬了好几次了,这个解决方案似乎涵盖了所有情况。享受吧!