Deb*_*Can 2 indexing google-finance max google-sheets google-sheets-formula
它参考了 Google Sheets 中的 Google Finance 功能:https://support.google.com/docs/answer/3093281?hl=en
我想获得特定股票(即 ABBV 或 GOOG)的“所有时间低”(ATL)和“所有时间高”(ATH),但每个只在 1 个单元格中。基本上是“这个股票的 ATL/ATH 值是多少?”
我尝试过对 ATL 和 ATH 这两个公式进行计算,但目前只有 ATL 给出了预期的结果。
要获取 ATL,您可以使用
=GOOGLEFINANCE("ABBV","low","01/12/1980",TODAY(),7)
Run Code Online (Sandbox Code Playgroud)
要获得 ATH,您可以使用:
=GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7)
Run Code Online (Sandbox Code Playgroud)
其输出是 2 列数据:
请注意,包含时间戳的 A 列在计算函数时会带来麻烦,MAX
因为它会转换为一些奇怪的数字。
为了获得 ATL,我将使用MIN
运行良好的函数:
=MIN(GOOGLEFINANCE("ABBV","low","01/01/1980",TODAY(),7))
Run Code Online (Sandbox Code Playgroud)
因为它只会扫描 2 列数据并获取以32.51
美元为单位的最低值。
但是当我尝试使用例如 ATH 做同样的MAX
事情MAXA
时
=MAX(GOOGLEFINANCE("ABBV","high","01/12/1980",TODAY(),7)
Run Code Online (Sandbox Code Playgroud)
得出的结果似乎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)
Run Code Online (Sandbox Code Playgroud)
但它再次返回 B 列的值,但基于MAX
A 列的值,最终给出的是我80.1
而不是预期的125.86
。
使用:
=MAX(INDEX(GOOGLEFINANCE("ABBV", "high", "01/12/1980", TODAY(), 7), , 2))
Run Code Online (Sandbox Code Playgroud)
43616.66667
不是“随机计算”。它的日期31/05/2019 16:00:00
转换为日期值
MAX
和MIN
函数从包含的范围内的所有可能的单元格返回单个输出,在您的情况下是两列。日期也被视为数字,因此最大化这两列将在第一列或第二列中输出最大值。通过介绍,INDEX
您可以跳过第一列并仅在第二列中查找最大值。
归档时间: |
|
查看次数: |
8083 次 |
最近记录: |