Как можно запросить в GoogleFinance прошлый обменный курс в GoogleFinance?

Я хотел бы знать, можно ли запросить прошлый обменный курс в Google Spreadsheet.

Например; использование формулы =GoogleFinance("CURRENCY:USDEUR") вернет курс USD / EUR на данный момент. Как вы можете получить исторический курс?


person antr    schedule 16.12.2013    source источник


Ответы (7)


Чтобы получить исторический курс, вы должны использовать следующую формулу:

=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:

person Mike B.    schedule 21.12.2013
comment
Вы также можете создать столбец DATE и использовать его вместо today () - 1, today (), чтобы иметь исторические данные за этот день. - person celiker; 30.06.2015
comment
К вашему сведению, та же формула работает и для криптовалют: BTC, ETH, BHC и LTC. - person Paul Razvan Berg; 17.04.2020
comment
Следующий =GOOGLEFINANCE("CURRENCY:EURCHF", "price", A2) не работает, если A2 - столбец с датами. Есть подсказка? - person seralouk; 10.11.2020
comment
@seralouk, дата в A2 должна быть в формате даты ячейки, чтобы ее можно было правильно проанализировать. Пожалуйста, проверьте оба: формат даты и формат ячейки. Я только что пробовал 12/29/2019 и 2019-12-29, и он работает, а 29.12.2019 - нет. - person Mike B.; 11.11.2020
comment
это сводит меня с ума, потому что я тоже пробовал это. - person seralouk; 11.11.2020
comment
Проверьте формат ячейки: Format → Number → More Formats → More date and time formats, затем убедитесь, что предложенный формат даты, например YYYY-MM-DD фактически совпадает с форматом даты, используемым в A2. Также попробуйте воспроизвести ошибку в новой таблице. - person Mike B.; 11.11.2020

Пытаться,

=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")
person Vasim    schedule 16.12.2013
comment
Спасибо Васиму, последняя формула идеальна. Просто работает. Лучший - person antr; 16.12.2013

Инструкции для всех, кто связан с googlefinance, находятся здесь: https://support.google.com/docs/answer/3093281

Помните, что в настоящих формулах электронных таблиц Google используется точка с запятой (;) вместо запятой (,). После того, как замена на некоторых примерах будет выглядеть так:

Для 30-дневного ИНДЕКСА доллара США по сравнению с евро вы должны использовать (обратите внимание, что в случае валют они идут вместе в одной и той же первой переменной):

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

СОВЕТ. Вы можете получить график по всему размеру ячейки, просто изменив ИНДЕКС на СПАРКЛАЙН, например:

=SPARKLINE(GoogleFinance(USDEUR;"price";today()-30;today());2;2)
person DavidTaubmann    schedule 06.12.2014

Ответ Васима отличный, однако обратите внимание, если вы хотите, чтобы дата обмена была только в этот день, вы можете опустить диапазон и просто указать день, например следующий

= ФИЛЬТР (ИНДЕКС (GoogleFinance ("usdeur", "цена", сегодня ()) ,, 2), ИНДЕКС (GoogleFinance ("usdeur", "цена", сегодня ()) ,, 2) ‹>" Закрыть ")

person user56236    schedule 15.01.2016

Вы можете заметить, что GOOGLEFINANCE вернет N / A для некоторых дат, это потому, что дата - выходной (обычно выходные), вы можете получить последнюю работу с указанной даты, например. 21 июня 2015 года - воскресенье, поэтому вам следует запросить ставку на 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)
person odenwouldntbeoden    schedule 21.03.2019

Для больших таблиц ограничения Google Таблиц обычно случайным образом отображают следующую ошибку:

Ошибка. Значение параметра 2 INDEX функции равно 2. Допустимые значения: от 0 до 1 включительно. введите здесь описание изображения

Даже при изменении Index () и GoogleFinance () в соответствии с ожидаемыми параметрами GOOGLEFINANCE (тикер, [атрибут], [start_date], [end_date | num_days], [interval]) ошибка будет продолжаться. Обходной путь - скопировать более мелкие детали в новые таблицы, но часто это не удается.

В качестве альтернативы я использовал 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 ()

Примеры ImportXML

Руководство по ImportXML для Документов Google от новичка до продвинутого уровня

person Damodar Das    schedule 28.04.2018
comment
Эта ошибка связана с тем, что ваша дата находится в формате ДД / ММ / ГГГГ, а не ГГГГ / ММ / ДД. Измените формат даты или соответственно измените формулу ДАТА. - person Victor --------; 24.10.2018

Другой вариант - использовать функцию CurrencyConverter из этого надстройки Google Таблиц. Это быстро и имеет простой синтаксис. Например,

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

возвращает 91.09957183

person Serghei Gorodetki    schedule 13.04.2020