在Google电子表格中,如何查询“GoogleFinance”过去的汇率?

时间:2013-12-16 09:43:31

标签: google-sheets google-docs currency-exchange-rates

我想知道是否可以在Google电子表格中查询过去的汇率。

例如;使用公式=GoogleFinance("CURRENCY:USDEUR")将返回当前时刻的美元/欧元汇率。你如何找回历史性的费率?

7 个答案:

答案 0 :(得分:81)

要检索历史汇率,您必须使用以下公式:

=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财经获取 Google文档/电子表格中的今日货币汇率:

=GoogleFinance("eurusd","price",today())

P.S。前段时间有一个问题,即获得今天的费率很短,但现在它有效,你可以再次使用:

=GoogleFinance("currency:usdeur")

P.S。如何在 Microsoft Excel 中获取实时货币汇率:

答案 1 :(得分:14)

尝试,

=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")

答案 2 :(得分:10)

所有与googlefinance相关的说明都在此处:https://support.google.com/docs/answer/3093281

请记住,实际的Google Spreadsheets公式使用分号(;)而不是逗号(,)。 一旦完成,一些例子的替换将如下所示:

对于30天的美元兑欧元指数,您应该使用(请注意,对于货币,它们在同一个第一个变量中一起使用):

=INDEX(GoogleFinance(USDEUR;"price";today()-30;today());2;2)

提示:只需更改SPEXLINE的INDEX即可在单元格的整个大小上获得图表,如下所示:

=SPARKLINE(GoogleFinance(USDEUR;"price";today()-30;today());2;2)

答案 3 :(得分:3)

瓦西姆的答案非常好,但是如果您只想在当天交换日期,可以省略范围,只需指定日期,如下所示

  

= FILTER(INDEX(个GoogleFinance(&#34; usdeur&#34;&#34;价格&#34;今日()),, 2),INDEX(个GoogleFinance(&#34; usdeur&#34 ;, ()),今天,, 2)LT;&#34;价格&#34&GT;&#34;关闭&#34)

答案 4 :(得分:1)

您可能会注意到GOOGLEFINANCE会在某些日期返回N / A,这是因为该日期是休息日(通常是周末),所以您可以做的是从指定日期开始最后的工作,例如2015年6月21日是星期日,因此您应该请求6月19日(星期五)的汇率,可以按照建议的here通过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)

答案 5 :(得分:0)

对于较大的电子表格,Google表格限制通常会随机显示以下错误:

  

错误功能INDEX参数2的值为2.有效值介于两者之间   0和1包括在内。   enter image description here

甚至在预期参数GOOGLEFINANCE(ticker,[attribute],[start_date],[end_date | num_days],[interval])之后修改Index()和GoogleFinance(),错误将继续。 解决方法是将较小的部分复制到新的电子表格中,但通常会失败。

作为替代方案,我使用ImportXML作为x-rates历史货币兑换数据的网络刮刀。

=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()更好地工作

ImportXML examples

The ImportXML Guide for Google Docs from beginner to advanced

答案 6 :(得分:-1)

其他选项正在使用this Google Sheets add-on中的CurrencyConverter函数。 它速度快,语法简单。例如,

=CurrencyConverter(100, "USD", "EUR", "2/28/2020")

返回91.09957183