Каждый инвестор рано или поздно сталкивается с необходимостью ведения учёта своего портфеля, особенно если брокеров несколько. В первом приближении для этого подходит Excel: многим знаком, работает локально и почти всегда установлен на компьютере. Подходит для расчета доходности, учета дивидендов.
Однако механическая работа со временем утомляет, а возможности Excel для автоматизации онлайн получения котировок ограничены. Google Таблицы решают эту проблему: это изначально облачный инструмент. Чтобы получить актуальную цену акций, достаточно одной формулы.
В этой статье мы разберём, как Google Таблицы могут дать инвестору больше свободы. Я покажу на примерах, как с помощью встроенных инструментов и простых гугл скриптов (Google Apps Script) превратить таблицу в полноценную платформу для анализа и автоматизации вашего портфеля. А ещё разберем получение котировок в обоих инструментах.
Получаем данные с Московской Биржи
Google Таблицы
Google Таблицы обращаются к онлайн-данным через встроенную функцию IMPORTXML. Это по сути встроенный парсер, который заходит по ссылке и вытаскивает нужный фрагмент из XML или HTML.

Пример (в ячейке A3 указан тикер SBER):
Наименование: =IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME"; concatenate("//row[@SECID='";A3;"']/@SECNAME"))
Цена сегодня: =SUBSTITUTE(IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST"; concatenate("//row[@SECID='";A3;"']/@LAST"));"."; ",")
Цена вчера: =SUBSTITUTE(
IMPORTxml("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVLEGALCLOSEPRICE"; concatenate("//row[@SECID='";A3;"']/@PREVLEGALCLOSEPRICE"))
;"."; ",")
Результат выглядит так:
Тикер |
Наименование |
Цена сегодня, 17.10.2025 |
Цена вчера, 16.10.2025 |
|---|---|---|---|
SBER |
Сбербанк России ПАО ао |
302,32 |
293,27 |
Работает одинаково в Chrome, Safari, Firefox, на Windows, macOS и даже в телефоне. Везде одинаково.
Excel
Excel тоже может получать данные из сети, но делается это чуть сложнее. Здесь уже нужно использовать связку двух функций:
ВЕБСЛУЖБА()— скачивает XML‑страницу с данными;ФИЛЬТР.XML()— находит в ней нужные элементы по XPath‑запросу.

Пример дляSBER:
Наименование: =@ФИЛЬТР.XML(ВЕБСЛУЖБА("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,SECNAME");"//document//data//rows//row[@SECID='"&A3&"']/@SECNAME")
Цена сегодня: =ПОДСТАВИТЬ(@ ФИЛЬТР.XML(ВЕБСЛУЖБА("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=marketdata&marketdata.columns=SECID,LAST");"//document//data//rows//row[@SECID='"&A3&"']/@LAST");".";",")
Цена вчера: =ПОДСТАВИТЬ(@ ФИЛЬТР.XML(ВЕБСЛУЖБА("https://iss.moex.com/iss/engines/stock/markets/shares/boards/TQBR/securities.xml?iss.meta=off&iss.only=securities&securities.columns=SECID,PREVLEGALCLOSEPRICE");"//document//data//rows//row[@SECID='"&A3&"']/@PREVLEGALCLOSEPRICE");".";",")
Результат:
Тикер |
Наименование |
Цена сегодня |
Цена вчера |
|---|---|---|---|
SBER |
Сбербанк России ПАО ао |
302,14 |
293,27 |
Но есть важное ограничение: функции ВЕБСЛУЖБА и ФИЛЬТР.XML работают только в Excel под Windows. На macOS они просто не поддерживаются, а в Excel Online выдадут ошибку.
Горячие клавиши и нюансы ОС
В Excel под Windows можно обновить все данные во всех листах сочетанием Ctrl + Alt + F9. Программа пересчитает все формулы, включая сетевые запросы.

Однако под Linux та же комбинация приведёт к неожиданному результату — чёрному экрану. Почему? Потому что Ctrl + Alt + F9 в Linux переключает систему в консольную сессию (TTY9). Вы просто покидаете графический интерфейс и попадаете в консоль. Чтобы вернуться обратно, нажмите Ctrl + Alt + F1 (или F2, в зависимости от дистрибутива).
Правильная комбинация для LibreOffice Calc под Linux — Ctrl + Shift + F9, она безопасно обновляет все формулы без переключения терминалов.
Хочу заметить, что котировки предоставлены здесь исключительно для ознакомления и скачиваем мы их тоже для этого, в соответствии с правилами Московской биржи.
Когда стандартных формул мало. Знакомство с Google Apps Script
По‑русски это просто гугл‑скрипты — встроенный язык, который позволяет расширять возможности Google Таблиц. Если IMPORTXML — это способ «заглянуть» на сайт и взять нужный кусок данных, то Google Apps Script (GAS) — это уже полноценный инструмент автоматизации.
Представьте, что вам нужно не просто получить цену акции, а, например, узнать ИНН компании по её тикеру. Стандартные формулы тут бессильны: данные разбросаны по страницам, требуют парсинга JSON‑ответа и циклических запросов к API.
Здесь помогает GAS — это JavaScript, который выполняется внутри Google Таблиц. Вы можете написать свою функцию, например =GET_INN_BY_TICKER("SBER"), и она будет работать как родная формула. Google сам выполнит запрос к API Московской биржи, обработает данные и вернёт результат в ячейку.
Для Excel аналогом служит VBA — Visual Basic for Applications. Но там любая работа с веб‑данными превращается в мучительный процесс: ручная настройка, COM‑объекты, ошибки безопасности. В GAS всё проще: несколько строк на JavaScript — и ваша таблица умеет то, чего не умеет Excel.
Конкретная специфическая задача - ищем ИНН по тикеру с биржи
Мы создадим свою формулу прямо в таблице — простую, как =SUM(), только с реальными данными Московской биржи. Задача: получить ИНН компании по её биржевому тикеру.
Шаг 1. Открываем редактор скриптов
Откройте вашу Google Таблицу. В верхнем меню выберите Расширения → Apps Script. Перед вами появится окно с кодом — это и есть встроенный редактор. Удалите содержимое и вставьте наш код функции GET_INN_BY_TICKER.

Шаг 2. Вставляем код
// =================================================================
// ТЕСТОВАЯ ФУНКЦИЯ
// =================================================================
/**
* Запускает тесты для функции GET_INN_BY_TICKER и выводит результаты в лог.
* Эту функцию нужно запускать прямо из редактора Apps Script.
*
* Автор: Михаил Шардин
* Онлайн-визитка: https://shardin.name/
*
*/
function test_getInnByTicker() {
const testTickers = ["SBER", "LKOH", "NONE", "gazp"];
Logger.log("--- Начинаем тестирование функции GET_INN_BY_TICKER ---");
testTickers.forEach(ticker => {
// Вызываем основную функцию
const inn = GET_INN_BY_TICKER(ticker);
// Выводим результат в лог (журнал выполнения)
Logger.log(`Результат для "${ticker}": ${inn}`);
});
Logger.log("--- Тестирование завершено ---");
}
/**
* Получает ИНН (Идентификационный номер налогоплательщика) для компании по её тикеру на Московской бирже.
*
* @param {string} ticker Тикер акции, например, "SBER" или "LKOH".
* @return {string} ИНН компании или сообщение об ошибке, если тикер не найден.
*
* Автор: Михаил Шардин
* Онлайн-визитка: https://shardin.name/
*
*/
function GET_INN_BY_TICKER(ticker) {
// Проверяем, был ли передан тикер в функцию
if (!ticker) {
return "Ошибка: Укажите тикер акции.";
}
// Приводим тикер к верхнему регистру
const targetTicker = ticker.toUpperCase();
const baseUrl = "https://iss.moex.com/iss/securities.json";
const params = "?engine=stock&market=shares&iss.meta=off"; // iss.meta=off для более простого ответа
let start = 0;
const step = 100; // API MOEX возвращает по 100 записей за раз
// Цикл для перебора страниц с данными (пагинация)
while (true) {
try {
const fullUrl = `${baseUrl}${params}&securities.columns=secid,emitent_inn&start=${start}`;
// Выполняем запрос к API Московской биржи
const response = UrlFetchApp.fetch(fullUrl, {'muteHttpExceptions': true});
const data = JSON.parse(response.getContentText());
// Извлекаем массив с данными по акциям
const securitiesData = data.securities.data;
// Если массив пуст, значит, мы просмотрели все страницы
if (securitiesData.length === 0) {
break;
}
// Ищем нужный тикер в полученных данных
for (let i = 0; i < securitiesData.length; i++) {
const row = securitiesData[i];
const currentTicker = row[0]; // secid
const inn = row[1]; // emitent_inn
if (currentTicker === targetTicker) {
// Если тикер найден, возвращаем ИНН
return inn ? String(inn) : `ИНН не указан для ${targetTicker}`;
}
}
// Переходим к следующей странице
start += step;
} catch (e) {
// В случае ошибки возвращаем её описание
return `Ошибка API: ${e.message}`;
}
}
return `Тикер "${targetTicker}" не найден.`;
}
Шаг 3. Что делает этот код
— UrlFetchApp.fetch(fullUrl) отправляет запрос на сайт Московской биржи — как будто вы сами открыли эту ссылку в браузере.
— JSON.parse(...) превращает ответ в удобный формат, где можно обращаться к элементам массива.
— Цикл for (...) просто перебирает все акции, пока не найдёт нужный тикер.
Шаг 4. Запускаем

Сохраните проект (иконка дискеты) и вернитесь в таблицу. В любой ячейке введите: =GET_INN_BY_TICKER("LKOH"). Нажмите Enter — через секунду появится ИНН компании «Лукойл».
В Excel аналогичная задача потребовала бы VBA с ручной настройкой HTTP‑запросов.

Что еще можно сделать? Безграничные возможности автоматизации
Google Apps Script открывает возможности, которые превращают таблицу в инвестиционную платформу:
Автоматические уведомления. Представьте: вы задали целевую цену покупки или продажи акции, а скрипт проверяет котировки каждый час и отправляет вам письмо на почту или сообщение в Telegram, когда порог достигнут. Никаких платных сторонних сервисов — всё работает внутри таблицы. Настраивается за 10 минут.
Сбор статистики. Можно запускать скрипт раз в день по расписанию — он будет автоматически записывать цены закрытия по всем позициям портфеля на отдельный лист. Через месяц у вас уже будет история для анализа трендов и расчёта волатильности без ручного копирования данных.
Интеграция с другими сервисами. Google Apps Script умеет не только забирать котировки с биржи. Вы можете парсить RSS‑ленты с новостями о ваших компаниях, синхронизировать данные с Google Календарём (например, отмечать даты дивидендных выплат) или автоматически формировать PDF‑отчёты в Google Документах.
Создание собственных дашбордов. Скрипты могут строить графики динамики портфеля и даже генерировать полноценные отчёты по расписанию. Всё это без программирования сложной логики — только простой JavaScript и встроенные возможности экосистемы Google API.
Заключение
Для частного инвестора важны актуальные данные и Google Таблицы предлагают готовое решение. Встроенные функции для работы с веб-данными и Google Apps Script позволяют достаточно просто создавать инструменты анализа.
Скопируйте мой скрипт из этой статьи, попробуйте эту функцию, и вы увидите, насколько мощным инструментом для анализа может стать обычная электронная таблица.
Автор: Михаил Шардин
? Моя онлайн‑визитка
? Telegram «Умный Дом Инвестора»
21 октября 2025
Комментарии (15)

Armitage1986
21.10.2025 02:35В Excel 365 есть инструмент "Акции" (вкладка "данные"), который по тикеру загружает кучу данных на выбор.
С мосбиржей не работает, к сожалению, но в остальном вполне удобный инструмент.

empenoso Автор
21.10.2025 02:35Скорее всего до определённых событий мосбиржа там была

Armitage1986
21.10.2025 02:35Увы, но нет, скорее всего. Я на подписке с 2019 года и мосбиржи там не было еще тогда.

degroeg
21.10.2025 02:35Что в Excel что в Google есть замечательные инструменты для работы с акциями: STOCKHISTORA в Excel (как уже отмечено выше) и GOOGLEFINANCE в Google. И да, на хабре были статьи как этими инструментами пользоваться. Каждый из них хорош по своему, со своими достоинствами и недостатками. Но для домашнего брокера, самое то - покрывают процентов 90 необходимого.
Если надо больше и хотите данные напрямую с интерета скачивать, то в Excel есть такая вещь как DataQuerry, никакой VBA тут не нужен.
Если же вам и этого мало, то в том же Excel есть ExcelScript (запускается из вкладки Автоматизация, правда требует онлайн и OneDrive, впрочем как и Google).

empenoso Автор
21.10.2025 02:35Для функции ИСТОРИЯАКЦИЙ требуется Microsoft 365 персональный, Microsoft 365 для семьи, Microsoft 365 бизнес стандартный или подписка Microsoft 365 бизнес премиум.
И бумаг с Мосбиржи там сейчас всё равно нет.

Prologos
21.10.2025 02:35Делал нечто похожее и для себя лет 5 назад, только чуть проще, но это все стало неинтересно, так как на этом трудно что то заработать,.. по мне так, наверно легче в тотализатор играть - понятно хотя бы где вход и выход
Gedeonych
Вот ещё бы учесть современные реалии с использованием функционала иностранных платформ, то было бы всё совсем радужно ... (да-да, "для частного..." в заголовке я заметил), но всё же...
А за статью спасибо, интересное сравнение.
empenoso Автор
Здесь про котировки с Мосбиржи
grizzly_8
Кстати, про "иностранные платформы". На Яндекс Документах это все работать будет или там функционал не дотягивает?
empenoso Автор
Я не знаю
xSVPx
Рискменеджмент не ваше...