Статьи » Обзоры
Добавить статью

Парсинг курса валют банка в Google таблицу

2020-10-12 в 23:20 (последнее изменение 2023-09-15 в 12:31)

Зачастую, при работе с Google таблицами появляется необходимость вносить в ячейки постоянно обновляющиеся данные. Причем руками. Будь то расчет стоимости, когда курс меняется ежедневно, если не ежечасно.

Поделюсь опытом автоматического обновления информации на примере парсинга куса валют с сайта банка. Важно чтобы ваш источник так же отдавал данную информацию.

У нас имеется адрес источника необходимых данный - https://www.nbrb.by/api/exrates/rates/cny?parammode=2.
Данные на данной страницы содержатся в формате JSON. В Google таблицах нет прямой формулы для извлечения какой-либо информации оттуда. Функция IMPORTXML тут работать не будет.

Поэтому самым простым, хоть и с костылями вариантом использование функции IMPORTDATA.
Имеем ссылку с данными в таком виде:

Код
=IMPORTDATA("https://www.nbrb.by/api/exrates/rates/cny?parammode=2")

В результате содержимое будет выведено из каждой строки источника в отдельную ячейку.

importdata google

Нас же интересует последняя ячейка F1. Именно в ней и содержится текущий курс.

Далее дело за малым. Из данной ячейки обрезать лишнее справа и слева. Так же необходимо уточнить разряд курса. Так как в примере мы парсим курс Китайского юаня, а в расчете в белорусские рубли он считает количество юаней за 10 рублей. Поэтому нужно будет еще поделить на 10, чтобы получить курс валюты за единицу рублей.

Важный момент!
Google таблицы не понимают точку как для числа, поэтому в формуле так же будем находить точку и менять на запятую. Способы форматирования ячейки тут не помогут. Ведь у нас результат формулы.

Вот что у нас получилось в итоге:

Код
=ПОДСТАВИТЬ(ПСТР('Парсинг курса'!F1;18;6);".";",")/10

Там где "Парсинг курса", меняйте на название своего листа где будет содержаться формула. Я так сделал в связи с тем что парсинг происходит на отдельном листе, дабы не вставлять лишнее на основном листе с расчетами. В листе "Парсинг курса" в ячейке А1 и содержится формула IMPORTDATA. Вы уже делайте как вам удобно.

UPD 15.09.23
Сайт Национального Банка Беларуси начал выдавать данные по другому адресу. И теперь нужно использовать запрос вида:

Код
=IMPORTDATA("https://api.nbrb.by/exrates/rates/eur?parammode=2")

 


Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте.
Так же у нас есть Telegram канал.
Вам понравился наш материал? Поделитесь с коллегами!

Просмотров: 3950. Оценка статьи: 4.0 из 5. Уже оценило 2 читателя

Об авторе - Администратор

More by Администратор

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
2019-01-17
2408