Функция курса валюты в excel

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Еще…Меньше

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

Изображение преобразованной таблицы валюты с курсами обмена.

Примечание: Валютные пары доступны только для Microsoft 365 (клиенты с несколькими клиентами по всему миру).

Использование типа данных «Валюты» для расчета обменных курсов

  1. Введите валютную пару в ячейку, используя такой формат: Из валюты / В валюту с кодами валют ISO.

    Например, введите «ДОЛЛАР/ЕВРО», чтобы получить курс обмена от одного доллара США к евро.

  2. Выберем ячейки и выберите Вставить >таблицу. Создание таблицы не обязательно, но значительно упростит вставку данных из типа данных.

  3. Выбрав ячейки, перейдите на вкладку Данные и выберите тип данных Валюты.

    Если Excel обнаружит совпадение между валютной парой и поставщиком данных, текст преобразуется в тип данных, а в ячейке Значок связанной записи для акций значок Валюты.

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

  4. Чтобы извлечь дополнительные сведения из типа данных Валюты, выберите одну или несколько преобразованных ячеек и нажмите кнопку Вставить данные Кнопка "Добавить столбец" отобразить или нажать клавиши CTRL/CMD+SHIFT+F5.

  5. Вы увидите список всех доступных полей. Выберите поля, чтобы добавить новый столбец данных.

    Например, «Цена» представляет обменный курс для валютной пары, а время последней сделки — время, в течение которого курс был цитироваться.

  6. После того как у вас есть все необходимые данные о валюте, их можно использовать в формулахи вычислениях. Чтобы убедиться, что данные обновлены, перейдите в> Обновить все, чтобы получить обновленную кавычка.

    Внимание: Сведения о валюте предоставляются «как есть» и могут быть задержаны. Поэтому эти данные не следует использовать в целях торговли или советов. Дополнительные сведения см. всведениях об источниках данных. 

См. также

Типы данных «Акции» и «География» 

Написание формул, ссылаясь на типы данных

Функция ПОЛЕVALUE 

#FIELD! ошибка 

Нужна дополнительная помощь?

Я уже неоднократно разбирал способы импорта данных в Excel из интернета с последующим автоматическим обновлением. В частности:

  • В старых версиях Excel 2007-2013 это можно было сделать с помощью прямого веб-запроса.
  • Начиная с 2010 года это можно очень удобно делать с помощью надстройки Power Query.

К этим способам в последних версиях Microsoft Excel теперь можно добавить ещё один — импорт данных из интернета в формате XML с помощью встроенных функций.

XML (eXtensible Markup Language = Расширяемый Язык Разметки) – это универсальный язык, созданный для описания любых данных. По сути, он представляет собой обычный текст, но с добавленными в него специальными тегами для разметки структуры данных. Многие сайты совершенно бесплатно предоставляют всем желающим потоки своих данных в XML-формате для загрузки. На сайте Центрального Банка России (www.cbr.ru), в частности, с помощью подобной технологии отдаются данные по курсам различных валют. С сайта Московской Биржи (www.moex.com) таким же образом можно загрузить котировки акций, облигаций и множество другой полезной информации.

Начиная с версии 2013 в Excel появились две функции для прямой загрузки XML-данных из интернета в ячейки листа: ВЕБСЛУЖБА (WEBSERVICE) и ФИЛЬТР.XML (FILTERXML). Работают они в паре — сначала функция ВЕБСЛУЖБА выполняет запрос к нужному сайту и возвращает его ответ в формате XML, а затем с помощью функции ФИЛЬТР.XML мы «разбираем» этот ответ на составляющие, извлекая из него нужные нам данные.

Давайте рассмотрим работу этих функций на классическом примере – импорте курса любой нужной нам валюты на заданный интервал дат с сайта Центробанка России. В качестве заготовки будем использовать вот такую конструкцию:

Заготовка

Здесь:

  • В жёлтых ячейках находятся даты начала и окончания интересующего нас периода.
  • В синей сделан выпадающий список валют при помощи команды Данные — Проверка — Список (Data — Validation — List).
  • В зеленых ячейках мы будем использовать наши функции, чтобы создать строку запроса и получить ответ сервера.
  • Таблица справа — справочник по кодам валют (потребуется нам чуть позже).

Поехали!

Шаг 1. Формируем строку запроса

