如何解决 GOOGLEFINANCE 故障?
How to work around GOOGLEFINANCE failures?
我的 gooogle sheet 需要货币汇率的历史数据,而 GOOGLEFINANCE 功能正是我所需要的。这是我从项目中复制的带有 GOOGLEFINANCE 数据的 sheet:
https://docs.google.com/spreadsheets/d/15cFmrS2IL6QZMJORCJxU16QtWQ-2hFNLORgM5pEgY_E/edit?usp=sharing
问题是有时(实际上经常)GOOGLEFINANCE 函数崩溃并且 returns 错误破坏了整个项目:
that's how it looks when it crashes
一段时间后return恢复正常,但确实令人不安。
我想不出解决这个问题的好方法,所以我请求你的帮助。
我考虑过使用以下逻辑制作单元格:如果 GOOGLEFINANCE 值不为空,则复制它,否则保留旧值 使 GOOGLEFINANCE return 持久化,但我不确定是否可以使用 Google Spreadsheets 公式。
例如上面如果我们想让 L4 单元格包含 C4 单元格的持久值,我希望 L4 公式是这样的:
=IF(ISBLANK(C4),L4,C4)
但随后单元格将引用自身,这是不允许的。
如果没有 Apps 脚本,这是不可能的
这是因为 sheet 函数也就是公式,不会将值写入单元格。如果您需要持久化数据,那么您需要 Apps 脚本。
不幸的是,无法在 Spreadsheet 公式之外访问 GOOGLEFINANCE。来自 https://workspaceupdates.googleblog.com/2016/09/historical-googlefinance-data-no-longer.html
it (is) not be possible to download historical data or access it outside of Sheets using Apps Script or an API.
解决方法(使用 Apps 脚本)
但是,可以设置 Apps 脚本函数来读取带有 getDisplayValue()
的单元格的显示值,并将其复制到备份 sheet,您可以在其中以某种方式存储历史数据.
您可以设置一个 sheet 使用 GOOGLEFINANCE 公式,另一个 sheet 使用备份值,以及一个最终的“报告” sheet。然后您可以编写另一个 Apps 脚本函数来检查 sheets 并构建输出。
此外,您可以将其设置为 运行 和 Time-driven triggers,这将是相当轻松的。
参考资料和进一步阅读
我的 gooogle sheet 需要货币汇率的历史数据,而 GOOGLEFINANCE 功能正是我所需要的。这是我从项目中复制的带有 GOOGLEFINANCE 数据的 sheet: https://docs.google.com/spreadsheets/d/15cFmrS2IL6QZMJORCJxU16QtWQ-2hFNLORgM5pEgY_E/edit?usp=sharing
问题是有时(实际上经常)GOOGLEFINANCE 函数崩溃并且 returns 错误破坏了整个项目: that's how it looks when it crashes
一段时间后return恢复正常,但确实令人不安。
我想不出解决这个问题的好方法,所以我请求你的帮助。
我考虑过使用以下逻辑制作单元格:如果 GOOGLEFINANCE 值不为空,则复制它,否则保留旧值 使 GOOGLEFINANCE return 持久化,但我不确定是否可以使用 Google Spreadsheets 公式。
例如上面如果我们想让 L4 单元格包含 C4 单元格的持久值,我希望 L4 公式是这样的:
=IF(ISBLANK(C4),L4,C4)
但随后单元格将引用自身,这是不允许的。
如果没有 Apps 脚本,这是不可能的
这是因为 sheet 函数也就是公式,不会将值写入单元格。如果您需要持久化数据,那么您需要 Apps 脚本。
不幸的是,无法在 Spreadsheet 公式之外访问 GOOGLEFINANCE。来自 https://workspaceupdates.googleblog.com/2016/09/historical-googlefinance-data-no-longer.html
it (is) not be possible to download historical data or access it outside of Sheets using Apps Script or an API.
解决方法(使用 Apps 脚本)
但是,可以设置 Apps 脚本函数来读取带有 getDisplayValue()
的单元格的显示值,并将其复制到备份 sheet,您可以在其中以某种方式存储历史数据.
您可以设置一个 sheet 使用 GOOGLEFINANCE 公式,另一个 sheet 使用备份值,以及一个最终的“报告” sheet。然后您可以编写另一个 Apps 脚本函数来检查 sheets 并构建输出。
此外,您可以将其设置为 运行 和 Time-driven triggers,这将是相当轻松的。