indexing - 过滤 Google 财经公式以仅显示所有时间的“最高价”
问题描述
它参考了 Google 表格中的 Google 金融功能:https: //support.google.com/docs/answer/3093281?hl=en
我想获得特定代码(即 ABBV 或 GOOG)的“所有时间 LOW”(ATL)和“所有时间 HIGH”(ATH),但每个只在 1 个单元格中。基本上“这个股票代码的 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
以美元为单位的最低值。
但是,当我尝试对 ATH 做同样的事情时MAX
,MAXA
例如
=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 列的值,但基于MAX
A 列的值,这最终给了我80.1
,而不是预期的125.86
。
解决方案
利用:
=MAX(INDEX(GOOGLEFINANCE("ABBV", "high", "01/12/1980", TODAY(), 7), , 2))
43616.66667
不是“随机计算”。它的日期31/05/2019 16:00:00
转换为日期值
MAX
和MIN
函数从包含范围内的所有可能单元格返回单个输出,在您的情况下为两列。日期也被视为一个数字,因此最大化这两列将在第一列或第二列中为您输出最大值。通过介绍INDEX
,您可以跳过第一列并仅在第二列中查找最大值。
推荐阅读
- r - 如何检查数据框中是否存在元素以及是否存在将值添加到 R 中的另一个数据框
- assembly - 用汇编语言减去 16 位 2 的补码数
- shell - 如何通过从 txt 文件使用 shell 读取文件名找到所有文件
- exiftool - 如何合并 JSON 和 Google Takeout Photos 以获取正确的日期?
- php - Yii2 - 从 URL 中删除默认模块控制器
- r - 根据三个类别中的最高相似度匹配来自 2 个组的人
- python - ipopt 缺少 cyggcc_s-1.dll 和 cyggfortran-3.dll
- c++ - 在 C++ 中监控命名管道 (FIFO) 中的数据
- android - Kotlin Coroutines,饼图不旋转
- r - 如何根据 R 中的 url 拆分字符行