我想知道是否可以在 Google 电子表格上查询过去的汇率。
例如; 使用公式=GoogleFinance("CURRENCY:USDEUR")
将返回当前的美元/欧元汇率。如何检索历史汇率?
我想知道是否可以在 Google 电子表格上查询过去的汇率。
例如; 使用公式=GoogleFinance("CURRENCY:USDEUR")
将返回当前的美元/欧元汇率。如何检索历史汇率?
为了检索历史汇率,您必须使用以下公式:
=GoogleFinance("eurusd","price",today()-1,today())
所需的时间间隔在哪里today()-1, today()
,可以显式定义为静态日期对,也可以隐式定义为动态计算的值,如上例所示。此表达式将返回日期和结束值的两列数组。关心合适的单元格格式(日期/数字)很重要,否则您的数据将被破坏。
如果您想获得没有列标题的带有日期和货币汇率的纯行,请使用以下INDEX()
函数包装您的公式:
=INDEX(GoogleFinance("eurusd","price",today()-1,today()),2,)
要仅检索汇率值,请定义列号参数:
=INDEX(GoogleFinance("eurusd","price",today()-1,today()),2,2)
要从Google Finance获取Google Docs/Spreadsheet中今天的货币汇率:
=GoogleFinance("eurusd","price",today())
PS 前段时间获取今天的费率的捷径存在问题,但现在它可以工作了,您可以再次使用:
=GoogleFinance("currency:usdeur")
PS 如何在Microsoft Excel中获取实时货币汇率:
尝试,
=GoogleFinance("usdeur","price",date(2013,12,1),date(2013,12,16))
确保日期符合您的电子表格设置。
编辑为评论,更改捕获单日数据的日期:-
只有标题:
=INDEX(GoogleFinance("usdeur","price",date(2013,12,3),date(2013,12,4)),,2)
没有标题:
=FILTER(INDEX(GoogleFinance("usdeur","price",date(2013,12,3),date(2013,12,4)),,2),INDEX(GoogleFinance("usdeur","price",date(2013,12,3),date(2013,12,4)),,2)<>"Close")
所有与 googlefinance 相关的说明都在这里: https: //support.google.com/docs/answer/3093281
请记住,实际的 Google 电子表格公式使用分号 (;) 而不是逗号 (,)。在某些示例上进行替换后,将如下所示:
对于美元兑欧元的 30 天指数,您应该使用(请注意,在货币的情况下,它们在同一个第一个变量中一起出现):
=INDEX(GoogleFinance(USDEUR;"price";today()-30;today());2;2)
提示:您可以通过简单地更改 SPARKLINE 的 INDEX 来获得整个单元格大小的图表,如下所示:
=SPARKLINE(GoogleFinance(USDEUR;"price";today()-30;today());2;2)
Vasim 的回答非常好,但是请注意,如果您只想要当天的交换日期,您可以省略范围并只指定日期,如下所示
=FILTER(INDEX(GoogleFinance("usdeur","price",today()),,2),INDEX(GoogleFinance("usdeur","price",today()),,2)<>"Close")
您可能会注意到GOOGLEFINANCE
某些日期会返回 N/A,这是因为该日期是休息日(通常是周末),您可以做的是从指定日期获取最后一个工作,例如 2015 年 6 月 21 日是星期日,所以你应该请求 6 月 19 日(星期五)的费率,你可以通过这里WORKDAY
建议的函数来做到这一点:
WORKDAY("6/21/2015"+1,-1)
因此,生成的公式将如下所示:
INDEX(GoogleFinance("CURRENCY:USDRUB", "price", WORKDAY("6/21/2015"+1,-1),1),2,2)
此外,您想获取未来日期的汇率,您还可以检查日期是否在未来,如果是,只需使用今天的日期:
WORKDAY(IF("6/21/2099">TODAY(),TODAY(),"6/21/2099")+1,-1)
对于较大的电子表格,Google 表格限制通常会随机显示以下错误:
即使按照预期的参数 GOOGLEFINANCE(ticker, [attribute], [start_date], [end_date|num_days], [interval]) 修改 Index() 和 GoogleFinance(),错误仍将继续。一种解决方法是将较小的部分复制到新的电子表格中,但通常会失败。
作为替代方案,我使用 ImportXML 作为 x 汇率历史货币兑换数据的网络爬虫。
=index(IMPORTXML("https://www.x-rates.com/historical/?from="&N2&"&amount="&K2&"&date="&YEAR(B2)&"-"&TEXT(B2,"mm")&"-"&TEXT(B2,"dd")&"","//td[@class='rtRates']"),1)
我假设 B 列是日期,K 是金额,N 是货币。
对于 2000 多行的电子表格,它也会随机失败,但总的来说,就我的要求而言,它比 GoogleFinance() 好太多了
其他选项是使用此 Google 表格插件中的CurrencyConverter
功能。它速度快,语法简单。例如,
=CurrencyConverter(100, "USD", "EUR", "2/28/2020")
返回91.09957183