在 google 表格中,如何使用 googlefinance 获取某个日期范围内股票的最高价格?

Jef*_*hen 4 google-finance stockquotes google-sheets

我编写了以下公式,它仅返回开始日期的最高值,而不返回整个日期范围的最高值: =INDEX(GoogleFinance(C7,"high", A7,B7,"DAILY"),2,2)

其中 C7 是包含股票代码的 Google 工作表单元格,A7 包含开始日期,B7 包含结束日期。

如何获取该范围内最高价格的日期?

Rob*_*ino 7

公式:

\n

=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))

\n

\xe2\x80\xa6 将返回示例中日期 A7 和 B7 之间股票的最高价格。1

\n

它是如何工作的?

\n

使用公式:

\n

=GOOGLEFINANCE(<symbol>, "high", <StartDate>, <EndDate>)或者

\n

=GOOGLEFINANCE(C7, "high", A7, B7)(在你的例子中),

\n

\xe2\x80\xa6 将返回一个如下所示的数组:

\n

\n

使用该INDEX()函数,您可以将该数组转换为高值的单列:

\n

=INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2)

\n

\n

现在您可以将该数组传递到MAX()函数中以获取单个单元格中的最高值:

\n

=MAX(INDEX(GOOGLEFINANCE(C7, "high", A7, B7), , 2))

\n

\n

1重要提示:

\n

如果您在 GOOGLEFINANCE 的“最高价”函数中包含日期范围,则它不会包含当前交易日的今天价格\xe2\x80\x94,因此,如果您需要在您的交易中包含今天的最高价范围内,您需要明确地将今天的高价与历史数据进行比较。

\n

例如,该函数=GOOGLEFINANCE(symbol, "high")给出今天的高价,因此:

\n

=MAX(GOOGLEFINANCE(C7, "high"), MAX(INDEX(GOOGLEFINANCE(C7, "high", TODAY()-30, TODAY()), , 2)))

\n

\xe2\x80\xa6将为您提供过去30天(包括今天)的最高价格。

\n

如果您的日期范围有可能只包括今天(即没有 A7 和 B7 都等于今天的历史数据),那么不幸的是,上面的公式将返回#NA。我有最终的解决方案来生成正确的数组,即使它不包含历史数据。

\n

防弹解决方案

\n

下面的公式捕获 #NA 条件并构建数组以包含今天的最高价,无论指定什么日期范围:

\n

=MAX(INDEX({IFNA(GOOGLEFINANCE(E7, "high", A7, TODAY()), {"Date", "High"}); NOW(), GOOGLEFINANCE(E7, "high")}, , 2))

\n

我已经被这个怪癖困扰了几次,这个解决方案似乎涵盖了所有场景。享受!

\n