Чтобы получить от сайта требуемую информацию, его нужно правильно спросить. Заходим на www.cbr.ru и в подвале главной страницы открываем ссылку’ Технические ресурсы ’- Получение данных, используя XML (http://cbr.ru/development/SXML/). Проматываем чуть ниже и во втором примере (Example 2) будет то, что нам нужно — получение курсов валюты на заданный интервал дат:

Пример строки запроса

Как видно из примера, строка запроса должна содержать даты начала (date_req1) и окончания (date_req2) интересующего нас периода и код валюты (VAL_NM_RQ), курс которой мы хотим получить. Коды основных валют вы можете найти в таблице ниже:

Валюта

Код

                         

Валюта

Код

Австралийский доллар R01010

Литовский лит

R01435

Австрийский шиллинг

R01015

Литовский талон

R01435

Азербайджанский манат

R01020

Молдавский лей

R01500

Фунт стерлингов

R01035

Немецкая марка

R01510

Ангольская новая кванза

R01040

Нидерландский гульден

R01523

Армянский драм

R01060

Норвежская крона

R01535

Белорусский рубль

R01090

Польский злотый

R01565

Бельгийский франк

R01095

Португальский эскудо

R01570

Болгарский лев

R01100

Румынский лей

R01585

Бразильский реал

R01115

Сингапурский доллар

R01625

Венгерский форинт

R01135

Суринамский доллар

R01665

Гонконгский доллар

R01200

Таджикский сомони

R01670

Греческая драхма

R01205

Таджикский рубл

R01670

Датская крона

R01215

Турецкая лира

R01700

Доллар США

R01235

Туркменский манат

R01710

Евро

R01239

Новый туркменский манат

R01710

Индийская рупия

R01270

Узбекский сум

R01717

Ирландский фунт

R01305

Украинская гривна

R01720

Исландская крона

R01310

Украинский карбованец

R01720

Испанская песета

R01315

Финляндская марка

R01740

Итальянская лира

R01325

Французский франк

R01750

Казахстанский тенге

R01335

Чешская крона

R01760

Канадский доллар

R01350

Шведская крона

R01770

Киргизский сом

R01370

Швейцарский франк

R01775

Китайский юань

R01375

Эстонская крона

R01795

Кувейтский динар

R01390

Югославский новый динар

R01804

Латвийский лат

R01405

Южноафриканский рэнд

R01810

Ливанский фунт

R01420

Вон Республики Корея

R01815

Японская иена

R01820

Полный справочник по кодам валют есть там же, на сайте ЦБ – см. http://cbr.ru/scripts/XML_val.asp?d=0

Теперь сформируем строку запроса в ячейке на листе с помощью:

  • оператора склейки текста (&), чтобы собрать воедино;
  • функции ВПР (VLOOKUP), чтобы найти код нужной нам валюты в справочнике;
  • функции ТЕКСТ (TEXT), преобразующей дату по заданному шаблону день-месяц-год через косую черту.

Формируем строку запроса

="http://cbr.ru/scripts/XML_dynamic.asp?date_req1="&ТЕКСТ(B2;"ДД/ММ/ГГГГ")&
"&date_req2="&ТЕКСТ(B3;"ДД/ММ/ГГГГ")&"&VAL_NM_RQ="&ВПР(B4;M:N;2;0)

Шаг 2. Выполняем запрос

Теперь используем функцию ВЕБСЛУЖБА (WEBSERVICE) с созданной строкой запроса в качестве единственного аргумента. Ответом будет длинная строка XML-кода (лучше включить перенос по словам и увеличить размер ячейки, если хочется увидеть её целиком):

XML запрос функцией ВЕБСЛУЖБА в Excel

Шаг 3. Разбираем ответ

Чтобы легче было разобраться в структуре данных ответа, лучше воспользоваться одним из онлайн-парсеров XML (например, http://xpather.com/ или https://jsonformatter.org/xml-parser), которые умеют наглядно форматировать XML-код, добавляя к нему отступы и подсвечивая цветом синтаксис. Тогда всё станет существенно понятнее:

XML-ответ сервера ЦБ РФ

Теперь хорошо видно, что значения курса обрамлены у нас тегами <Value>…</Value>, а даты являются атрибутами Date в тегах <Record>.

Чтобы их извлечь курс, выделим на листе столбец из десяти (или более — если делать с запасом) пустых ячеек (т.к. был задан 10-дневный интервал дат) и введём в строку формул функцию ФИЛЬТР.XML (FILTERXML):

Извлекаем курс

Здесь первый аргумент – это ссылка на ячейку с ответом сервера (B8), а второй – строка запроса на XPath – специальном языке, с помощью которого можно обращаться к нужным фрагментам XML-кода и извлекать их. Подробнее о языке XPath можно почитать, например, тут.

Важно после ввода формулы нажать не Enter, а сочетание клавиш Ctrl+Shift+Enter, т.е. ввести её как формулу массива (фигурные скобки вокруг будут добавлены автоматически). Если же у вас последняя версия Office 365 с поддержкой в Excel динамических массивов, то хватит и простого Enter, да и выделять заранее пустые ячейки не требуется — функция сама займет столько ячеек, сколько ей нужно.

Для извлечения дат поступим аналогично – выделим несколько пустых ячеек в соседнем столбце и используем ту же функцию, но с другим запросом XPath, чтобы получить все значения атрибутов Date из тегов Record:

=ФИЛЬТР.XML(B8;»//Record/@Date»)

Теперь в будущем при изменении дат в исходных ячейках В2 и В3 или выборе другой валюты в выпадающем списке ячейки B3, наш запрос будет автоматически обновляться, обращаясь к серверу ЦБ за новыми данными. Чтобы форсировать обновление вручную, можно дополнительно использовать сочетание клавиш Ctrl+Alt+F9.

Ссылки по теме

  • Импорт курса биткойна в Excel через Power Query
  • Импорт курса валют из интернета в старых версиях Excel

Данный код (пользовательская функция) позволяет получить данные о курсе валюты с сайта Центробанка.

Данную функцию можно использовать и в виде формулы на листе Excel (см. пример во вложении)

Function GetRate(ByVal CurrencyName As String, ByVal RateDate As Date) As Double
    ' функция возвращает курс валюты CurrencyName на дату RateDate
    ' в случае ошибки (неверная дата или название валюты) возвращается 0
    On Error Resume Next
    CurrencyName = UCase(CurrencyName): If Len(CurrencyName) <> 3 Then Exit Function
    Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(RateDate, "dd/mm/yyyy")
 
    If xmldoc.Load(url_request) <> True Then Exit Function    ' Запрос к серверу ЦБР

    ' Обработка полученного ответа
    Set nodeList = xmldoc.selectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True)
    Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value
    Set nodeList = xmldoc.selectNodes("*/Valute")
    For i = 0 To nodeList.Length - 1    ' поиск нужной валюты
        Set xmlNode = nodeList.Item(i).CloneNode(True)
        If xmlNode.childNodes(1).Text = CurrencyName Then
            CurrencyRate = CDbl(xmlNode.childNodes(4).Text)
            divisor = Val(xmlNode.childNodes(2).Text)
            GetRate = CurrencyRate / divisor
            Exit Function
        End If
    Next
End Function
Sub ПримерИспользованияФункции_GetRate()
    MsgBox "Сегодня курс доллара к рублю составил " & GetRate("USD", Now), vbInformation
    MsgBox "А вчера курс евро к рублю был равен " & GetRate("EUR", Now - 1), vbInformation
End Sub

Поддерживается получение курсов рубля по отношению к следующим валютам:

AUD               Австралийский доллар
AZN               Азербайджанский манат
GBP               Фунт стерлингов Соединенного королевства
AMD               Армянский драм
BYR               Белорусский рубль
BGN               Болгарский лев
BRL               Бразильский реал
HUF               Венгерский форинт
DKK               Датская крона
USD               Доллар США
EUR               Евро
INR               Индийская рупия
KZT               Казахский тенге
CAD               Канадский доллар
KGS               Киргизский сом
CNY               Китайский юань
LVL               Латвийский лат
LTL               Литовский лит
MDL               Молдавский лей
NOK               Норвежская крона
PLN               Польский злотый
RON               Новый румынский лей
XDR               СДР (специальные права заимствования)
SGD               Сингапурский доллар
TJS               Таджикский сомони
TRY               Турецкая лира
TMT               Новый туркменский манат
UZS               Узбекский сум
UAH               Украинская гривна
CZK               Чешская крона
SEK               Шведская крона
CHF               Швейцарский франк
EEK               Эстонская крона
ZAR               Южноафриканский рэнд
KRW               Вон Республики Корея
JPY               Японская иена

Если вы желаете вывести информацию по всем валютам — используйте макрос ВывестиСегодняшниеКурсыВсехВалют:

Sub ВывестиСегодняшниеКурсыВсехВалют()
    On Error Resume Next
    Set xmldoc = CreateObject("Msxml.DOMDocument"): xmldoc.async = False
    url_request = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=" + Format(Now, "dd/mm/yyyy")
    If xmldoc.Load(url_request) <> True Then Exit Sub
    Set nodeList = xmldoc.selectNodes("ValCurs"): Set xmlNode = nodeList.Item(0).CloneNode(True)
    Set node_attr = xmlNode.Attributes(0): strDate = node_attr.Value
    Set nodeList = xmldoc.selectNodes("*/Valute")
    For i = 0 To nodeList.Length - 1
        Set xmlNode = nodeList.Item(i).CloneNode(True)
        Debug.Print "Курс " & xmlNode.childNodes(1).Text & " (установлен " & strDate & "): " & _
                    xmlNode.childNodes(4).Text & " рублей за " & xmlNode.childNodes(2).Text & _
                  " " & xmlNode.childNodes(3).Text
    Next
End Sub

Результат работы макроса ВывестиСегодняшниеКурсыВсехВалют:

Курс AUD (установлен 28/07/2010): 27,2968 рублей за 1 Австралийский доллар
Курс AZN (установлен 28/07/2010): 37,6342 рублей за 1 Азербайджанский манат
Курс BRL (установлен 28/07/2010): 17,1589 рублей за 1 Бразильский реал

Курс HUF (установлен 28/07/2010): 13,7407 рублей за 100 Венгерских форинтов
Курс DKK (установлен 28/07/2010): 52,7135 рублей за 10 Датских крон
Курс USD (установлен 28/07/2010): 30,2391 рублей за 1 Доллар США
Курс EUR (установлен 28/07/2010): 39,3139 рублей за 1 Евро

Курс CHF (установлен 28/07/2010): 28,6953 рублей за 1 Швейцарский франк
Курс EEK (установлен 28/07/2010): 25,1057 рублей за 10 Эстонских крон
Курс ZAR (установлен 28/07/2010): 41,1383 рублей за 10 Южноафриканских рэндов
Курс KRW (установлен 28/07/2010): 25,6003 рублей за 1000 Вон Республики Корея

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



Немного больше 60 лет прошло с момента изобретения первого компьютера и около 50 лет с первых шагов по созданию интернета. Сейчас практически у каждого в кармане лежит мини-компьютер (смартфон) с доступом в сеть, уже начали появляться машины без водителя, некоторые и вовсе собираются колонизировать Марс. При этом большинство наших слушателей (работников финансовой сферы) до сих пор воспринимают Excel как красивый калькулятор. Мы решили помочь вам развить навыки использования этого важного инструмента, сделать из него настоящего помощника, а не просто хранителя данных.

Сегодня предлагаем вам посмотреть, как можно подгрузить данные из сети Интернет непосредственно в таблицу Excel и обработать их (создать функцию выбора курса валют на необходимую дату).

Для чего может понадобиться эта возможность?

Если вам регулярно необходим курс Центрального Банка РФ, то функция «Загрузка курса с сайта ЦБ» позволит сэкономить много времени.

Разбиваем задачу на две части:

(1) Автоматизируем загрузку курсов валют за необходимый период с сайта Центрального Банка России

(2) Пишем небольшой скрипт, который создаст «Пользовательскую функцию» для выбора курса на дату и предоставит его вставку в ячейку

Хотите уметь делать так сами? Это не сложно…

Ознакомьтесь со следующими курсами по Excel от HOCK Training:



 

(1) Загрузка курсов

Для решения данной задачи воспользуемся стандартным малоизвестным функционалом Excel.

* оговорка о совместимости версий

⚠ Данный функционал приводится для версий MS Office до 2020 года выпуска. Отличие новых версий офиса состоит в том, что путь к странице с данными указывается строкой (копи-пастом из браузера), а не через встроенный браузер MS Excel. Остальные действия по разработке функции аналогичны приведённым в данной статье.

Подробный разбор алгоритма действий в более новых версиях офиса приведен в дистанционном курсе «Программирование в Excel».

(1.1) Линейка «Данные» —> «Получение внешних данных» —> «Из Интернета»:

Загрузка данных в Excel из Интернета

(1.2) В открывшемся внутреннем браузере Excel переходим на сайт ЦБ РФ и переходим на страницу с курсами:

Загрузка данных в Excel из Интернета

(1.3) Далее необходимо указать период для загрузки:

Загрузка данных в Excel из Интернета

(1.4) После получения данных нажмите кнопку «Импорт» и данные загрузятся в лист Excel 

ВАЖНО! 

Не забудьте перед этим поставить галочку в небольшом квадратике вверху страницы. На рисунке выше он зеленого цвета.

Загрузка данных в Excel из Интернета

При этом в Excel будут загружены данные:

Загрузка данных в Excel из Интернета

(1.5) Если все данные действия записать в виде макроса, то получим следующий скрипт в Visual Basic:

Макрос загрузки данных в Excel из Интернета

Обратите внимание на выделенные элементы кода. Если вносить в них изменения и запускать код на выполнение — будем получать курсы за нужный период. И не придется каждый раз повторять операции описанные выше в пунктах (1.1-1.4).

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

(2) Создание функции «Выбор курса на дату».

Используем возможности создания «Пользовательских функций» в редакторе Visual Basic:

(2.1) Создаем процедуру для обработки данных. Проверяем корректность работы программы на процедуре. Найденное значение курса записывается в переменную kurs (см листинг ниже).

Программа в Excel функции Выбор курса ЦБ на определенную дату

(2.2) Меняем процедуру на функцию:

Программа в Excel функции Выбор курса ЦБ на определенную дату

Скачать программу 

(2.3) Вставляем в ячейку на листе с данными нашу функцию (ищите её в категории «Определенные пользователем»):

Вставка в ячейку на листе с данными нашей пользовательской функции

Вставка в ячейку на листе с данными нашей пользовательской функции

(2.4) «Растягиваем» ячейку с формулой на необходимый нам диапазон стандартным образом:

Копирование ячейки с формулой в необходимый диапазон ячеек

Работает 😉


Подарок самым усидчивым за прочтение статьи про Excel


Только для дочитавших до конца статьи — наш подарок:

Бесплатный воркшоп «Как начать программировать в Excel, совершенно не зная языка Visual Basic»

95% слушателей отметили вебинар как «очень полезный»

Вам понадобится компьютер с Windows и MS Office




Если вы хотите разобраться в автоматизации MS Excel более подробно, обратите внимание на следующие полезные ресурсы:

Справочник по VBA для Excel
https://docs.microsoft.com/ru-ru/office/vba/api/overview/excel

Справочная система «Объектная модель (Excel)»
https://docs.microsoft.com/ru-ru/office/vba/api/overview/excel/object-model

Дистанционный курс HOCK Training «Программирование в Excel»
https://www.hocktraining.com/distancionny-excel-dlya-finansistov

Практический тренинг «Обработка и анализ данных в Excel»
https://www.hocktraining.com/open/obrabotka-i-analiz-dannikh-v-excel


Все блоги


Если Вам часто приходится в своих таблицах Excel использовать текущий курс валют — эта статья для вас. Приведенная ниже функция пользователя позволяет получить курс валюты на заданную дату.

'---------------------------------------------------------------------------------------
' Procedure : КурсЦБР
' DateTime  : 15.09.2013 23:11
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : http://www.excel-vba.ru/chto-umeet-excel/poluchit-kurs-valyut-ot-sberbanka/
'---------------------------------------------------------------------------------------
Function КурсЦБР(Optional ТипВалюты As String, Optional ByVal Дата As String) As Double
    'раскомментировать, если необходимо обновление при любом изменении на листе
    'Application.Volatile True
    Dim sRequest As String, sReqRes As String, sRes As String
    Dim sDay As String, sMonth As String, sYear As String
    Dim lPos As Long, lLastPos As Long, lDel As Long, oHttp
 
    If IsMissing(ТипВалюты) Or ТипВалюты = "" Then ТипВалюты = "USD"
    If IsMissing(Дата) Or Дата = "" Then Дата = Now
    If Not IsDate(Дата) Then Дата = CDate(Дата)
 
    sDay = Format(Дата, "dd"): sMonth = Format(Дата, "mm"): sYear = Format(Дата, "yyyy")
    sRequest = "http://cbr.ru/currency_base/daily.aspx?C_month= " & _
             sMonth & "&C_year=" & sYear & "&date_req=" & sDay & "%2F" & _
             sMonth & "%2F" & sYear
    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err <> 0 Then
        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    End If
    If oHttp Is Nothing Then Exit Function
    oHttp.Open "GET", sRequest, False
    oHttp.Send
    sReqRes = Replace(oHttp.responseText, vbNewLine, "")
    sReqRes = Replace(sReqRes, Chr(10), "")
    sReqRes = Replace(sReqRes, " ", "")
    lPos = InStr(1, sReqRes, UCase(ТипВалюты) & "</td>", 1)
    lPos = InStr(lPos, sReqRes, "<td>", 1) + 4
    lLastPos = InStr(lPos, sReqRes, "</td>", 1)
    lDel = Mid(sReqRes, lPos, lLastPos - lPos)
    lPos = InStr(lLastPos + 10, sReqRes, "<td>", 1) + 4
    lLastPos = InStr(lPos, sReqRes, "</td>", 1) - 4
    sRes = Mid(sReqRes, lPos, 7)
    sRes = sRes / lDel
    Set oHttp = Nothing
    sRes = Replace(sRes, ",", Mid(1 / 2, 2, 1))
    КурсЦБР = sRes
End Function

Синтаксис функции:
=КурсЦБР(A1;B1)
=КурсЦБР(«EUR»;»12.09.2013″)
=КурсЦБР(«EUR»)
=КурсЦБР()
ТипВалюты(A1) — Необязательный аргумент. Ссылка на ячейку или текстовое обозначение валюты. Если не указан — возвращает курс доллара. Некоторые из доступных валют:

Дата(B1) — необязательный аргумент. Ссылка на ячейку с датой либо непосредственно дата. Если не указан, то используется текущая дата.

Аргументы и методы их указания полностью идентичны аргументам в первом варианте функции:
ТипВалюты(A1) — Необязательный аргумент. Ссылка на ячейку или текстовое обозначение валюты. Если не указан — возвращает курс доллара.
Дата(B1) — необязательный аргумент. Ссылка на ячейку с датой либо непосредственно дата. Если не указан, то используется текущая дата.

Содержание

    • 0.1 Способ 1. Простой веб-запрос для текущего курса валют
    • 0.2 Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат
    • 0.3 Ссылки по теме
      • 0.3.1 Как получить курс валют в excel с сайта?
      • 0.3.2 Получить в Excel данные с сайта
    • 0.4 Создание связей между рабочими книгами
    • 0.5 Прежде чем создавать связи между таблицами
    • 0.6 Обновление связей
    • 0.7 Разорвать связи в книгах Excel
  • 1 Зачем это нужно?
  • 2 Настройка XLS файла
  • 3 Что дальше?

В старых версиях Excel подобная задача требовала неслабых ухищрений и для многих сайтов была вообще нереализуема. Начиная с версии Excel 2003 все сводится к нескольким щелчкам мышью.

Способ 1. Простой веб-запрос для текущего курса валют

Выберите в меню Данные — Импорт внешних данных — Создать веб-запрос (Data — Import external data — Web-query) или в Excel 2007/2010 нажмите кнопку Из веба (Web) на вкладке Данные (Data).

В появившемся окне в строку Адрес (Address) введите URL сайта, с которого будет браться информация (например и нажмите Enter.

как в excel сделать привязку к курсу

Когда страница загрузится, то на таблицах, которые Excel может импортировать, появятся черно-желтые стрелки. Щелчок по такой стрелке помечает таблицу для импорта.

Когда все необходимые таблицы помечены — нажмите кнопку Импорт (Import) внизу окна. Спустя некоторое время, нужное для загрузки данных, содержимое импортируемых таблиц появится в ячейках на листе:

как в excel сделать привязку к курсу

Для дополнительной настройки можно щелкнуть по любой из этих ячеек правой кнопкой мыши и выбрать в контекстном меню команду Свойства диапазона (Data range properties). В этом диалоговом окне, при желании, возможно настроить периодичность обновления и другие параметры:

как в excel сделать привязку к курсу

Котировки акций, т.к. они меняются каждые несколько минут, можно обновлять почаще (флажок Обновлять каждые N мин.), а вот курсы валют, в большинстве случаев, достаточно обновлять раз в день (флажок Обновление при открытии файла).

Обратите внимание, что весь импортированный диапазон данных воспринимается Excel как единое целое и получает собственное имя (в нашем примере это будет www.cbr.ru)

Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат

Этот способ представляет собой слегка модернизированный первый вариант и дает пользователю возможность получать курс нужной валюты не только на текущий день, но и на любую другую интересующую дату или интервал дат. Для этого наш веб-запрос надо превратить в параметрический, т.е. добавить к нему два уточняющих параметра (код нужной нам валюты и текущую дату). Для этого делаем следующее:

1. Создаем веб-запрос (см. способ 1) к странице сайта Центробанка России с архивом курсов:

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

как в excel сделать привязку к курсу

3. Жмем кнопку Получить данные и через пару секунд видим таблицу с нужными нам значениями курса на заданном интервале дат. Прокручиваем полученную таблицу вниз до упора и помечаем ее для импорта, щелкнув по черно-желтой стрелке в левом нижнем углу вебстраницы (только не спрашивайте почему эта стрелка находится там, а не рядом с таблицей — это вопрос к дизайнерам сайта).

Теперь ищем в правом верхнем углу окна кнопку с дискетой Сохранить запрос (Save Query) и сохраняем файл с параметрами нашего запроса в любую подходящую папку под любым удобным именем — например в Мои документы под именем cbr.iqy.  После этого окно веб-запроса и весь Excel можно пока закрыть.

4. Открываем папку, куда сохранили запрос и ищем файл запроса cbr.iqy, затем щелкаем по нему правой кнопкой мыши — Открыть с помощью — Блокнот (или выбрать его из списка — обычно это файл Notepad.exe из папки C:Windows). После открытия файла запроса в Блокноте должны увидеть примерно следующее:

как в excel сделать привязку к курсу

Самое ценное здесь — строка с адресом и параметры запроса в ней, которые мы будем подставлять — код нужной нам валюты (выделено красным) и конечная дата, которую мы заменим на сегодняшнюю (выделено синим). Аккуратно редактируем строку, чтобы получилось следующее:

Все остальное оставляем как есть, сохраняем и закрываем файл.

5. Создаем новую книгу в Excel, открываем лист, куда хотим импортировать архив курсов ЦБ. В любую подходящую ячейку вводим формулу, которая даст нам текущую дату в текстовом формате для подстановки в запрос:

=ТЕКСТ(СЕГОДНЯ();»ДД.ММ.ГГГГ»)

или в английской версии

=TEXT(TODAY(),»dd.mm.yyyy»)

Куда-нибудь рядом вводим код нужной нам валюты из таблицы:

Валюта

Код   

Доллар США

R01235

Евро

R01239

Фунт стерлингов

R01035

Японская иена

R01820

Нужный код также можно подсмотреть в строке запроса прямо на сайте ЦБ.

6. Загружаем данные на лист, используя в качестве основы созданные ячейки и файл cbr.iqy, т.е. идем в меню Данные — Импорт внешних данных — Импортировать данные (Data — Import External Data — Import Data) в Excel 2003 или на вкладку Данные — подключения — Найти другие (Data — Existing Connections) в Excel 2007-2010. В открывшемся окне выбора источника данных находим и открываем файл cbr.iqy. Перед импортом Excel уточнит у нас три момента.

Во-первых, куда импортировать таблицу с данными:

как в excel сделать привязку к курсу

Во-вторых, откуда брать код валюты (можно установить флажок Использовать данное значение по умолчанию (Use this value/reference for future refreshes), чтобы не указывать потом каждый раз эту ячейку при обновлениях и флажок Автоматически обновлять при изменении значения ячейки (Refresh automatically when cell value changes):

как в excel сделать привязку к курсу

В-третьих, из какой ячейки брать конечную дату (тут также можно установить оба флажка, чтобы завтра не пришлось задавать эти параметры вручную при обновлении):

как в excel сделать привязку к курсу

Жмем ОК, ждем пару секунд и получаем полный архив курса нужной валюты на листе:

как в excel сделать привязку к курсу

Как и в первом способе, щелкнув правой кнопкой мыши по импортированным данными и выбрав команду Свойства диапазона (Data range properties), можно настроить частоту обновления При открытии файла (Refresh on file open). Тогда при наличии доступа к интернету данные будут автоматически обновляться каждый день, т.е. таблица будет самостоятельно дополняться новыми данными.

Вытаскивать из нашей таблицы курс за нужную дату проще всего с помощью функции ВПР (VLOOKUP) — если вы с ней не знакомы, то очень советую сделать это. Вот такой формулой, например, можно выбрать из нашей таблицы курс доллара за 10 января 2000 года:

как в excel сделать привязку к курсу

или в англоязычном варианте =VLOOKUP(E5,cbr,3,1)

где

  • E5 — ячейка, где лежит заданная дата
  • cbr — имя диапазона данных (автоматически создается при импорте и обычно совпадает с именем файла запроса)
  • — порядковый номер столбца в нашей таблице, откуда мы берем данные
  • — аргумент, включающий для функции ВПР приблизительный поиск, чтобы можно было находить курсы и для тех промежуточных дат, которые фактически не присутствуют в столбце А (будет браться ближайшая предыдущая дата и ее курс). Подробнее про приблизительный поиск с помощью функции ВПР можно понятно почитать тут.

Ссылки по теме

  • Макрос для получения курса доллара на заданную дату в текущей ячейке
  • Функция надстройки PLEX для получения курса доллара, евро, гривны, фунта стерлингов и т.д. на любую заданную дату
  • Вставка курса любой валюты на любую дату в надстройке PLEX

Я конечно слышал, что встроенными инструментами Excel, можно забирать данные с сайтов, точнее с веб-страниц. Но руки не доходили, пока не пришлось решать реальные задачи, как вывести курс валют в Excel. А задача была простая вывести данные по курсу бакса, евро и юаня на настоящий момент. Взялся, разобрался, рассказываю.

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

Как получить курс валют в excel с сайта?

Предварительно найдите сайт откуда вы будете забирать данные. У меня курсы нужных валют настроены в Яндексе, но удобнее всего получить из табличной части сайта копируем этот адрес сайта и переходим:

Данные — Получить внешние данные — из Веба

Вставляем адрес сайта в адресную строку. IE может предложить использовать сценарии — отказываемся. Видим желтые стрелочки — жмем на нужную таблицу, которую хотим импортировать (первая картинка). Она станет зеленой

Ищем в правом нижнем углу — кнопку Импорт — кликаем. Появляется окно Импорт данных. Жмем свойства и добавляем галочку «обновление при открытии» — ок. Выбираем нужный диапазон — ок

Все, данные загрузились, они будут обновляться в фоновом режиме и при открытии данных.

К сожалению, если импорт возвращает ошибку «этот запрос не возвращает данные», в 90% случае вернуть данные не удастся.

Теперь на отдельном листе делаем красивые курсы валют и расчеты.

Неплохо получилось!

Пример можно скачать здесь.

Получить в Excel данные с сайта

Как вы поняли, так можно получить любые данные из интернета, будь то рейтинг нового фильма и температуру на улице.

Я например, еще сделал неплохой файл для себя где отобрал показатели, которые я часто проверяю. Удобно — все в одном месте.

Что еще?

Само собой можно придумать конструкцию с OpenXML или параметрический запрос. Но так же гораздо проще, согласитесь?:)

Внимательно следите за импортируемыми датами и временем! Очень часто эксель неверно воспринимает формат таких данных. Как быстро их перевести читайте здесь.

Само собой умельцы пишут много парсеров (программки для собирания данных по нескольким сайтам). Кому надо — пишите в комментарии, что-нить разыщу дельное!

Что логично, можно сделать и обратный обмен. Из таблицы в файле передавать данные при их изменении на сайт. Но это уже другая статья!

Поделитесь нашей статьей в ваших соцсетях:

(Visited 11 329 times, 2 visits today)

Связь между таблицами Excel – это формула, которая возвращает данные с ячейки другой рабочей книги. Когда вы открываете книгу, содержащую связи, Excel считывает последнюю информацию с книги-источника (обновление связей)

Межтабличные связи в Excel используются для получения данных как с других листов рабочей книги, так и с других рабочих книг Excel. К примеру, у вас имеется таблица с расчетом итоговой суммы продаж. В расчете используются цены на продукт и объем продаж. В таком случае имеет  смысл создать отдельную таблицу с данными по ценам, которые будут подтягиваться с помощью связей первой таблицы.

Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенную в скобки [], имя листа с восклицательным знаком на конце и ссылку на ячейку.

Создание связей между рабочими книгами

  1. Открываем обе рабочие книги в Excel
  2. В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+С)
  3. Переходим в конечную книгу, щелкаем правой кнопкой мыши по ячейке, куда мы хотим поместить связь. Из выпадающего меню выбираем Специальная вставка
  4. В появившемся диалоговом окне Специальная вставка выбираем Вставить связь.

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

Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.

Прежде чем создавать связи между таблицами

Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:

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

Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.

Избегайте циклические ссылки. Циклические связи – когда две рабочие книги содержат ссылки друг на друга – могут быть причиной медленного открытия и работы файла.

Обновление связей

Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи.

В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Обновить.

Разорвать связи в книгах Excel

Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.

Перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.

О чем здесь?

Привязки колонки цен к валюте в прайс-листе Excel и настройка автоматического обновления курса

Зачем это нужно?

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

Сейчас мы настроим свой прайс лист в Excel так, что нам не придется больше думать об обновлении курсов.

Настройка XLS файла

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

как в excel сделать привязку к курсу

Перейдите во вкладку «Данные» и выберите в ней Получить внешний данные — Из Веба:

как в excel сделать привязку к курсу

У меня открылась страница www.yandex.ru, вы можете выбрать любую другую (например сайт Центробанка), главное, чтобы на ней был курс необходимой валюты. Щелкните по значку с черной стрелкой на желтом фоне и нажмите кнопку «Импорт»:

как в excel сделать привязку к курсу

Укажите ячейку, в которую следует поместить данные из веба:

как в excel сделать привязку к курсу

Дождитесь, пока данные загрузятся и найдите ячейку с валютой (у меня они оказались на 83 строке):

как в excel сделать привязку к курсу

Нажмите правой кнопкой мыши и выберите пункт «Свойства диапазона данных»:

как в excel сделать привязку к курсу

Укажите интервал обновления или дайте команду курсу обновляться каждый раз, когда открываете файл.

Теперь осталось умножить колонку с нашими ценами на курс. Но что делать, если в ячейке содержаться текстовые символы валюты, например руб. 61,8457 как на cbr.ru? Для этого нам понадобится функция ПСТР:

 =ПСТР(Лист1!B48;6;10) 

Где: Лист1!B48 — ячейка с курсом; 6 — количество символов, которые нужно «отрезать» от начала строки; 10 — количество знаков, которое следует извлечь из текста.

Все что, что нужно теперь — это создать новую колонку в которой умножить цену в у.е. на курс. Теперь ваши цены автоматически обновляются в xls прайсе и могут за несколько минут попасть в интернет магазин.

Что дальше?


КУРС

EXCEL ACADEMY

Научитесь использовать все прикладные инструменты из функционала MS Excel.

По сети уже лет 300 гуляет инструкция, рассказывающая о том, как забрать курс валют с сайта Центробанка. Инструкция, в принципе, рабочая, но за 300 лет сайт ЦБ прилично изменился, да и технология web-разработки шагнули далеко вперёд, поэтому не всегда можно получить желаемые таблички с определённых ресурсов.

Но курсы доллара и евро по-прежнему легко добываются. Давайте начнём именно с них.

Если у вас Microsoft Office 2019 Professtional Plus или Microsoft Office 2013, скачайте Power Query в качестве надстройки с официального сайта.

Тогда вы получите вкладку Power Query на ленте.

Power Query в excel

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

настройка получения данных из интернета

Вводим адрес сайта Центробанка: https://cbr.ru

выбор сайта и просмотрщика

В открывшемся окошке можно менять вид просмотрщика.

Представление таблицы – это сортировка одних лишь таблиц (что, по идее, нам и нужно).

просмотр данных

Веб-представление подойдёт в тех случаях, когда вам нужно полазать по сайту и проверить, что там Power Query вообще обнаружил. Предупреждаем, что веб-представление – это не браузер, сёрфить тут не разрешают, лишь визуально представлять себе результаты импорта. Даже кукисы принять не сможете…

Мы же выбираем Table 0, которая на просмотрщике отображается как нужная табличка с курсами валют, и нажимаем «Преобразовать данные».

преобразование данных

Миссия выполнена! Конечно, мы можем перейти на вкладку «Главная» и нажать «Закрыть и загрузить в», указав вариант «Таблица», но лучше всего учесть вероятность будущих вычислений.

Если вы захотите применить к этой табличке банальное вычитание или сложение, то разживётесь ошибкой «ЗНАЧ». Она вылезает тогда, когда имеются неточности с форматами. Поэтому давайте сразу в запросе зададим нужный формат ячеек, а именно – валюту.

Кликаем по иконке ABC в заголовке столбца и выбираем тип «Валюта». Повторяем операцию в соседнем столбце.

настройка выгружаемых данных

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

А вот теперь с чистой совестью переходим на главную вкладку, «Закрыть и загрузить в», после чего указываем таблицу.

таблица с динамическими курсами валют в excel

Можем проверить себя и произвести какие-нибудь вычисления, к примеру, вычитание, чтобы узнать разницу курсов за пару дней.

Во-первых, нам достаётся корректный результат и, во-вторых, благодаря преимуществам умных таблиц, этот самый результат протягивается вниз.

Наконец, если в ваших расчётах постоянно участвует курс доллара или евро, и вам требуется обновлять его, ссылаясь на импортированные ячейки, то повторять все эти шаги больше не нужно – достаточно кликнуть правой кнопкой мыши на таблицу в Excel и выбрать «Обновить». Либо вы можете нажать на значок в панели подключений, ну или на вкладке «Данные».

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


КУРС

EXCEL ACADEMY

Научитесь использовать все прикладные инструменты из функционала MS Excel.

Блог SF Education

Uncategorized

О курсе “Power BI и Power Query: аналитика и визуализация данных”

Power BI и Power Query – обучающий курс по работе с Power BI и Power Query. На курсе студенты обучаются формировать, обрабатывать и визуализировать бизнес-данные,…

Tableau vs Power BI

Статья доступна в аудиоверсии Как же приятно осознавать, что мы не только обучаем Вас, дорогие студенты, но и развиваемся сами! Мы запустили новый курс…

Импорт курса валют из интернета

​Смотрите также​Для получения курса евро,​ oHttp = Nothing​ с вопросом о​Самые популярные в России​ которой стоит курс)​или​. В появившемся окне​ (последовательность действий одинакова​

Способ 1. Простой веб-запрос для текущего курса валют

​E5​​ архив курса нужной​​в Excel 2007-2010.​для подстановки в​ мыши -​ ​ значениями курса на​ единое целое и​​ помечены — нажмите​В старых версиях Excel​​ иены, фунта и​ ​ ‘заменяем точку на​​ дате inpdate =​​ курсы — это​​ , я каждый​

​Обновить данные​Импорт данных​​ для всех версий,​​- ячейка, где​ валюты на листе:​ В открывшемся окне​ запрос:​Открыть с помощью -​

webquery11.png

​ заданном интервале дат.​ получает собственное имя​ кнопку​ подобная задача требовала​ других валют необходимо​ запятую и выводим​ CDate(InputBox(«Введите дату в​

​ курсы валют.​ раз прописывала это​вручную.​​Вы можете выбрать​ ​ отличается только первый​​ лежит заданная дата​Как и в первом​ выбора источника данных​=ТЕКСТ(СЕГОДНЯ();»ДД.ММ.ГГГГ»)​ Блокнот​ Прокручиваем полученную таблицу​

webquery12.png

​ (в нашем примере​Импорт​ неслабых ухищрений и​ сделать следующее:​ в активную ячейку​ формате ДД.ММ.ГГГГ», _​​Правда, на них​ ​ вручную.. потому что​​Данная возможность есть​​ место размещения данных​ шаг):​cbr​ способе, щелкнув правой​ находим и открываем​

webquery13.png

​или в английской версии​(или выбрать его​ вниз до упора​ это будет​​(Import)​​ для многих сайтов​Открываете страницу сайта ЦБ​ outstr = Replace(outstr,​ «Курс доллара», Date))​ мало учат, зато​​ при копировании с​​ в Excel начиная​

​ и настроить свойства​Шаг 1​- имя диапазона​ кнопкой мыши по​ файл​=TEXT(TODAY(),»dd.mm.yyyy»)​ из списка -​​ и помечаем ее​​www.cbr.ru​

Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат

​внизу окна. Спустя​ была вообще нереализуема.​ со списком валют,​ «,», «.») ActiveCell.Value​ ‘разбираем дату на​ много наказывают.​ помощью ctrl ячейка​ с версии 2003.​ диапазона (это можно​. Для​ данных (автоматически создается​ импортированным данными и​cbr.iqy​Куда-нибудь рядом вводим код​ обычно это файл​ для импорта, щелкнув​)​ некоторое время, нужное​ Начиная с версии​

​ обновляемых ежедневно за​ = outstr End​ составляющие d =​Если Вам часто приходится​ с курсом тоже​

​Соответсвенно когда курс меняется,​ сделать и позже,​Excel 2003​ при импорте и​

webquery14.png

​ выбрав команду​​. Перед импортом Excel​​ нужной нам валюты​Notepad.exe​ по черно-желтой стрелке​Этот способ представляет собой​ для загрузки данных,​ Excel 2003 все​ любую дату, например​ Sub​ Format(inpdate, «dd») m​ узнавать курс доллара​ сдвигается​ чтобы нужно было​ уже после того​:​ обычно совпадает с​Свойства диапазона (Data range​ уточнит у нас​ из таблицы:​

​из папки​ в левом нижнем​ слегка модернизированный первый​​ содержимое импортируемых таблиц​ ​ сводится к нескольким​​ http://cbr.ru/currency_base/daily.aspx?C_month=10&C_year=2012&date_req=01.10.2012. ​Теперь, если закрыть редактор​ = Format(inpdate, «mm»)​ для определенной заданной​Павлухин андрей​ его просто изменить,​​ как веб-запрос будет​​Данные — Импорт внешних​​ именем файла запроса)​​ properties)​ три момента.​Валюта​C:Windows​

​ углу вебстраницы (только​ вариант и дает​ появится в ячейках​​ щелчкам мышью.​​Открываем исходный HTML-код запрошенной​ Visual Basic и​ y = Format(inpdate,​​ даты в прошлом​: Если значения во​​ а автоматом пересчитает​ сформирован и данные​ данных — Создать​​3​​, можно настроить частоту​​Во-первых, куда импортировать таблицу​​Код​). После открытия файла​ не спрашивайте почему​ пользователю возможность получать​

webquery15.png

​ на листе:​Выберите в меню​ страницы (правой кнопкой​ вернуться в Excel,​ «yyyy») ‘формируем строку​ (даты заказа или​ всех столбцах, которые​ всё. Спасибо.​ будут на листе).​ Веб запрос​- порядковый номер​ обновления​ с данными:​

​Доллар США​

​ запроса в Блокноте​ эта стрелка находится​ курс нужной валюты​

​Для дополнительной настройки можно​Д​ по веб-странице -​ то через меню​ для веб-запроса sURI​ поставки, например), то​ необходимо умножать на​Всеволод коваленко бик​​ Нажимаем​​Для​ столбца в нашей​

​При открытии файла (Refresh​

​Во-вторых, откуда брать код​

​R01235​

​ должны увидеть примерно​ там, а не​ не только на​

​ щелкнуть по любой​

​анные — Импорт внешних​

​ команда​

​Сервис — Макрос -​

​ = «http://cbr.ru/currency_base/daily.aspx?C_month=» &​

​ этот макрос сэкономит​

​ курс изменяться не​

​: Ставишь в ячейку​

​ОК​

​Excel​

​ таблице, откуда мы​ on file open)​ валюты (можно установить​Евро​

​ следующее:​ рядом с таблицей​ текущий день, но​ из этих ячеек​ данных — Создать​Просмотр HTML-кода​​ Макросы,​ m & «&C_year=»​ вам много времени.​ ​ будут, то необходимо​ А1 курс доллара.​и… готово!​​2007​ берем данные​​. Тогда при наличии​ флажок​ ​R01239​​Самое ценное здесь -​ — это вопрос​ и на любую​ правой кнопкой мыши​ веб-запрос​​в IE или​​или нажав ALT+F8,​ _ & y​ Вместо похода в​

​ в каждую ячейку​В нужной ячейке​

webquery16.png

​Получилась вот такая​:​1​​ доступа к интернету​Использовать данное значение по​ ​Фунт стерлингов​ строка с адресом​​ к дизайнерам сайта).​ другую интересующую дату​ и выбрать в​(Data — Import external​​ что-то похожее в​ можно запустить наш​ ​ & «&date_req=» &​ архивы ЦБР достаточно​​ столбцов дописать умножение​

webquery17.png

​ пишешь​ таблица:​Данные — Из Веба​- аргумент, включающий​ данные будут автоматически​ умолчанию​R01035​ и параметры запроса​

webquery18.png

​Теперь ищем в правом​​ или интервал дат.​​ контекстном меню команду​ data — Web-query)​ других браузерах)  и​ макрос​

webquery19.png

​ d & «%2F»​ будет его запустить.​ на абсолютную ячейку​=​Excel сам создал​​Для​ для функции ВПР​​ обновляться каждый день,​(Use this value/reference for​​Японская иена​ в ней, которые​​ верхнем углу окна​ Для этого наш​Свойства диапазона​или в Excel​ ищем обозначение необходимой​GetDollar​ & m &​

​Откройте редактор Visual Basic,​ с курсом, например:​Затем щелкаешь мышкой​ именованый диапазон и​​Excel​ ​ приблизительный поиск, чтобы​​ т.е. таблица будет​ future refreshes)​R01820​ мы будем подставлять​ кнопку с дискетой​ веб-запрос надо превратить​(Data range properties)​ 2007/2010 нажмите кнопку​ валюты, например USD.​, ввести в появившееся​

webquery21.png

​ «%2F» & y​ нажав ALT+F11 или​

​ в ячейке вводите​

  • ​ на А1 и​​ теперь, даже если​2010​
  • ​ можно было находить​​ самостоятельно дополняться новыми​, чтобы не указывать​Нужный код также можно​ — код нужной​Сохранить запрос​
  • ​ в параметрический, т.е.​​.​Из веба​Считаем на сколько символов​ окно дату и​
  • ​ ‘делаем запрос On​​ выбрав в меню​ =38000*$A$1, где $A$1​ нажимаешь F4, затем​ Вы внесете какую-то​:​ курсы и для​ данными.​ потом каждый раз​ подсмотреть в строке​ нам валюты (выделено​(Save Query)​ добавить к нему​В этом диалоговом​(Web)​ в исходнике от​

planetaexcel.ru

Курсы валют из интернета онлайн

​ получить курс доллара​ Error Resume Next​Сервис — Макрос -​ — ячейка с​*​ информацию в ячейки​Данные — Из интернета​ тех промежуточных дат,​Вытаскивать из нашей таблицы​ эту ячейку при​ запроса прямо на​ красным) и конечная​и сохраняем файл​ два уточняющих параметра​
​ окне, при желании,​​на вкладке​​ аббревиатуры валюты отстоит​​ для заданной даты​​ Set oHttp =​ Редактор Visual Basic​ курсом.​

​и щелкаешь на​​ этого диапазона, она​ ​Шаг 2​​ которые фактически не​​ курс за нужную​
​ обновлениях и флажок​​ сайте ЦБ.​ ​ дата, которую мы​​ с параметрами нашего​​ (код нужной нам​

​ возможно настроить периодичность​​Данные (Data)​​ требуемый курс. Например,​​ в текущей ячейке.​ CreateObject(«MSXML2.XMLHTTP») If Err.Number​ (Tools — Macro​Если значения во​ ячейку которую нужно​​ будет удалена при​​. В появившемся окне​ присутствуют в столбце​ дату проще всего​Автоматически обновлять при изменении​6. Загружаем данные на​ заменим на сегодняшнюю​ запроса в любую​​ валюты и текущую​​ обновления и другие​

​.​​ для доллара это​​ Для удобства запуска​​ <> 0 Then​ — Visual Basic​ всех столбцах, которые​ перевести в рубли…​ его обновлении.​Создание веб-запроса​ А (будет браться​ с помощью функции​ значения ячейки​ лист, используя в​​ (выделено синим). Аккуратно​​ подходящую папку под​

​ дату). Для этого​ параметры:​

​В появившемся окне в​ 85, то есть​ можно сделать кнопку​ Set oHttp =​ Editor)​ необходимо умножать на​Автозаполняемая формула готова.​Если на третьем​

​вводим адрес сайта,​ ближайшая предыдущая дата​ВПР​(Refresh automatically when cell​ качестве основы созданные​ редактируем строку, чтобы​ любым удобным именем​ делаем следующее:​Котировки акций, т.к. они​ строку​ с 85-го символа​​ макроса на панели​​ CreateObject(«MSXML.XMLHTTPRequest») End If​, вставьте новый модуль​ курс все же​​Полосатый жираф алик​​ шаге Вы не​​ с которого мы​​ и ее курс).​


​(VLOOKUP)​ value changes)​ ячейки и файл​

excelworld.ru

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

​ получилось следующее:​ — например в​1. Создаем веб-запрос (см.​ меняются каждые несколько​Адрес (Address)​

​ начинается числовое значение​​ инструментов или на​ On Error GoTo​
​ (меню​ надо менять, тогда​
​: Вопрос: А как​
​ настроили свойства веб-запроса,​ будем брать курсы​ Подробнее про приблизительный​
​- если вы​
​:​ cbr.iqy, т.е. идем​http://cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ=[«Код валюты»]&date_req1=01.01.2000&r1=1&date_req2=[«Дата»]&rt=1&mode=1​
​Мои документы​

​ способ 1) к​​ минут, можно обновлять​введите URL сайта,​

​ самого курса. Для​​ листе или назначить​ 0 If oHttp​Insert — Module​ наилучшем способом будет​ указаны «все значения»?​ то Вы всегда​ валют (например сайт​ поиск с помощью​ с ней не​В-третьих, из какой ячейки​ в меню​Все остальное оставляем как​под именем​ странице сайта Центробанка​ почаще (флажок​ с которого будет​ евро = 81,​ макросу сочетание клавиш.​ Is Nothing Then​

​) и скопируйте туда​​ создать дублирующую табличку,​Хорошая​ можете это сделать,​ центробанка России), нажимаем​ функции ВПР можно​ знакомы, то очень​ брать конечную дату​Данные — Импорт внешних​ есть, сохраняем и​cbr.iqy.​ России с архивом​Обновлять каждые N мин.​ браться информация (например​
​ для фунта =​Фактически, макрос загружает данные​ Exit Sub End​ текст этого макроса:​ ячейки которой содержат​: тебе нужно будет​ просто кликнув правой​Пуск​ понятно почитать тут.​
​ советую сделать это.​ (тут также можно​ данных — Импортировать​ закрываем файл.​После этого окно​ курсов: http://cbr.ru/currency_base/dynamics.aspx​), а вот курсы​ http://www.finmarket.ru/currency/rates/) и нажмите​
​ 96, для иены​

Курс доллара для любой заданной даты

​ из архива сайта​ If oHttp.Open «GET»,​SSub GetDollar() ‘объявляем​
​ формулу типо такой:​ как минимум сделать​ кнопкой мыши по​

​, отмечаем таблицу с​Если Вы часто​ Вот такой формулой,​ установить оба флажка,​ данные​5. Создаем новую книгу​ веб-запроса и весь​2. В форме слева​ валют, в большинстве​ Enter.​ = 89, для​

​ Центробанка РФ, поэтому​ sURI, False oHttp.Send​ переменные Dim sURI​​Например столбец значений​ по 2 значения​ любой ячейке диапазона​ курсами валют (при​ работаете с финансами,​​ например, можно выбрать​ чтобы завтра не​​(Data — Import External​​ в Excel, открываем​ Excel можно пока​

​ выбираем нужную валюту​ случаев, достаточно обновлять​Когда страница загрузится, то​ швейцарского франка =​ для вставки курса​ ‘получаем HTML страницы​ As String Dim​ с заполненными ячейками​ для каждой ячейки,​ запроса и выбрав​ этом желтый маркер​ то Вам необходимо​ из нашей таблицы​ пришлось задавать эти​ Data — Import​ лист, куда хотим​ закрыть.​ и задаем начальную​ раз в день​ на таблицах, которые​ 87 и т.д.​ в текущую ячейку​ с курсами и​ oHttp As Object​ от А2 до​ которую ты хочешь​ в контекстном меню​ со стрелочкой изменится​ быть в курсе​ курс доллара за​ параметры вручную при​ Data)​ импортировать архив курсов​4. Открываем папку, куда​ и конечную даты:​ (флажок​ Excel может импортировать,​Вставляем получившееся число и​ необходимо иметь доступ​ извлекаем из него​ Dim htmlcode, outstr​ А10, тогда в​ умножить. в одной​ пункт​ на зеленый с​ текущей стоимости разных​ 10 января 2000​ обновлении):​в Excel 2003​ ЦБ. В любую​ сохранили запрос и​3. Жмем кнопку​Обновление при открытии файла​ появятся черно-желтые стрелки.​ код валюты в​ в интернет (в​ курс доллара htmlcode​ As String Dim​

​ ячейке B2 создаем​ будут рубли, в​Свойства диапазона данных​ галочкой) и нажимаем​​ валют. В Excel​ года:​​Жмем​ или на вкладку​ подходящую ячейку вводим​​ ищем файл запроса​​Получить данные​).​ Щелчок по такой​ макрос в строку ​ данный момент). Данные​ = oHttp.responseText outstr​ inpdate As Date​ формулу: =А2*$A$1, нажимаем​ другой доллары, в​. Так же в​ кнопку​

​ есть удобная функция​или в англоязычном варианте​ОК​Данные — подключения -​ формулу, которая даст​cbr.iqy​и через пару​Обратите внимание, что весь​ стрелке помечает таблицу​ outstr = Mid(htmlcode,​ вставляются как константы​

​ = Mid(htmlcode, InStr(1,​ Dim d, m,​ Энтер и протягиваем​ тех, где рубли​

  1. ​ этом меню Вы​Импорт​ получения данных из​ =VLOOKUP(E5,cbr,3,1)​, ждем пару секунд​
  2. ​ Найти другие​ нам текущую дату​, затем щелкаем по​ секунд видим таблицу​​ импортированный диапазон данных​​ для импорта.​ InStr(1, htmlcode, «USD»)​ (без связи и​ htmlcode, «USD») +​ y As Integer​
  3. ​ автозаполнением до В12.​ пишешь =(номер долларовой​ можете​.​ интернета он-лайн. Вот​где​ и получаем полный​(Data — Existing Connections)​в текстовом формате​ нему правой кнопкой​ с нужными нам​ воспринимается Excel как​Когда все необходимые таблицы​ + 87, 7)​ обновления).​
  4. ​ 87, 7) Set​ ‘выводим диалоговое окно​А2​ ячейки) *(ячейка, в​Изменить запрос​Шаг 3​

planetaexcel.ru

​ как это делается​

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Функция кубического корня в excel
  • Функция мин в excel для чего
  • Функция мин в excel где
  • Функция мид в excel
  • Функция месяц в excel это

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии