Импорт биржевых котировок в Excel или Google Таблицы — задача, с которой сталкиваются как начинающие инвесторы, так и профессиональные трейдеры. Без актуальных данных о ценах акций, индексах или валютах невозможно строить графики, рассчитывать доходность портфеля или тестировать торговые стратегии. Однако не все знают, что Microsoft Excel предлагает несколько способов автоматизации этого процесса — от простого копирования с финансовых сайтов до подключения к биржевым API через Power Query.
В этой статье мы разберём 5 проверенных методов импорта котировок, включая бесплатные и платные решения, с учётом особенностей российского рынка (Московская биржа, СПБ Биржа) и зарубежных площадок (NYSE, NASDAQ). Вы узнаете, как обновить данные в один клик, избежать ошибок при парсинге и даже настроить автоматическое обновление цен каждые 15 минут. А для тех, кто работает с большими объёмами данных, мы покажем, как использовать Python прямо из Excel через надстройку XLWings.
1. Ручной ввод и копирование данных с финансовых сайтов
Самый простой, но и самый трудоёмкий способ — скопировать котировки с сайтов вроде Investing.com, Yahoo Finance или Московской биржи и вставить их в Excel. Этот метод подходит для разовых задач, когда нужно проанализировать исторические данные за конкретный день или неделю.
Чтобы минимизировать ошибки при копировании, следуйте алгоритму:
- 📌 Выделите на сайте только числовые данные (цены, объёмы, изменения в %), исключая заголовки столбцов.
- 📋 Используйте комбинацию
Ctrl + C→Ctrl + V, но после вставки выберите опциюСпециальная вставка → Текст(чтобы избежать форматирования). - 🔍 Проверьте, не скопировались ли вместе с цифрами символы валют (например, "$" или "₽") — их придётся удалять вручную или через функцию
=ПОДСТАВИТЬ().
⚠️ Внимание: При копировании с Yahoo Finance данные могут отображаться в формате локали (например, разделитель тысяч — запятая вместо точки). Используйте функцию =ЗАМЕНИТЬ(A1; ","; ""), чтобы привести числа к стандартному виду.
Для исторических данных Московской биржи удобно использовать ISS MOEX — официальный сервис с возможностью экспорта в .csv. Например, чтобы скачать котировки Газпрома (GAZP) за последний месяц:
- Перейдите на страницу истории торгов.
- Укажите даты в формате
DD.MM.YYYY. - Нажмите
Экспорт → CSVи сохраните файл. - В Excel откройте файл через
Данные → Из текста/CSV.
2. Использование функции WEBSERVICE и FILTERXML (для Excel 2013+)
Если вам нужны автоматически обновляемые котировки без ручного копирования, воспользуйтесь встроенными функциями Excel для работы с веб-запросами. Этот метод работает для акций, валют и криптовалют, но требует знания XPath — языка запросов к XML/HTML-страницам.
Пример формулы для получения текущей цены акций Apple (AAPL) с Yahoo Finance:
=FILTERXML(WEBSERVICE("https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch"), "//fin-streamer[@data-field='regularMarketPrice']")
Разберём, как это работает:
- 🌐
WEBSERVICE— загружает HTML-код страницы по URL. - 🔍
FILTERXML— извлекает конкретный элемент из кода с помощьюXPath. - 📊
//fin-streamer[@data-field='regularMarketPrice']— путь к элементу с текущей ценой на Yahoo Finance.
Для Московской биржи XPath будет другим. Например, чтобы получить цену Сбербанка (SBER):
=FILTERXML(WEBSERVICE("https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/SBER.xml?iss.meta=off&iss.only=marketdata"), "//rows/row/@LAST")
⚠️ Внимание: Некоторые сайты (например, Investing.com) блокируют запросы отWEBSERVICEкак подозрительную активность. В этом случае используйтеPower Query(см. следующий раздел) или официальные API.
3. Автоматизация через Power Query (рекомендуемый метод)
Power Query — самый мощный инструмент Excel для импорта и преобразования данных. Он позволяет подключаться к веб-страницам, API, базам данных и обновлять информацию по расписанию. Для котировок акций это идеальное решение, так как:
- ⚡ Данные обновляются в один клик (или автоматически).
- 📊 Можно импортировать исторические ряды за годы.
- 🔄 Поддерживаются Московская биржа, Yahoo Finance, Alpha Vantage и другие источники.
Пошаговая инструкция для импорта котировок Лукойла (LKOH) с Московской биржи:
- Перейдите на вкладку
Данные → Получить данные → Из других источников → Из веб. - Вставьте URL:
https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/LKOH/history.csv?from=2026-01-01 - В открывшемся окне
Power QueryнажмитеПреобразовать данные. - Удалите ненужные столбцы (например,
OPEN,HIGH, если нужна только цена закрытияCLOSE). - Нажмите
Закрыть и загрузить.
Теперь данные будут обновляться при нажатии Данные → Обновить все. Чтобы настроить автоматическое обновление:
- Правой кнопкой по таблице →
Свойства диапазона. - Установите флажок
Обновлять каждыеи выберите интервал (например, 15 минут).
Указать правильный URL источника|Удалить лишние столбцы в редакторе|Преобразовать даты в формат Excel|Настроить автоматическое обновление|Проверить отсутствие ошибок #VALUE!-->
4. Подключение к API бирж (для продвинутых пользователей)
Для профессиональной работы с котировками лучше использовать официальные API. Они предоставляют структурированные данные в формате JSON или CSV, поддерживают исторические ряды и реальный время (real-time). Ниже — обзор популярных API и примеры интеграции с Excel.
| API | Бесплатный тариф | Поддерживаемые биржи | Особенности |
|---|---|---|---|
| Alpha Vantage | 5 запросов/мин, 500/день | NYSE, NASDAQ, MOEX (ограничено) | Простой JSON, исторические данные с 1990 г. |
| Finnhub | 60 запросов/мин | US, EU, Азия | Реальное время для акций и криптовалют |
| Twelve Data | 8 запросов/мин | MOEX, LSE, TSE | Поддержка Russian RUB, исторические данные |
Чтобы импортировать данные из Alpha Vantage в Excel:
- Зарегистрируйтесь на сайте и получите бесплатный
API ключ. - Сформируйте URL-запрос. Например, для котировок Татнефти (TATN):
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=TATN.ME&apikey=ВАШ_КЛЮЧ - В Excel перейдите в
Данные → Получить данные → Из других источников → Из веби вставьте URL. - В редакторе
Power Queryразверните столбцы с данными (они будут в форматеJSON).
⚠️ Внимание: Бесплатные ключи API часто имеют ограничения по количеству запросов. Например, Alpha Vantage блокирует IP при превышении лимита. Для постоянной работы рассмотрите платные тарифы (от $50/месяц).
Как обойти ограничения бесплатных API?
Используйте несколько аккаунтов с разными API-ключами и распределяйте запросы между ними через Power Query. Альтернатива — кэшировать данные в Google Sheets с помощью скриптов Apps Script, а затем импортировать их в Excel через =IMPORTDATA().
5. Импорт котировок через Google Таблицы (с синхронизацией в Excel)
Если вы работаете в Google Таблицах, импорт котировок упрощается благодаря встроенным функциям =GOOGLEFINANCE() и =IMPORTDATA(). Главное преимущество — данные обновляются в реальном времени (с задержкой 15–20 минут). Затем вы можете экспортировать их в Excel или подключиться к таблице как к внешнему источнику.
Примеры формул:
- 📈 Текущая цена Магнита (MGNT) на Московской бирже:
=GOOGLEFINANCE("MOEX:MGNT", "price") - 📉 Исторические данные за месяц:
=GOOGLEFINANCE("MOEX:GAZP", "all", TODAY()-30, TODAY()) - 💱 Курс доллара ЦБ РФ:
=IMPORTXML("https://www.cbr.ru/currency_base/daily/", "//*[@id='val_1']/td[5]")
Чтобы перенести данные в Excel:
- Опубликуйте Google Таблицу в веб (
Файл → Опубликовать в веб → CSV). - В Excel используйте
Данные → Из веби вставьте ссылку на опубликованный CSV. - Настройте автоматическое обновление (например, каждые 30 минут).
6. Продвинутые методы: Python + Excel (XLWings, Pandas)
Для аналитиков, работающих с большими массивами данных, ручные методы импорта котировок не подходят. В этом случае поможет интеграция Python с Excel через библиотеки Pandas и XLWings. Этот подход позволяет:
- 📊 Загружать исторические данные за 10+ лет.
- 🔄 Обновлять цены по расписанию (например, каждую минуту).
- 🛠️ Обрабатывать данные перед импортом (сглаживание, расчёт скользящих средних).
Пример скрипта на Python для загрузки котировок Ростелекома (RTKM) с Moex ISS:
import pandas as pd
import xlwings as xw
Загружаем данные
url = "https://iss.moex.com/iss/engines/stock/markets/shares/boardgroups/57/securities/RTKM/history.csv?from=2026-01-01"
df = pd.read_csv(url, sep=';')
Обработка данных
df['TRADEDATE'] = pd.to_datetime(df['TRADEDATE'], format='%Y-%m-%d')
df = df[['TRADEDATE', 'CLOSE']].rename(columns={'CLOSE': 'Price'})
Экспорт в Excel
wb = xw.Book('котировки.xlsx') # Открываем файл
wb.sheets['Лист1'].range('A1').value = df # Записываем данные
wb.save() # Сохраняем
Чтобы запустить этот скрипт из Excel:
- Установите Python (версия 3.8+) и библиотеки:
pip install pandas xlwings - В Excel установите надстройку XLWings (
Файл → Параметры → Надстройки → XLWings). - Создайте кнопку для запуска макроса (через
Разработчик → Вставить → Кнопка).
Сравнение методов импорта котировок
Выбор способа импорта зависит от ваших задач, технических навыков и требований к актуальности данных. Ниже — сравнительная таблица:
| Метод | Сложность | Обновление | Подходит для | Ограничения |
|---|---|---|---|---|
| Ручной ввод | ⭐ | Вручную | Разовые задачи, небольшие объёмы | Трудоёмко, ошибки при копировании |
WEBSERVICE + FILTERXML |
⭐⭐ | Вручную или по таймеру | Текущие цены, простые дашборды | Не все сайты поддерживают XPath |
Power Query |
⭐⭐⭐ | Автоматически | История, мультивалютные портфели | Сложно настроить для реального времени |
| API (Alpha Vantage, Finnhub) | ⭐⭐⭐⭐ | Реальное время | Профессиональный анализ, боты | Ограничения по запросам, платные тарифы |
| Python + XLWings | ⭐⭐⭐⭐⭐ | Гибкая настройка | Большие данные, сложные расчёты | Требует знания Python |
Для большинства частных инвесторов оптимальным решением будет Power Query (для истории) + Google Таблицы (для текущих цен). Профессионалам стоит рассмотреть Python или платные API.
FAQ: Частые вопросы по импорту котировок
Можно ли импортировать котировки в реальном времени бесплатно?
Да, но с ограничениями. Google Таблицы обновляют данные с задержкой 15–20 минут для US-акций (через =GOOGLEFINANCE()). Для Московской биржи реальное время доступно только через платные API (например, Moex ISS Pro) или терминалы брокеров (например, Tinkoff API, Interactive Brokers).
Почему в Excel отображаются ошибки #VALUE! при импорте котировок?
Чаще всего это связано с:
- 🔢 Неправильным форматом чисел (запятая вместо точки как разделитель). Используйте
=ЗАМЕНИТЬ(A1; ","; "."). - 🌍 Региональными настройками Excel (например, даты в формате
ММ/ДД/ГГГГвместоДД.ММ.ГГГГ). - 🔗 Изменением структуры веб-страницы (если используете
FILTERXML). ОбновитеXPath.
Как импортировать котировки для всего портфеля акций?
Создайте таблицу с тикерами в одном столбце (например, A2:A10). Затем:
- Добавьте рядом столбец с формулой
=FILTERXML(WEBSERVICE("URL"&A2), XPath), гдеA2— ячейка с тикером. - Растяните формулу на все строки.
- Для
Power Queryиспользуйте параметр тикера в URL (например,".../securities/"&[Ticker]&"/history.csv").
Можно ли импортировать котировки фьючерсов или опционов?
Да, но источники данных отличаются. Для фьючерсов на Московской бирже используйте раздел /markets/futures в Moex ISS. Например:
https://iss.moex.com/iss/engines/futures/markets/forts/securities/Si-12.24/history.csv
Для опционов CME Group (США) подойдёт Alpha Vantage с функцией TIME_SERIES_INTRADAY.
Как автоматически рассчитывать доходность портфеля на основе импортированных котировок?
После импорта цен используйте формулы:
- 📈 Доходность за период:
=((Цена_текущая - Цена_покупки) / Цена_покупки) * 100. - 💰 Общая доходность портфеля:
=СУММПРОИЗВ(Количество_акций; Текущая_цена - Цена_покупки) / СУММПРОИЗВ(Количество_акций; Цена_покупки). - 📊 Для динамики по дням используйте
Power Pivotили сводные таблицы.