January 30, 2019

Получаем значение курса валют в Google Таблицах с помощью функции IMPORTXML

Как следует из названия функция IMPORTXML позволяет импортировать любые данные из xml файлов. Один из вариантов ее применения - импорт значений курсов валют - текущих или для конкретной даты/диапазона.

Я проверил работу функции на примере API двух банков - Приватбанка и ЦБ РФ.

Приватбанк

Текущее значение курса

XML файл с актуальным курсом находится по ссылке: https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=11

Данные из него нужно парсить при помощи языка запросов XPath

Формула:

IMPORTXML("https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=11";"//exchangerates/row[1]/exchangerate/@sale")

Получаем текущее значение USD. Прописав слева в ячейке А функцию TODAY получим отображение текущей даты.

Курс валют для даты или диапазона дат

Файл с архивными значениями находится по ссылке: https://api.privatbank.ua/p24api/exchange_rates?date=dd.mm.yyy,

где вместо dd.mm.yyyy необходимо подставить нужное значение даты. В данном случае это 30.01.2019. Конечная формула получения значения курса валют для даты

IMPORTXML("https://api.privatbank.ua/p24api/exchange_rates?date=30.01.2019; "//exchangerate[@currency='USD' and baseCurrency='UAH']/@saleRateNB")

Чтобы нужная дата автоматически подставлялась в формулу указываем в диапазон дат и используем функцию СЦЕПИТЬ (CONCATENATE). Для корректной работы формулы дату необходимо перевести в текстовый формат.

IMPORTXML(CONCATENATE("https://api.privatbank.ua/p24api/exchange_rates?date=";A2); "//exchangerate[@currency='USD' and @baseCurrency='UAH']/@saleRateNB")

ЦБ РФ

Ссылка для ежедневного значения

http://www.cbr.ru/scripts/XML_daily.asp

Формула имеет вид

IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""USD""]/Value")

Получаем данные для даты или диапазона

IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp?date_req=30/01/2019"; "//ValCurs/Valute[CharCode=""USD""]/Value")

Здесь также необходимо перевести дату в текстовый формат и обратить внимание на разделители.

На выходе получаем файл, в котором автоматически будут обновляться/добавляться данные о курсе валют.

Файл с примерами рабочих формул находится здесь