Расчет курса валют в 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. Данный калькулятор будет полезен инвесторам, финансовым аналитикам, бухгалтерам для получения информации о значениях курса валют с международных финансовых рынков (forex).

Курс валют онлайн: калькулятор

Для получения значения курса по основным валютным парам на международном финансовом рынке, вы можете воспользоваться созданной программой Excel (с макросом) для импорта текущих данных с сервиса Yahoo finance. Следует заметить, что данные курса валют отечественной валюты устанавливается ЦБ РФ и может отличаться от данных Yahoo.

Курс валют онлайн: калькулятор

Курс валют можно рассчитать по всем основным валютам и валютным парам:

  • USD (Доллар),
  • EUR (Евро),
  • GBP (Фунт),
  • JPY  (Йена),
  • CHF (Швейцарский франк),
  • CAD (Канадский доллар),
  • RUB (Рубль), 
  • AUD (Австралийский доллар),
  • NZD (Новозеландский доллар).

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

Курс валют онлайн в режиме реального времени

Так как данная валютная пара торгуется на международном финансовом рынке, то она имеет следующие выходные параметры: цена закрытия, цена открытия, цена покупки и цена продажи. Как правило, чаще всего используется цена закрытия.

Скачать калькулятор курса валют онлайн в Excel


КУРС

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

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

Большинство работников финансовой сферы воспринимают 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


Все блоги


Необходимо указать формулу для расчёта курса доллара в диапазоне E2:E4 для заданных дат из диапазона D2:D4, используя данные таблицы A1:B17. Предположим формула бесконечная.



А у меня другая (18 января ??? )

=ВПР(D2;A:B;2)
=ПРОСМОТР(D2;A:A;B:B)
=ИНДЕКС(B:B;ПОИСКПОЗ(D2;A:A))

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995



Недавно для своих нужд написал функцию. Можно прямо в ячейке получать курс НБУ на указанную дату.
Может будет кому-то полезна.
Если дату явно не указывать, то будет выведен курс для текущей даты


Function Get_NBU_Rates(sCurr As String, Optional dDate As Date) As Double
'  Author:  boa
'  Description: Возвращает курс НБУ для указанной валюты на заданную дату
'               sCurr - буквенный код валюты. Например: "EUR", "USD", "RUB" и т.п.
    On Error Resume Next
    Dim oHttp As Object
    Dim sURI$, htmlcode$
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err.Number <> 0 Then Err.Clear: Set oHttp = CreateObject("MSXML2.XMLHTTPRequest"):
    If oHttp Is Nothing Then Exit Function

        On Error GoTo 0
    If dDate = 0 Then dDate = Date
    sURI = "https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=" & sCurr & "&date=" & Format(dDate, "YYYYMMDD")
    oHttp.Open "GET", sURI, False
    oHttp.send: DoEvents
    htmlcode = oHttp.responseText
    Get_NBU_Rates = CDbl(Val(GetTagsNBU(htmlcode, "rate")))
End Function
Private Function GetTagsNBU(ByVal htmlcode$, ByVal TagName$) As String
'    Debug.Print htmlcode
    If InStr(1, htmlcode, TagName) Then
        Dim str$: str = Split(htmlcode, TagName)(1)
        GetTagsNBU = Replace(Replace(str, ">", ""), "</", "")
    End If
End Function

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


Я давно использую похожую функцию:

