Excel: импорт данных из Интернета
Уважаемая редакция! На работе мне часто приходится использовать данные о курсах валют. Переносить информацию из Internet Explorer в Excel не всегда удобно, особенно если делать это приходится постоянно. Подскажите, можно ли получить данные о курсах прямо в Excel (минуя Internet Explorer) и как это сделать? Работаю с Excel версии 2003. Заранее благодарю.
В. Семеняка, г. Харьков
Отвечает
Николай КАРПЕНКО, канд. техн. наук, доцент кафедры прикладной математики и информационных технологий Харьковской национальной академии городского хозяйства
Да, такая возможность в программе есть. Для этого нужно создать так называемый веб-запрос. Я покажу, как это сделать на примере сайта
http://finance.bigmir.net/indicators/nbu/. Разумеется, для своих целей вы можете использовать другой интернет-ресурс. Приступим.1. Открываем таблицу Excel или создаем пустой документ комбинацией «
Ctrl+N».2. Ставим указатель ячейки в начало блока, куда нужно поместить данные запроса. Я выбрал ячейку «
A1».3. Вызываем меню «
Данные → Импорт внешних данных → Создать веб-запрос…».4. Появится окно, изображенное на рис. 1. В поле «
Адрес» печатаем ссылку на сайт. В нашем случае это http://finance.bigmir.net/indicators/nbu/.5. Нажимаем кнопку «
Пуск» или клавишу «Enter». Ждем, пока содержимое веб-страницы появится в окне «Создание веб-запроса». Когда страница загрузится, на таблицах, которые Excel может импортировать, появятся черно-желтые стрелки (рис. 1).6. Щелкаем по такой стрелке возле тех данных, которые нужно импортировать на лист Excel. Черно-желтая стрелка превратится в галочку на зеленом фоне, а таблицу для импорта Excel покажет на темном фоне (рис. 1, таблица с курсами валют).
7. Когда нужные таблицы помечены, нажимаем кнопку «
Импорт» (в правом нижнем углу окна «Создание веб-запроса»).8. Появится окно «
Импорт данных» (рис. 2), в котором можно задать параметры для выполнения запроса. Например, изменить адрес ячейки, начиная с которой Excel запишет данные. Можно импортировать данные на новый лист или задать свойства обработки запроса.9. Нажимаем кнопку «
Свойства». Появится окно «Свойства внешнего диапазона», как на рис. 3.10. В этом окне можно ввести имя запроса, указать частоту обновления данных, определить правила добавления строк и колонок при изменении импортируемого диапазона и т. д. Большинство этих параметров можно оставить по умолчанию. Я советую ограничиться одним — включить флажок «
Обновлять каждые» и ввести частоту обновления данных с сайта (в минутах).11. Нажимаем кнопку «
ОК», чтобы вернуться в окно «Импорт данных».12. В окне «
Импорт данных» снова нажимаем «ОК».Через некоторое время данные из сайта появятся на рабочем листе Excel (рис. 4). В принципе задачу мы решили, но хотелось бы сделать несколько замечаний.
Важно!
Обновление информации через веб-запрос происходит периодически с заданным интервалом времени. Может получиться так, что в тот момент, когда вам понадобились сведения о курсах валют, данные еще не обновились. Чтобы застраховаться от такой ситуации, выполняйте обновление данных вручную.Чтобы обновить информацию через веб-запрос, делайте так:
1) поставьте указатель активной ячейки внутрь данных с результатами запроса;
2) щелкните правой кнопкой мыши и выберите из контекстного меню пункт «
!Обновить».Важно!
При обновлении запроса форматирование ячеек с данными Excel сохранит, а вот адреса ячеек, куда импортируются данные, изменить нельзя.Чтобы убедиться в этом, сделайте так:
1) в таблице на рис. 4 выделите блок «
A2:D4»;2) присвойте ему полужирное начертание («
Ctrl+B»);3) поставьте указатель активной ячейки внутрь области данных;
4) щелкните правой кнопкой мыши и вызовите пункт «
!Обновить».Ячейки «
A2:D4» останутся с полужирным начертанием.Теперь попробуем изменить блок с данными, например добавим в него несколько пустых строк или переместим часть блока в другую область рабочего листа, а затем обновим запрос.
После обновления информация будет записана на прежнее место.Совет
Чтобы преобразовать результат работы веб-запроса в удобную форму, создайте новый рабочий лист и при помощи ссылок сформируйте на нем данные в соответствии с вашими требованиями.Например, я хочу из таблицы на рис. 4. получить курсы валют в формате, как на рис. 5. Для этого на новом рабочем листе я создал строку заголовков и вписал формулы, как показано в таблице.
Адрес ячейки | Формула |
A2 | =Лист1!A2 |
A3 | =Лист1!A3 |
A4 | =Лист1!A4 |
B2 | =Лист1!D2 |
B3 | =Лист1!D3 |
B4 | =Лист1!D4 |
И еще очень важный момент. Вы наверняка столкнетесь с ситуацией, когда
на разных сайтах числовые данные для импорта в Excel представлены по-разному. Никакой закономерности здесь нет. Например, импортировав таблицу с сайта «Yandex.ru», числа на рабочем листе будут представлены в «классическом» формате Excel: целая и дробная часть разделены символом «,» (запятая). Такую информацию вы сразу можете использовать без какого-либо преобразования. При работе, скажем, с сайтом «finance.bigmir.net» в качестве разделителя целой и дробной части будет использован символ «.» (точка), а для разделителя разрядов — символ «пробел». При стандартных настройках Excel такие числа будет рассматривать как текст, а в отдельных случаях — как дату. Использовать их в вычислениях не удастся. Кстати, заметить эту ситуацию несложно: после импорта данных «числа» будут выравниваться по левому краю. Для решения проблемы лучше всего изменить настройки параметров Excel. Например, для работы с сайтом «finance.bigmir.net» сделайте так:1) вызовите меню «
Сервис → Параметры…»;2) перейдите на закладку «
Международные» (рис. 6);3) снимите флажок «
Использовать системные разделители»;4) в окно «
Разделитель целой и дробной части» введите символ «.» (точка);5) нажмите «
ОК»;6) перезагрузите Excel и продолжайте работу.
Важно!
Смена символа-разделителя никак не отразится на ранее созданных файлах. Изменится только форма представления чисел. Все формулы и настройки будут работать корректно.И последнее. Обратите внимание на рис. 4. После импорта данные в ячейке «
D3» по правому краю. Я специально оставил эту ошибку, чтобы проиллюстрировать еще одну возможную проблему.Важно!
Иногда на сайтах в числовых данных используется разделитель разрядов «пробел». Исправить ситуацию перенастройкой параметров в данном случае не удастся. Здесь можно посоветовать обратиться к инструменту поиска и замены.Для нашего примера на рис. 4 делаем так:
1) выделяем колонку «
D»;2) вызываем «
Правка → Заменить…» (или «Ctrl+H»);3) в поле «
Найти:» вводим символ «пробел»;4) поле «
Заменить» оставляем пустым;5) нажимаем кнопку «
Заменить все» и закрываем окно поиска и замены.Вот, пожалуй, и все, что нужно знать для успешного импорта данных в Excel из Интернета.
Жду ваших вопросов, замечаний и предложений на
bk@id.factor.ua, nictomkar@rambler.ru или на форуме редакции www.bk.factor.ua/forum. Удачной работы!