Таблицы Google: Загружаем курсы валют с сайта ЦБ через функцию IMPORTXML

11 апреля 2022   Сергей Кикевич   Все авторы

Продолжаем тему загрузки курсов валют с сайта ЦБ. В прошлой статье на эту тему я рассказал об имеющихся вариантах по загрузки истории курса валют ЦБ через EXCEL. Аналог есть и для Таблиц Google (Google Sheets).

В EXCEL загрузка данных происходит через функцию ВЕБСЛУЖБА (WEBSERVICE), после чего данные необходимо отфильтровать с помощью ФИЛЬТР.XML (FILTERXML). Как мы описывали в стать, у функции ВЕБСЛУЖБА в EXCEL есть один важный недостаток – низкий параметр TimeOut, который к тому же не регулируется. Поэтому в EXCEL при работе с API Центрального банка возникают сложности, которые легко уладить с помощью макросов (VBA), но это уже программирование.

В Таблицах Google работает похожий механизм, но вместо связки функций ВЕБСЛУЖБА - ФИЛЬТР.XML есть одна функция IMPORTXML. Что важно, никаких проблем со слишком долгим ответом от API у этой функции нет.

Загрузка курсов валют через IMPORTXML

Функция IMPORTXML() имеет 3 параметра:

  • URL адрес запроса
  • фильтр на языке язык запросов XPath
  • кодировка

Последний параметр нужен только, если получается информация в экзотической кодировке.

Как мы уже знаем, запросы на REST API Центрального банка курсов валют имеют форму:

http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01.01.2022&date_req2=01.02.2022&VAL_NM_RQ=R01235

В получаемом ответе нам нужны только значения дат (фильтр XPath: "//@Date") для колонки «Дата» и курсов валют (фильтр XPath: "//Value") для колонки «Курс».

Загрузка истории официальных курсов валют с сайта ЦБ c помощью Таблиц Google

Пример таблицы Google с возможностью загрузки официальных курсов валют с сайта ЦБ доступен по ссылке.

ВНИМАНИЕ: Если шаблон вам понравился, скопируйте его себе. После этого вы можете использовать его без ограничения по своему усмотрению.

Пример загрузки истории официальных курсов валют с сайта ЦБ в Google Sheets

Комментарии ()

  1. Валя 14 сентября 2022, 16:29 # 0
    !!!
    1. Андрюша 03 мая 2023, 09:49 # 0
      А как отображать последний валидный курс? Например в СБ и ВС показывать за пятницу?
      1. Сергей 03 мая 2023, 11:22 # 0
        Да, всё верно. В субботу и воскресенье продолжает действовать курс ЦБ пятницы.
      наверх