筛选Google Finance公式以仅显示所有时间的最高(&Q)

人气:905 发布:2022-10-16 标签: indexing max google-sheets google-finance google-sheets-formula

问题描述

引用Google Sheet中的Google Finance功能:https://support.google.com/docs/answer/3093281?hl=en

我想要获得特定股票代码(即ABBV或GOOG)的"所有时间最低"(ATL)和"所有时间最高"(ATH),但每个只有一个单元格。基本上是"这个自动收报机的ATL/ATH值是多少?"

我已尝试为ATL和ATH计算这两个公式,但目前只有ATL提供预期的结果。

若要获取ATL,您可以使用

=GOOGLEFINANCE("ABBV","low","01/12/1980",TODAY(),7)

要获取ATH,您可以使用:

=GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7)

输出为2列数据:

请注意,包含时间戳的A列将在计算MAX函数时制造麻烦,因为它会转换为一些奇怪的数字。

为了获取ATL,我将使用MIN函数,该函数可以很好地工作:

=MIN(GOOGLEFINANCE("ABBV","low","01/01/1980",TODAY(),7))

因为它将只扫描2列数据并获取32.51(以美元表示)的最低值。

但当我尝试使用MAXMAXA对ATH执行相同操作时,例如

=MAX(GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7)

结果是43616.66667,这似乎是对包含时间戳的列A的随机计算。

ATH的预期结果应为125.86美元。

我尝试使用FILTER排除的值>1000,但FILTER不允许我在B列中搜索,因此我尝试使用VLOOKUP使用此公式

 =VLOOKUP(MAX(GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7)),GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7),2,FALSE)

但它再次返回B列的值,但基于A列的MAX值,结果是80.1,而不是预期的125.86

推荐答案

使用:

=MAX(INDEX(GOOGLEFINANCE("ABBV", "high", "01/12/1980", TODAY(), 7), , 2))

43616.66667不是"随机计算"。日期31/05/2019 16:00:00已转换为日期值

MAXMIN函数返回包含区域中所有可能的单元格的单个输出,在本例中为两列。日期也被认为是一个数字,所以无论是从第一列还是从第二列开始,最大限度地利用这两列都会输出最大值。通过引入INDEX,您可以跳过第一列并仅在第二列中查找最大值。

538