Я хотел бы знать, можно ли запросить прошлый обменный курс в Google Spreadsheet.
Например; использование формулы =GoogleFinance("CURRENCY:USDEUR")
вернет курс USD / EUR на данный момент. Как вы можете получить исторический курс?
Я хотел бы знать, можно ли запросить прошлый обменный курс в Google Spreadsheet.
Например; использование формулы =GoogleFinance("CURRENCY:USDEUR")
вернет курс USD / EUR на данный момент. Как вы можете получить исторический курс?
Чтобы получить исторический курс, вы должны использовать следующую формулу:
=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:
=GOOGLEFINANCE("CURRENCY:EURCHF", "price", A2)
не работает, если A2
- столбец с датами. Есть подсказка?
- person seralouk; 10.11.2020
A2
должна быть в формате даты ячейки, чтобы ее можно было правильно проанализировать. Пожалуйста, проверьте оба: формат даты и формат ячейки. Я только что пробовал 12/29/2019
и 2019-12-29
, и он работает, а 29.12.2019
- нет.
- person Mike B.; 11.11.2020
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")
Инструкции для всех, кто связан с 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)
Ответ Васима отличный, однако обратите внимание, если вы хотите, чтобы дата обмена была только в этот день, вы можете опустить диапазон и просто указать день, например следующий
= ФИЛЬТР (ИНДЕКС (GoogleFinance ("usdeur", "цена", сегодня ()) ,, 2), ИНДЕКС (GoogleFinance ("usdeur", "цена", сегодня ()) ,, 2) ‹>" Закрыть ")
Вы можете заметить, что 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)
Для больших таблиц ограничения 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 для Документов Google от новичка до продвинутого уровня
Другой вариант - использовать функцию CurrencyConverter
из этого надстройки Google Таблиц. Это быстро и имеет простой синтаксис. Например,
=CurrencyConverter(100, "USD", "EUR", "2/28/2020")
возвращает 91.09957183