Function КурсЦБР(Optional Код_Валюты = "USD", Optional ByVal Дата) As Currency   ' запрос курса любой валюты с сайта ЦБ РФ
'---------------------------------------------------------------------------------------
' Procedure : КурсЦБР
' Author    : Основа - ZVI:2008-10-31, коррекция - Alex_ST: 2010-01-28
' URL       : http://www.planetaexcel.ru/forum.php?thread_id=3816
' Date      : 28.01.2010
' Purpose   : Определение курса валют, установленного ЦБР на заданную дату [по умолчанию - текущая дата]
' Notes     : Валюта - любая [по умолчанию - доллар США] из публикуемых на сайте ЦБРФ
'             http://cbr.ru/currency_base/daily.aspx
'             Вместо кода валюты можно вводить уникальную часть её названия:
'             (вместо "BUR" можно ввести "Белорусских рублей" или "белорус")
'             Примеры вызова в формуле ячейки:
'             =КурсЦБР()или =КурсЦБР("USD") или =КурсЦБР("сШа") - курс USD для текущей даты
'             =КурсЦБР(;"2008-10-30")или =КурсЦБР(;"2008.10.30") или =КурсЦБР("сШа") - курс USD для даты 2008.10.30
'             Аналогично:
'             =КурсЦБР("EUR") или =КурсЦБР("еВрО") - курс EUR для текущей даты
'             =КурсЦБР("EUR";"2008/10/30") или =КурсЦБР("EUR";ДАТА(2008;10;30))
'---------------------------------------------------------------------------------------
    Dim Запрос$, Ответ$, Курс$
    Dim oHttp As Object
    Dim ДЕНЬ$, Месяц$, ГОД$
    Application.Volatile
    If IsMissing(Дата) Then Дата = Date
    If Not IsDate(Дата) Then Дата = CDate(Дата)
    ДЕНЬ = Format(Дата, "dd"): Месяц = Format(Дата, "mm"): ГОД = Format(Дата, "yyyy")
    Запрос = "http://cbr.ru/currency_base/daily.aspx?C_month= " & Месяц & "&C_year=" _
           & ГОД & "&date_req=" & ДЕНЬ & "%2F" & Месяц & "%2F" & ГОД
    On Error Resume Next
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    If Err <> 0 Then Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
    If oHttp Is Nothing Then Exit Function
    oHttp.Open "GET", Запрос, False
    oHttp.Send
    Ответ = UCase(oHttp.responseText)
    'В HTML-коде, получаемом по запросу от сервера ЦБРФ, строка таблицы для, например, Евро выглядит как:
    '(с соблюдением переноса строк)
    '<tr><td align=""right"">978</td>         -- начало новой строки <tr>; начало первой ячейки с выравниванием "направо" <td align=""right"">; цифровой код валюты 978 ; конец первой ячейки </td>
    '<td align=""left"">&nbsp;&nbsp;EUR</td>  -- начало второй ячейки с выравниванием "налево" <td align=""left"">; два неразрывных пробела (отступ текста от левого края второй ячейки) &nbsp; буквенный код валюты EUR ; конец второй ячейки </td>
    '<td align=""right"">1</td>               -- начало третьей ячейки с выравниванием "направо" <td align=""right"">; кол-во единиц 1 ; конец третьей ячейки </td>
    '<td>&nbsp;&nbsp;Евро</td>                -- начало четвертой ячейки <td> ; два неразрывных пробела (отступ текста от левого края ячейки) &nbsp; название валюты Евро ; конец четвертой ячейки </td>
    '<td align=""right"">42,5905</td></tr>    -- начало пятой ячейки с выравниванием "направо" <td align=""right"">; курс 42,5905 ;конец ячейки </td> и строки </tr>
    Курс = CCur(Mid(Ответ, InStr(InStr(1, Ответ, UCase(Код_Валюты)), Ответ, "</TD></TR>") - 7, 7))
    ' найти в стринге-ответе (HTML-коде) позицию слова UCase(Код_Валюты), например, "USD"
    ' начиная с этой позиции найти позицию конца строки - HTML-тэги "</td></tr>"
    ' отступить от найденной позиции на -7 символов и взять от этой позиции 7 символов - это и есть курс
    Set oHttp = Nothing
    КурсЦБР = Курс
End Function


Доброго дня, всем!

Цитата: Serge 007 от 30.11.2017, 17:26
Я давно использую похожую функцию: …

Не получилось: — в модуль книги скопировал Вашу функцию, на листе, в ячейку ввожу функцию — возвращает 0.

Шо то делаю не то, а вот шо?

Путей к вершине — множество. Этот один из многих!



Замените в коде строки

Запрос = "http://cbr.ru/currency_base/daily/?date_req=" & Format(Дата, "dd.mm.yyyy")
и

Курс = CCur(Mid(Ответ, InStr(InStr(1, Ответ, UCase(Код_Валюты)), Ответ, ",") - 2, 7))

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость…  Мигель Сервантес де Сааведра


УРА! vikttur и boa!! — Дай бог здоровья этим людям!

Путей к вершине — множество. Этот один из многих!


Функция РУБЛЬ выполняет округление числового значения до указанного количества знаков после запятой, преобразует данные в текстовый формат и возвращает полученную текстовую строку с обозначением соответствующей денежной единицы.

Функция РУБЛЬ.ДЕС выполняет преобразование стоимости в рублях, выраженной в виде целой и дробной части числа, и возвращает стоимость в рублях в виде десятичного числа. Данная функция в качестве дробной части возвращает частное от деления дробной части исходного значения на указанное число.

Функция РУБЛЬ.ДРОБЬ выполняет преобразование из десятичной в дробную форму записи показатель стоимости в рублях и возвращает полученное значение.

Расчет доходности инвестиций в Excel

