Как в excel сделать привязку к курсу?
Содержание
- 0.1 Способ 1. Простой веб-запрос для текущего курса валют
- 0.2 Способ 2. Параметрический веб-запрос для получения курса валют на заданный интервал дат
- 0.3 Ссылки по теме
- 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 прайсе и могут за несколько минут попасть в интернет магазин.