EXCEL: Загружаем курсы валют с сайта ЦБ

24 марта 2016   Сергей Кикевич   Все авторы

Приложение к статье:
файл для скачивания

В современных версиях EXCEL загрузку курсов валют через API лучше делать через встроенную функцию ВЕБСЛУЖБА (WEBSERVICE) или через макросы (VBA). Примеры такой загрузки описаны в статье:

EXCEL: Загружаем курсы валют с сайта ЦБ через функцию ВЕБСЛУЖБА или VBA.

Описываемый ниже способ загрузки курсов валют через Power Query и WebQuery подходит только для старых версий EXCEL (до 2016).


Продолжаем тему загрузки исторических данных из различных бесплатных баз. В прошлый раз мы говорили о простейшем способе подключения к Yahoo Finance: Загружаем исторические данные из Yahoo Fianance.

На этот раз расскажем о том, как загрузить котировки валют с сайта Центрального банка России, а заодно познакомился в EXCEL с двумя полезными инструментами Web Query и Power Query.

Сразу надо сказать, что возможности сайта Центробанка закрывают потребности инвестора (и спекулянта тоже) на 90%. Почему на 90%? На сайте ЦБ нет исторических данных по нерублёвым валютным парам, например, EUR/USD.

Готовый пример таблицы EXCEL, поддерживающей автоматическое скачивание курсов валют, можно загрузить по ссылке в конце статьи.

Последовательность шагов

Все скриншоты сделаны в EXCEL 2016.

Шаг 1

Итак, зайдя на сайт ww.cbr.ru мы сразу видим ссылки на курсы валют.

step1

Шаг 2

Мы попадаем на страницу баз данных валют. Далее нам в раздел, посвященный динамике курса заданной валюты.

step2

Шаг 3

Задаем параметры поиска: тип валюты, даты и тип выдачи данных (таблица):

step3

Шаг 4

В результатах нас интересует только адресная строка, копируем её в буфер (CTRL-C):

step4

Шаг 5

Открываем новый документ в EXCEL. Переходим на закладку Данные. Далее – Получение внешних данных / Из интернета:

step5

Шаг 6

Загружается встроенный браузер. Копируем в адресную строку ссылку, которую мы получили ранее на шаге 4 (Ctr-V), и снова видим таблицу с историей курсов валюты. Можно весь путь к таблице сделать и без использования внешнего браузера, но встроенный в EXCEL браузер работает на базе IE, что не очень удобно.

Единственное, что нам нужно здесь сделать, это нажать на кнопку «Сохранить запрос»:

step6

Шаг 7

Параметры WEB запроса (поэтому он называется WEB Query) сохраняем в файл с расширением .iqy

step7

Шаг 8

Открываем записанный файл в каком-либо текстовом редакторе, например, в Notepad. В строке запроса находим даты и код валюты (R01235 для доллара США):

step8

Шаг 9

Меняем эти значения на переменные и сохраняем изменения. Название переменных произвольное. Синтаксис переменной – [“Name”]:

step9

Шаг 10

Возвращаемся в EXCEL и готовим значения переменных, которые будут считываться при обращении к сайту ЦБ. Значение каждой переменной нужно разместить в отдельной ячейке на листе. Популярные коды валют: Доллар США - R01235, Евро - R01239, Юань - R01375. Код любой другой валюты можно узнать, сформировав новый запрос на сайте ЦБ.

Формат даты необходимо поменять на текстовый, т.к. по умолчанию EXCEL дата представляет собой пятизначное число. Делается это при помощи формулы =ТЕКСТ(B3;"ДД.ММ.ГГГГ"). В дальнейшем колонку «Переменные» можно скрыть.

step10

Шаг 11

Снова обращаемся к закладке «Данные», раздел «Существующие подключения». Выбираем «Найти другие …» и загружаем записанный файл в формате .iqy

step11a

step11b

Шаг 12

Выбираем отображение данных на новом листе.

step12

Шаг 13

Указываем ячейки, в которых находятся значения переменных. Выбираем «Использовать данное значение по умолчанию» и «Автоматически обновлять при изменении значения ячейки», если есть желание подгружать данные в автоматическом режиме:

step13

Шаг 14

На новом листе формируется таблица с котировками валюты. В принципе эти данные уже можно использовать, но на листе кроме таблицы присутствует много лишнего «мусора».

step14

Шаг 15

Для очистки данных нам поможет Power Query. В EXCEL 2016 раздел Power Query (Скачать и преобразовать) находится по соседству с «Получением данных» (вкладка данные). Нас интересует создание нового запроса из таблицы. При нажатии на «Из таблицы» должна быть активной страница с полученными данными.

step15

Шаг 16

Открывается диалог интерфейса Power Query. Для начала удаляем лишнюю колону. Для этого надо ее выделить и нажать «Удалить столбцы».

step16

Шаг 17

Далее убираем ненужную информацию, расположенную в верхних строках: «Удаление верхних строк». И указываем номер последней строки с мусором (26).

step17

Шаг 18

Теперь можно использовать верхнюю строку в качестве заголовка таблицы:

step18

Шаг 19

Выбираем колонку Дата и сортируем ее по убыванию (от новых дат к старым):

step19

Шаг 20

После сортировки становится понятно, что внизу таблицы тоже был «мусор». Чистим его по аналогии с шагом 17. Таблица начинает приобретать рабочий вариант.

Остается только выделить колонку Дата и указать для нее правильный формат:

step20

Шаг 21

Последний шаг – указать где должны отображаться очищенные данные:

step21

step21a

Таблица с новыми данными в удобном формате будет показана на новом листе. Теперь с этой информацией можно работать по своему усмотрению.

image98

Еще одним удобством использования Power Query является обратимость всех действий по преобразованию запроса. В любой момент можно вернуться к редактору запроса (Показать запросы). В правой части интерфейса расположена история редактирования запроса, куда всегда можно внести изменения и удалить действия.

image99

Для обновления данных в итоговой таблице нужно нажать «Обновить все» в закладке Данные:

image97

ВНИМАНИЕ

Автоматическая загрузка курса выбранной валюты теперь доступна через встроенные функции EXCEL (ВЕБСЛУЖБА). Подробнее о загрузки курса валют через API Центрального банка с помощью функции EXCEL и VBA: EXCEL: Загружаем курсы валют с сайта ЦБ через функцию ВЕБСЛУЖБА или VBA.

Файлы для скачивания

Файл: currency_cbr.zip
Размер: 161928 байт


Для скачивания файлов необходимо зарегистрироваться или авторизоваться


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

  1. Сергей 16 июня 2017, 06:21 # 0
    Поправка. Новая версия EXCEL не поддерживает создание файла с расширением .iqy из встроенного браузера (шаг 6). Вместо этого файл можно сделать в любом текстовом редакторе либо загрузить уже готовый у нас — в приложении к этой статье.
    1. Александр 26 февраля 2018, 10:44 # 0
      И зачем я сейчас это скачал? Данные за 2015 год. Или все ради регистрации на сайте?
      1. Сергей 26 февраля 2018, 11:19 # 0
        А вы не обратили внимание на дату статьи? Статья не для загрузки данных. А для того, чтобы научиться их загружать самостоятельно с сайта Центробанка в автоматическом режиме…
      2. Александр 26 февраля 2018, 11:21 # 0
        Именно для этого я скачал готовый файл, чтобы не повторять 21 шаг) ибо есть более простые способы взять значение курса с сайта ЦБ, но периодически съезжает форматирование таблицы, поэтому искал готовое решение.
        1. Сергей 26 февраля 2018, 11:42(Комментарий был изменён) # 0
          Давно уже не проверяли. Не работает шаблон? У ЦБ все время что-то меняется…
        2. Руслан 17 августа 2020, 08:42 # 0
          Шаг 13 не понимаю откуда берется введите значения переменных
          1. Сергей 18 августа 2020, 06:14 # 0
            Объяснено на шаге 10.
          2. Андрей 29 декабря 2021, 20:52 # 0
            Не работает ваш метод.
            И сайт ЦБР поменялся и «встроенный браузер» не открывается.
            На сайте ЦБР нашёл, где найти «Динамика официального курса заданной валюты».
            Ссылку скопировал.
            MS Office Standart 2019 сразу открывает форму для ввода ссылки.
            И вот в этой форме я вообще не могу разобраться.
            1. Сергей 10 марта 2022, 09:43(Комментарий был изменён) # 0
              В современных версиях EXCEL загрузку курсов валют через API лучше делать через встроенную функцию ВЕБСЛУЖБА (WEBSERVICE) или через макросы (VBA). Примеры такой загрузки описаны в статье «EXCEL: Загружаем курсы валют с сайта ЦБ через функцию ВЕБСЛУЖБА или VBA»:
              rostsber.ru/publish/stocks/currency_cbr_2022.html

              Оставьте комментарий

              наверх