Пример 1. Рассчитать доходность векселей, стоимость которых указана в целой и дробной части. Представить полученный результат с точностью до 1/16 рубля.

Исходная таблица:

Исходная таблица.

Формула для расчета:

Формула.

Для преобразования стоимости ценных бумаг используется функция РУБЛЬ.ДЕС(B4;16), которая принимает следующие аргументы:

  • B4 – стоимость, выраженная в дробном представлении;
  • 16 – число, на которое необходимо разделить дробную часть для десятичного представления.

Полученный результат:

стоимость.

Как преобразовать десятичные дроби цены в смешанные дроби

Пример 2. Преобразовать значения стоимости ценных бумаг в смешанные дробные значения (1/32 часть рубля).

Исходные данные:

данные.

Используем следующую формулу:

Используем формулу.

Описание аргументов:

  • A2 – стоимость в рублях в десятичном представлении;
  • 32 – число, на которое будет разделена десятичная дробная часть.

Выполним расчет стоимости второй акции, а затем с помощью автозаполнения определим остальные значения. Результаты вычислений:

расчет стоимости второй акции.

Полученное значение на примере стоимости первой ценной бумаги следует читать как 1 целая и 4/32 рубля.



Пересчет цен по актуальному курсу доллара в Excel online

Пример 3. В каталоге продукции, хранимом в таблице Excel, содержатся наименования и цены товаров в долларах США. Произвести пересчет цен в рублях по актуальному курсу и отформатировать полученные значения с помощью функции РУБЛЬ, округлив цены до первого знака перед запятой.

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

  1. Создадим отдельный лист для таблицы с курсами, откроем вкладку «Данные» в программе Excel.
  2. Выберем пункт «Получение внешних данных» и подпункт «Из интернета»:
  3. Получение внешних данных.

  4. В открывшемся окне введем адрес сайта с курсами валют и нажмем кнопку «Пуск» для перехода:
  5. Пуск.

  6. Выберем таблицу, обозначенную желтой стрелкой, нажмем на нее, а затем нажмем на кнопку «Импорт»:
  7. Импорт.

Результат импорта данных:

Результат импорта.

Для пересчета стоимости в рублях используем следующую функцию как формулу массива:

пересчет стоимости.

Описание аргументов:

  • B2*Курсы_валют!$D$13 диапазона значений цен в долларах на текущий курс, значение которого хранится в ячейке D13 на листе Курсы_валют;
  • -1 – значение, характеризующее количество знаков перед запятой для операции округления.

Полученный результат:

результат.

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

Функция РУБЛЬ имеет следующий синтаксис:

=РУБЛЬ(число;[число_знаков])

Аргументы функции:

  • число – обязательный для заполнения аргумент, характеризующий числовое значение, которое требуется преобразовать в запись с отображением знака денежной единицы.
  • [число_знаков] – необязательный аргумент, характеризующий количество знаков после запятой после операции округления. Если явно не указан, по умолчанию используется значение 2. Если представлен числом из диапазона отрицательных значений, его модуль характеризует количество знаков перед запятой.

Синтаксическая запись функции РУБЛЬ.ДЕС:

=РУБЛЬ.ДЕС(дроб_руб;дробь)

Описание аргументов:

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

Синтаксис функции РУБЛЬ.ДРОБЬ:

=РУБЛЬ.ДРОБЬ(дес_руб;дробь)

Аргументы функции:

  • дес_руб – обязательный аргумент, характеризующий десятичное представление цены в рублях.
  • дробь – обязательный аргумент, характеризующий целое число, являющееся знаменателем для дробного представления.

Примечания:

  • Нецелые числа, переданные в качестве аргумента дробь, будут усечены.
  • Результатом выполнения функций РУБЛЬ.ДЕС и РУБЛЬ.ДРОБЬ будет ошибка #ДЕЛ/0!, если значение аргумента дробь взято из диапазона чисел от 0 (включительно) до 1 (не включая 1).
  • Функции РУБЛЬ.ДЕС и РУБЛЬ.ДРОБЬ вернут код ошибки #ЧИСЛО!, если значение аргумента дробь взято из диапазона отрицательных чисел.
  • Функция РУБЛЬ использует следующие форматы записи: «# ##0,00 р.» и «- # ##0,00 р.». Использование функции от простого форматирования ячеек заключается в том, что результатом выполнения этой функции является текстовая строка.

Like this post? Please share to your friends:
  • Расчет купона по облигациям excel
  • Расчет координат точек в excel
  • Расчет контура заземления в excel
  • Расчет контрольной суммы excel
  • Расчет кту таблица excel