Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Еще…Меньше
С помощью типа данных Валюты можно легко получить и сравнить обменные курсы по всему миру. В этой статье вы узнаете, как вводить пары валют, преобразовывать их в тип данных и извлекать дополнительные сведения для надежных данных.
Примечание: Валютные пары доступны только для Microsoft 365 (клиенты с несколькими клиентами по всему миру).
Использование типа данных «Валюты» для расчета обменных курсов
-
Введите валютную пару в ячейку, используя такой формат: Из валюты / В валюту с кодами валют ISO.
Например, введите «ДОЛЛАР/ЕВРО», чтобы получить курс обмена от одного доллара США к евро.
-
Выберем ячейки и выберите Вставить >таблицу. Создание таблицы не обязательно, но значительно упростит вставку данных из типа данных.
-
Выбрав ячейки, перейдите на вкладку Данные и выберите тип данных Валюты.
Если Excel обнаружит совпадение между валютной парой и поставщиком данных, текст преобразуется в тип данных, а в ячейке значок Валюты.
Примечание: Если в ячейке вместо значка Валюты, Excel затруднение при совпадении текста с данными. Исправь все ошибки и нажмите ввод, чтобы повторить попытку. Можно также выбрать значок, чтобы открыть селектор данных, в котором можно найти валютную пару или указать нужные данные.
-
Чтобы извлечь дополнительные сведения из типа данных Валюты, выберите одну или несколько преобразованных ячеек и нажмите кнопку Вставить данные отобразить или нажать клавиши CTRL/CMD+SHIFT+F5.
-
Вы увидите список всех доступных полей. Выберите поля, чтобы добавить новый столбец данных.
Например, «Цена» представляет обменный курс для валютной пары, а время последней сделки — время, в течение которого курс был цитироваться.
-
После того как у вас есть все необходимые данные о валюте, их можно использовать в формулахи вычислениях. Чтобы убедиться, что данные обновлены, перейдите в> Обновить все, чтобы получить обновленную кавычка.
Внимание: Сведения о валюте предоставляются «как есть» и могут быть задержаны. Поэтому эти данные не следует использовать в целях торговли или советов. Дополнительные сведения см. всведениях об источниках данных.
См. также
Типы данных «Акции» и «География»
Написание формул, ссылаясь на типы данных
Функция ПОЛЕVALUE
#FIELD! ошибка
Нужна дополнительная помощь?
Импорт курса валют из интернета
Импорт курса заданной валюты из интернета с автоматическим обновлением — весьма частая задача для многих пользователей Microsoft Excel. Представьте, что у вас есть прайс-лист, который должен пересчитываться каждое утро в соответствии с курсом. Или бюджет проекта. Или стоимость договора, которую надо посчитать, используя курс доллара на дату заключения договора.
В подобных ситуациях можно решить проблему по разному — всё зависит от того, какая версия Excel у вас установлена и какие надстройки поверх неё стоят.
Способ 1. Простой веб-запрос для текущего курса валют
Этот способ подойдет тем, у кого на компьютере пока ещё старые версии Microsoft Office 2003-2007. Он не использует никаких сторонних надстроек или макросов и оперирует только встроенными функциями.
Нажмите кнопку Из интернета (Web) на вкладке Данные (Data). В появившемся окне в строку Адрес (Address) введите URL сайта, с которого будет браться информация (например http://www.finmarket.ru/currency/rates/) и нажмите клавишу Enter.
Когда страница загрузится, то на таблицах, которые Excel может импортировать, появятся черно-желтые стрелки. Щелчок по такой стрелке помечает таблицу для импорта.
Когда все необходимые таблицы помечены — нажмите кнопку Импорт (Import) внизу окна. Спустя некоторое время, нужное для загрузки данных, содержимое отмеченных таблиц появится в ячейках на листе:
Для дополнительной настройки можно щелкнуть по любой из этих ячеек правой кнопкой мыши и выбрать в контекстном меню команду Свойства диапазона (Data range properties). В этом диалоговом окне, при желании, возможно настроить периодичность обновления и другие параметры:
Котировки акций, т.к. они меняются каждые несколько минут, можно обновлять почаще (флажок Обновлять каждые N мин.), а вот курсы валют, в большинстве случаев, достаточно обновлять раз в день (флажок Обновление при открытии файла).
Обратите внимание, что весь импортированный диапазон данных воспринимается Excel как единое целое и получает собственное имя, которое можно увидеть в Диспетчере имен на вкладке Формулы (Formulas — Name Manager).
Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат
Этот способ представляет собой слегка модернизированный первый вариант и дает пользователю возможность получать курс нужной валюты не только на текущий день, но и на любую другую интересующую дату или интервал дат. Для этого наш веб-запрос надо превратить в параметрический, т.е. добавить к нему два уточняющих параметра (код нужной нам валюты и текущую дату). Для этого делаем следующее:
1. Создаем веб-запрос (см. способ 1) к странице сайта Центробанка России с архивом курсов: http://cbr.ru/currency_base/dynamics.aspx
2. В форме слева выбираем нужную валюту и задаем начальную и конечную даты:
3. Жмем кнопку Получить данные и через пару секунд видим таблицу с нужными нам значениями курса на заданном интервале дат. Прокручиваем полученную таблицу вниз до упора и помечаем ее для импорта, щелкнув по черно-желтой стрелке в левом нижнем углу вебстраницы (только не спрашивайте почему эта стрелка находится там, а не рядом с таблицей — это вопрос к дизайнерам сайта).
Теперь ищем в правом верхнем углу окна кнопку с дискетой Сохранить запрос (Save Query) и сохраняем файл с параметрами нашего запроса в любую подходящую папку под любым удобным именем — например в Мои документы под именем cbr.iqy. После этого окно веб-запроса и весь Excel можно пока закрыть.
4. Открываем папку, куда сохранили запрос и ищем файл запроса cbr.iqy, затем щелкаем по нему правой кнопкой мыши — Открыть с помощью — Блокнот (или выбрать его из списка — обычно это файл Notepad.exe из папки C:Windows). После открытия файла запроса в Блокноте должны увидеть примерно следующее:
Самое ценное здесь — строка с адресом и параметры запроса в ней, которые мы будем подставлять — код нужной нам валюты (выделено красным) и конечная дата, которую мы заменим на сегодняшнюю (выделено синим). Аккуратно редактируем строку, чтобы получилось следующее:
http://cbr.ru/currency_base/dynamics.aspx?VAL_NM_RQ=[«Код валюты»]&date_req1=01.01.2000&r1=1&date_req2=[«Дата»]&rt=1&mode=1
Все остальное оставляем как есть, сохраняем и закрываем файл.
5. Создаем новую книгу в Excel, открываем лист, куда хотим импортировать архив курсов ЦБ. В любую подходящую ячейку вводим формулу, которая даст нам текущую дату в текстовом формате для подстановки в запрос:
=ТЕКСТ(СЕГОДНЯ();»ДД.ММ.ГГГГ»)
или в английской версии
=TEXT(TODAY(),»dd.mm.yyyy»)
Куда-нибудь рядом вводим код нужной нам валюты из таблицы:
Валюта |
Код |
Доллар США |
R01235 |
Евро |
R01239 |
Фунт стерлингов |
R01035 |
Японская иена |
R01820 |
Нужный код также можно подсмотреть в строке запроса прямо на сайте ЦБ.
6. Загружаем данные на лист, используя в качестве основы созданные ячейки и файл cbr.iqy, т.е. идем на вкладку Данные — Подключения — Найти другие (Data — Existing Connections). В открывшемся окне выбора источника данных находим и открываем файл cbr.iqy. Перед импортом Excel уточнит у нас три момента.
Во-первых, куда импортировать таблицу с данными:
Во-вторых, откуда брать код валюты (можно установить флажок Использовать данное значение по умолчанию (Use this value/reference for future refreshes), чтобы не указывать потом каждый раз эту ячейку при обновлениях и флажок Автоматически обновлять при изменении значения ячейки (Refresh automatically when cell value changes):
В-третьих, из какой ячейки брать конечную дату (тут также можно установить оба флажка, чтобы завтра не пришлось задавать эти параметры вручную при обновлении):
Жмем ОК, ждем пару секунд и получаем полный архив курса нужной валюты на листе:
Как и в первом способе, щелкнув правой кнопкой мыши по импортированным данными и выбрав команду Свойства диапазона (Data range properties), можно настроить частоту обновления При открытии файла (Refresh on file open). Тогда при наличии доступа к интернету данные будут автоматически обновляться каждый день, т.е. таблица будет самостоятельно дополняться новыми данными.
Вытаскивать из нашей таблицы курс за нужную дату проще всего с помощью функции ВПР (VLOOKUP) — если вы с ней не знакомы, то очень советую сделать это. Вот такой формулой, например, можно выбрать из нашей таблицы курс доллара за 10 января 2000 года:
или в англоязычном варианте =VLOOKUP(E5,cbr,3,1)
где
- E5 — ячейка, где лежит заданная дата
- cbr — имя диапазона данных (автоматически создается при импорте и обычно совпадает с именем файла запроса)
- 3 — порядковый номер столбца в нашей таблице, откуда мы берем данные
- 1 — аргумент, включающий для функции ВПР приблизительный поиск, чтобы можно было находить курсы и для тех промежуточных дат, которые фактически не присутствуют в столбце А (будет браться ближайшая предыдущая дата и ее курс). Подробнее про приблизительный поиск с помощью функции ВПР можно понятно почитать тут.
Ссылки по теме
- Макрос для получения курса доллара на заданную дату в текущей ячейке
- Функция надстройки PLEX для получения курса доллара, евро, гривны, фунта стерлингов и т.д. на любую заданную дату
- Вставка курса любой валюты на любую дату в надстройке PLEX
Описание функции
Для вставки курса с сайта ЦБ в надстройке имеется функция КУРС, которая позволяет загрузить курс любой валюты на заданную дату. Однако, она не не подходит если необходимо получить средний курс валюты за период. Для этого мы добавили в программу функцию КУРСПЕРИОД.
Для вставки функции можно воспользоваться меню надстройки:
Для начала нужно выделить ту ячейку, куда будет вставляться средний курс валюты. Далее в разделе «Функции» нажать одноименную кнопку. После чего в выпадающем меню выбрать «Финансовые» — «Средний курс валюты за период».
Откроется следующее окно:
Заполните ячейки данными и нажмите Ок. В ячейку вставится формула со средним курсом выбранной валюты за указанный период.
Вы также можете вставить функцию, непосредственно начав вводить в ячейку синтаксис функции.
Синтаксис функции
Функция имеет следующий синтаксис =КУРСПЕРИОД( НАЧАЛЬНАЯ_ДАТА ; КОНЕЧНАЯ_ДАТА ; [ВАЛЮТА] ), где:
- НАЧАЛЬНАЯ_ДАТА – Дата, начиная с которой, формула будет считать средний курс валюты.
- КОНЕЧНАЯ_ДАТА – Дата, до которой (включительно) формула рассчитывает средний курс валюты.
- [ВАЛЮТА] – Код валюты, в соответствии со стандартом ISO 4217, для которой будет рассчитываться средний курс валюты. Данное поле не обязательное. По умолчанию, используется курс доллара (USD).
Функция поддерживает определение среднего курса валюты для валют:
- USD – доллары США, эта валюта по умолчанию
- EUR – евро
- BYN – белорусский рубль
- UAH – украинская гривна
Пример:
Пример расчета среднего курса доллара и евро за первое полугодие.
Как рассчитать курс доллара в Excel?
Как привязать курс доллара в Excel?
(1.1) Линейка «Данные» —> «Получение внешних данных» —> «Из Интернета»: (1.2) В открывшемся браузере переходим на сайт ЦБ РФ и переходим на страницу с курсами: (1.3) Далее необходимо указать период для загрузки: (1.4) После получения данных нажмите кнопку «Импорт» и данные загрузятся в лист Excel (ВАЖНО!
Как перевести валюты в Эксель?
Метод 1 Как конвертировать вручную
- Найдите текущий курс валют. …
- Запустите Microsoft Excel. …
- Щелкните по Новая книга. …
- Создайте таблицу с курсом валют. …
- Имя первой валюты введите в ячейке D1. …
- Введите суммы, которые нужно конвертировать, в столбце «D». …
- Имя второй валюты введите в ячейке E1.
Как правильно переводить рубли в доллары?
Как перевести доллары в рубли и рубли в доллары?
- Итак, для того чтобы перевести доллары в рубли нам придется умножить имеющееся количество долларов на его курс. Например, при наличии 200 долларов и его курсе в 35 рублей мы получим 200$*35=7 000 рублей.
- Для того чтобы перевести рубли в доллары нужно будет уже разделить сумму в рублях на курс доллара.
Как в Excel добавить грн?
Индикатор валюты в ячейке отображается справа
- Выделить все ячейки в колонке, в которой будешь вписывать цифры. …
- Правой кнопкой на выделенном, выбрать Format cell. …
- Выбрать вкладку Number (она может быть выбрана по-умолчанию)
- В списке Category выбрать Custom. …
- Type — в поле Type вписываем следующее: # ##0 «грн.»
Как перенести данные из Интернета в Excel?
Чтобы импортировать данные в таблицу Excel, выберите команду From Web (Из интернета) в разделе Get External Data (Получение внешних данных) на вкладке Data (Данные). Перед каждой из web-таблиц имеется маленькая стрелочка, которая указывает, что эта таблица может быть импортирована в Excel.
Как в Excel складывать цифры со знаком рубля?
Следует выполнить последовательность действий:
- Выделить нужные ячейки.
- Кликом правой кнопки по выделению вызвать контекстное меню.
- Кликнуть по надписи: «Формат ячеек… »
- В появившемся окне выбрать «Все форматы»
- Записать в строку «Тип» нужный формат: 0,0 » тыс. руб» …
- Нажать «Ок».
Как правильно рассчитать курс валют?
Умножьте сумму денег, которая потребуется вам для поездки, на обменный курс. Таким образом, вы вычислите сумму, которую вы получите в результате обмена. Если «а» — сумма денег в вашей валюте, «b» — обменный курс, «с» — сумма денег в другой валюте, то a*b = c и a = c/b.
Как поставить евро в Экселе?
Артур крутихин : Перевести клавиатуру на русскую раскладку. И при нажатом левом ALT набрать цифры 0136 (расположенные справа на клавиатуре). ALT+0136 = €. А на будущее пользуйтесь Таблицей символов Windows.
Как присвоить ячейкам денежный формат?
- В окне открытого листа выделите нужные ячейки и перейди те к вкладке «Главная».
- В группе «Шрифт» щелкните по кнопке «Формат ячеек» (или используйте сочетание клавиш Ctrl+Shift+F).
- В окне «Формат ячеек» на вкладке «Число» в группе «Число вые форматы» выберите пункт «Денежный».
- Закройте окно кнопкой «ОК».
Нужно ли платить налог с обмена валюты?
По закону во многих случаях они должны платить налог с дохода (НДФЛ) от операций с валютой. Валюта является имуществом в соответствии с гражданским законодательством РФ, поэтому к доходу от ее продажи применяются те же правила налогообложения, что и при продаже другого имущества, объясняют эксперты по налогам.
Как перевести рубли в доллары Тинькофф инвестиции?
Как конвертировать валюту внутри вклада?
- В личном кабинете выберите вклад и перейдите во вкладку «Действия» → «Перевод между счетами вклада». Либо выберите вклад → нажмите «Еще» → «Перевод между счетами».
- Укажите валюту и сумму. Нажмите «Перевести».
Как перевести рубли в доллары Альфа банк?
Укажите в поле «Со счета» ваш рублевый счет, с которого будет списана соответствующая сумма в рублях. Введите сумму 100 и из выпадающего списка с валютами выберите USD. Нажмите кнопку «Продолжить» для проверки заполнения перевода.
Как создать свой формат ячейки в Excel?
Чтобы создать пользовательский числовой формат, выполните всего три действия:
- Нажмите Ctrl+1, чтобы открыть диалоговое окно Формат ячеек.
- Щелкните на вкладке Число и выберите на ней категорию (все форматы).
- Введите ваш собственный формат в поле Тип.
Какие существуют форматы ячеек?
Для того чтобы изменить формат ячейки, щелкните правой кнопкой мыши на ячейке и в контекстном меню выберите Формат ячейки и в открывшемся окне закладку Числа. Все форматы для удобства разбиты по категориям: числовой; денежный; финансовый; дата; время; процентный; дробный; научный; логический; текстовый.
Как установить необходимый числовой формат ячейки?
Доступные числные форматы в Excel
- Выделите ячейку или диапазон ячеек.
- На вкладке Главная выберите в раскрывающемся списке формат Числовой. Вы также можете выбрать один из указанных здесь вариантов. Нажмите CTRL+1 и выберите число. …
- Выберите нужный формат.
Официальные курсы валют используются в расчете таможенных платежей, налоговом, бухгалтерском учете при работе с иностранными организациями и компаниями. Рассмотрим калькулятор, который позволяет рассчитать курс валют онлайн в 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 на ленте.
В более новых версиях переходим на вкладку «Данные», выбираем «Получить данные», затем «Из других источников» и кликаем «Из интернета». Альтернативный вариант – сразу щёлкнуть по соответствующей иконке рядом с командой «Получить данные».
Вводим адрес сайта Центробанка: https://cbr.ru
В открывшемся окошке можно менять вид просмотрщика.
Представление таблицы – это сортировка одних лишь таблиц (что, по идее, нам и нужно).
Веб-представление подойдёт в тех случаях, когда вам нужно полазать по сайту и проверить, что там Power Query вообще обнаружил. Предупреждаем, что веб-представление – это не браузер, сёрфить тут не разрешают, лишь визуально представлять себе результаты импорта. Даже кукисы принять не сможете…
Мы же выбираем Table 0, которая на просмотрщике отображается как нужная табличка с курсами валют, и нажимаем «Преобразовать данные».
Миссия выполнена! Конечно, мы можем перейти на вкладку «Главная» и нажать «Закрыть и загрузить в», указав вариант «Таблица», но лучше всего учесть вероятность будущих вычислений.
Если вы захотите применить к этой табличке банальное вычитание или сложение, то разживётесь ошибкой «ЗНАЧ». Она вылезает тогда, когда имеются неточности с форматами. Поэтому давайте сразу в запросе зададим нужный формат ячеек, а именно – валюту.
Кликаем по иконке ABC в заголовке столбца и выбираем тип «Валюта». Повторяем операцию в соседнем столбце.
Таким образом, мы будем автоматически получать заранее отформатированные ячейки.
А вот теперь с чистой совестью переходим на главную вкладку, «Закрыть и загрузить в», после чего указываем таблицу.
Можем проверить себя и произвести какие-нибудь вычисления, к примеру, вычитание, чтобы узнать разницу курсов за пару дней.
Во-первых, нам достаётся корректный результат и, во-вторых, благодаря преимуществам умных таблиц, этот самый результат протягивается вниз.
Наконец, если в ваших расчётах постоянно участвует курс доллара или евро, и вам требуется обновлять его, ссылаясь на импортированные ячейки, то повторять все эти шаги больше не нужно – достаточно кликнуть правой кнопкой мыши на таблицу в 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
Статья доступна в аудиоверсии Как же приятно осознавать, что мы не только обучаем Вас, дорогие студенты, но и развиваемся сами! Мы запустили новый курс…
Необходимо указать формулу для расчёта курса доллара в диапазоне 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""> EUR</td> -- начало второй ячейки с выравниванием "налево" <td align=""left"">; два неразрывных пробела (отступ текста от левого края второй ячейки) буквенный код валюты EUR ; конец второй ячейки </td>
'<td align=""right"">1</td> -- начало третьей ячейки с выравниванием "направо" <td align=""right"">; кол-во единиц 1 ; конец третьей ячейки </td>
'<td> Евро</td> -- начало четвертой ячейки <td> ; два неразрывных пробела (отступ текста от левого края ячейки) название валюты Евро ; конец четвертой ячейки </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 как красивый калькулятор. Мы решили помочь вам развить навыки использования этого важного инструмента, сделать из него настоящего помощника, а не просто хранителя данных. Предлагаем вам посмотреть, как можно подгрузить данные из сети Интернет непосредственно в таблицу Excel и создать функцию выбора курса валют на необходимую дату.
Немного больше 60 лет прошло с момента изобретения первого компьютера и около 50 лет с первых шагов по созданию интернета. Сейчас практически у каждого в кармане лежит мини-компьютер (смартфон) с доступом в сеть, уже начали появляться машины без водителя, некоторые и вовсе собираются колонизировать Марс. При этом большинство наших слушателей (работников финансовой сферы) до сих пор воспринимают Excel как красивый калькулятор. Мы решили помочь вам развить навыки использования этого важного инструмента, сделать из него настоящего помощника, а не просто хранителя данных.
Сегодня предлагаем вам посмотреть, как можно подгрузить данные из сети Интернет непосредственно в таблицу Excel и обработать их (создать функцию выбора курса валют на необходимую дату).
Для чего может понадобиться эта возможность?
Если вам регулярно необходим курс Центрального Банка РФ, то функция «Загрузка курса с сайта ЦБ» позволит сэкономить много времени.
Разбиваем задачу на две части:
(1) Автоматизируем загрузку курсов валют за необходимый период с сайта Центрального Банка России
(2) Пишем небольшой скрипт, который создаст «Пользовательскую функцию» для выбора курса на дату и предоставит его вставку в ячейку
Хотите уметь делать так сами? Это не сложно…
Ознакомьтесь со следующими курсами по Excel от HOCK Training:
(1) Загрузка курсов
Для решения данной задачи воспользуемся стандартным малоизвестным функционалом Excel.
* оговорка о совместимости версий
⚠ Данный функционал приводится для версий MS Office до 2020 года выпуска. Отличие новых версий офиса состоит в том, что путь к странице с данными указывается строкой (копи-пастом из браузера), а не через встроенный браузер MS Excel. Остальные действия по разработке функции аналогичны приведённым в данной статье.
Подробный разбор алгоритма действий в более новых версиях офиса приведен в дистанционном курсе «Программирование в Excel».
(1.1) Линейка «Данные» —> «Получение внешних данных» —> «Из Интернета»:
(1.2) В открывшемся внутреннем браузере Excel переходим на сайт ЦБ РФ и переходим на страницу с курсами:
(1.3) Далее необходимо указать период для загрузки:
(1.4) После получения данных нажмите кнопку «Импорт» и данные загрузятся в лист Excel
ВАЖНО!
Не забудьте перед этим поставить галочку в небольшом квадратике вверху страницы. На рисунке выше он зеленого цвета.
При этом в Excel будут загружены данные:
(1.5) Если все данные действия записать в виде макроса, то получим следующий скрипт в Visual Basic:
Обратите внимание на выделенные элементы кода. Если вносить в них изменения и запускать код на выполнение — будем получать курсы за нужный период. И не придется каждый раз повторять операции описанные выше в пунктах (1.1-1.4).
Следующий шаг — написание скрипта, который будет выбирать из подгруженных данных курс на требуемую дату и будет возвращать его при помощи функции в ячейку.
(2) Создание функции «Выбор курса на дату».
Используем возможности создания «Пользовательских функций» в редакторе Visual Basic:
(2.1) Создаем процедуру для обработки данных. Проверяем корректность работы программы на процедуре. Найденное значение курса записывается в переменную kurs (см листинг ниже).
(2.2) Меняем процедуру на функцию:
Скачать программу
(2.3) Вставляем в ячейку на листе с данными нашу функцию (ищите её в категории «Определенные пользователем»):
(2.4) «Растягиваем» ячейку с формулой на необходимый нам диапазон стандартным образом:
Работает 😉
Только для дочитавших до конца статьи — наш подарок:
Бесплатный воркшоп «Как начать программировать в 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
Все блоги
Содержание
- 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 может импортировать, появятся черно-желтые стрелки. Щелчок по такой стрелке помечает таблицу для импорта.
Когда все необходимые таблицы помечены — нажмите кнопку Импорт (Import) внизу окна. Спустя некоторое время, нужное для загрузки данных, содержимое импортируемых таблиц появится в ячейках на листе:
Для дополнительной настройки можно щелкнуть по любой из этих ячеек правой кнопкой мыши и выбрать в контекстном меню команду Свойства диапазона (Data range properties). В этом диалоговом окне, при желании, возможно настроить периодичность обновления и другие параметры:
Котировки акций, т.к. они меняются каждые несколько минут, можно обновлять почаще (флажок Обновлять каждые N мин.), а вот курсы валют, в большинстве случаев, достаточно обновлять раз в день (флажок Обновление при открытии файла).
Обратите внимание, что весь импортированный диапазон данных воспринимается Excel как единое целое и получает собственное имя (в нашем примере это будет www.cbr.ru)
Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат
Этот способ представляет собой слегка модернизированный первый вариант и дает пользователю возможность получать курс нужной валюты не только на текущий день, но и на любую другую интересующую дату или интервал дат. Для этого наш веб-запрос надо превратить в параметрический, т.е. добавить к нему два уточняющих параметра (код нужной нам валюты и текущую дату). Для этого делаем следующее:
1. Создаем веб-запрос (см. способ 1) к странице сайта Центробанка России с архивом курсов:
2. В форме слева выбираем нужную валюту и задаем начальную и конечную даты:
3. Жмем кнопку Получить данные и через пару секунд видим таблицу с нужными нам значениями курса на заданном интервале дат. Прокручиваем полученную таблицу вниз до упора и помечаем ее для импорта, щелкнув по черно-желтой стрелке в левом нижнем углу вебстраницы (только не спрашивайте почему эта стрелка находится там, а не рядом с таблицей — это вопрос к дизайнерам сайта).
Теперь ищем в правом верхнем углу окна кнопку с дискетой Сохранить запрос (Save Query) и сохраняем файл с параметрами нашего запроса в любую подходящую папку под любым удобным именем — например в Мои документы под именем cbr.iqy. После этого окно веб-запроса и весь Excel можно пока закрыть.
4. Открываем папку, куда сохранили запрос и ищем файл запроса cbr.iqy, затем щелкаем по нему правой кнопкой мыши — Открыть с помощью — Блокнот (или выбрать его из списка — обычно это файл Notepad.exe из папки C:Windows). После открытия файла запроса в Блокноте должны увидеть примерно следующее:
Самое ценное здесь — строка с адресом и параметры запроса в ней, которые мы будем подставлять — код нужной нам валюты (выделено красным) и конечная дата, которую мы заменим на сегодняшнюю (выделено синим). Аккуратно редактируем строку, чтобы получилось следующее:
Все остальное оставляем как есть, сохраняем и закрываем файл.
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 уточнит у нас три момента.
Во-первых, куда импортировать таблицу с данными:
Во-вторых, откуда брать код валюты (можно установить флажок Использовать данное значение по умолчанию (Use this value/reference for future refreshes), чтобы не указывать потом каждый раз эту ячейку при обновлениях и флажок Автоматически обновлять при изменении значения ячейки (Refresh automatically when cell value changes):
В-третьих, из какой ячейки брать конечную дату (тут также можно установить оба флажка, чтобы завтра не пришлось задавать эти параметры вручную при обновлении):
Жмем ОК, ждем пару секунд и получаем полный архив курса нужной валюты на листе:
Как и в первом способе, щелкнув правой кнопкой мыши по импортированным данными и выбрав команду Свойства диапазона (Data range properties), можно настроить частоту обновления При открытии файла (Refresh on file open). Тогда при наличии доступа к интернету данные будут автоматически обновляться каждый день, т.е. таблица будет самостоятельно дополняться новыми данными.
Вытаскивать из нашей таблицы курс за нужную дату проще всего с помощью функции ВПР (VLOOKUP) — если вы с ней не знакомы, то очень советую сделать это. Вот такой формулой, например, можно выбрать из нашей таблицы курс доллара за 10 января 2000 года:
или в англоязычном варианте =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 создает формулу, которая включает в себя имя исходной книги, заключенную в скобки [], имя листа с восклицательным знаком на конце и ссылку на ячейку.
Создание связей между рабочими книгами
- Открываем обе рабочие книги в Excel
- В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+С)
- Переходим в конечную книгу, щелкаем правой кнопкой мыши по ячейке, куда мы хотим поместить связь. Из выпадающего меню выбираем Специальная вставка
- В появившемся диалоговом окне Специальная вставка выбираем Вставить связь.
Есть еще один, более простой, вариант создания связи между таблицами. В ячейку, куда мы хотим вставить связь, ставим знак равенства (так же как и для обычной формулы), переходим в исходную книгу, выбираем ячейку, которую хотим связать, щелкаем Enter.
Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.
Прежде чем создавать связи между таблицами
Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:
Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, содержащих ссылки. Поэтому, используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами, в противном случае, документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать.
Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.
Избегайте циклические ссылки. Циклические связи – когда две рабочие книги содержат ссылки друг на друга – могут быть причиной медленного открытия и работы файла.
Обновление связей
Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи.
В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Обновить.
Разорвать связи в книгах Excel
Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.
Перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.
О чем здесь?
Привязки колонки цен к валюте в прайс-листе Excel и настройка автоматического обновления курса
Зачем это нужно?
Если вы работаете с поставщиками, которые дают цены в валюте, которая не совпадает с основной валютой магазина, то наверняка уже устали исправлять курс в магазине. А возможно, вы или ваши клиенты стали жертвой скачков курсов за последнее время.
Сейчас мы настроим свой прайс лист в Excel так, что нам не придется больше думать об обновлении курсов.
Настройка XLS файла
Откройте прайс и создайте в нем новый пустой лист:
Перейдите во вкладку «Данные» и выберите в ней Получить внешний данные — Из Веба:
У меня открылась страница www.yandex.ru, вы можете выбрать любую другую (например сайт Центробанка), главное, чтобы на ней был курс необходимой валюты. Щелкните по значку с черной стрелкой на желтом фоне и нажмите кнопку «Импорт»:
Укажите ячейку, в которую следует поместить данные из веба:
Дождитесь, пока данные загрузятся и найдите ячейку с валютой (у меня они оказались на 83 строке):
Нажмите правой кнопкой мыши и выберите пункт «Свойства диапазона данных»:
Укажите интервал обновления или дайте команду курсу обновляться каждый раз, когда открываете файл.
Теперь осталось умножить колонку с нашими ценами на курс. Но что делать, если в ячейке содержаться текстовые символы валюты, например руб. 61,8457
как на cbr.ru? Для этого нам понадобится функция ПСТР:
=ПСТР(Лист1!B48;6;10)
Где: Лист1!B48
— ячейка с курсом; 6
— количество символов, которые нужно «отрезать» от начала строки; 10
— количество знаков, которое следует извлечь из текста.
Все что, что нужно теперь — это создать новую колонку в которой умножить цену в у.е. на курс. Теперь ваши цены автоматически обновляются в xls прайсе и могут за несколько минут попасть в интернет магазин.
Что дальше?