Михаил Шардин
Михаил Шардин личный блог
21 октября 2025, 03:34

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не знали

Каждый инвестор рано или поздно сталкивается с необходимостью ведения учёта своего портфеля, особенно если брокеров несколько. В первом приближении для этого подходит Excel: многим знаком, работает локально и почти всегда установлен на компьютере. Подходит для расчета доходности, учета дивидендов.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не знали


Однако механическая работа со временем утомляет, а возможности Excel для автоматизации онлайн получения котировок ограничены. Google Таблицы решают эту проблему: это изначально облачный инструмент. Чтобы получить актуальную цену акций, достаточно одной формулы.

В этой статье мы разберём, как Google Таблицы могут дать инвестору больше свободы. Я покажу на примерах, как с помощью встроенных инструментов и простых гугл скриптов (Google Apps Script) превратить таблицу в полноценную платформу для анализа и автоматизации вашего портфеля. А ещё разберем получение котировок в обоих инструментах.

Получаем данные с Московской Биржи

Google Таблицы

Google Таблицы обращаются к онлайн-данным через встроенную функцию IMPORTXML. Это по сути встроенный парсер, который заходит по ссылке и вытаскивает нужный фрагмент из XML или HTML.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не зналиGoogle Таблицы

Пример (в ячейке 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‑запросу.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не зналиMicrosoft Excel под Windows

Пример для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. Программа пересчитает все формулы, включая сетевые запросы.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не зналиЭтот же файл в LibreOffice Calc под Linux — обновляется, но вот форматы дат другие

Однако под 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.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не знали

Шаг 2. Вставляем код

<code class="javascript">// =================================================================
// ТЕСТОВАЯ ФУНКЦИЯ
// =================================================================

/**
 * Запускает тесты для функции 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}" не найден.`;
}</code>

Шаг 3. Что делает этот код

UrlFetchApp.fetch(fullUrl) отправляет запрос на сайт Московской биржи — как будто вы сами открыли эту ссылку в браузере.
JSON.parse(...) превращает ответ в удобный формат, где можно обращаться к элементам массива.
— Цикл for (...) просто перебирает все акции, пока не найдёт нужный тикер.

Шаг 4. Запускаем

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не знали

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

В Excel аналогичная задача потребовала бы VBA с ручной настройкой HTTP‑запросов.

Google Таблицы против Excel: неочевидное преимущество для инвестора и трейдера, о котором вы не зналиЧто еще можно сделать? Безграничные возможности автоматизации

Google Apps Script открывает возможности, которые превращают таблицу в инвестиционную платформу:

Автоматические уведомления. Представьте: вы задали целевую цену покупки или продажи акции, а скрипт проверяет котировки каждый час и отправляет вам письмо на почту или сообщение в Telegram, когда порог достигнут. Никаких платных сторонних сервисов — всё работает внутри таблицы. Настраивается за 10 минут.

Сбор статистики. Можно запускать скрипт раз в день по расписанию — он будет автоматически записывать цены закрытия по всем позициям портфеля на отдельный лист. Через месяц у вас уже будет история для анализа трендов и расчёта волатильности без ручного копирования данных.

Интеграция с другими сервисами. Google Apps Script умеет не только забирать котировки с биржи. Вы можете парсить RSS‑ленты с новостями о ваших компаниях, синхронизировать данные с Google Календарём (например, отмечать даты дивидендных выплат) или автоматически формировать PDF‑отчёты в Google Документах.

Создание собственных дашбордов. Скрипты могут строить графики динамики портфеля и даже генерировать полноценные отчёты по расписанию. Всё это без программирования сложной логики — только простой JavaScript и встроенные возможности экосистемы Google API.

Заключение

Для частного инвестора важны актуальные данные и Google Таблицы предлагают готовое решение. Встроенные функции для работы с веб-данными и Google Apps Script позволяют достаточно просто создавать инструменты анализа.

Скопируйте мой скрипт из этой статьи, попробуйте эту функцию, и вы увидите, насколько мощным инструментом для анализа может стать обычная электронная таблица.

Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»

21 октября 2025


📅 25 октября я прилетаю в Москву на Smart-Lab Conf 2025 — главный ежегодный сбор частных инвесторов, трейдеров и всех, кто живёт рынком.
Один день, восемь залов и десятки спикеров — от ветеранов Смартлаба до корпоративных представителей и фондов.

🕛 В 12:00 я сам выступаю в зале №7 («Спекуляции») — расскажу про автоматизацию и новые подходы к работе с финансовыми данными.
Если вам близки темы Python, Excel, API и эксперименты с ML / LLM — буду рад личному знакомству после своего выступления.

Кроме того, я готовлю подробный репортаж о конференции — не просто «понравилось / не понравилось», а именно что полезного можно вынести из каждого доклада.

43 Комментария
  • T-800
    21 октября 2025, 04:25
    Отлично! Спасибо!
  • Марат Б.
    21 октября 2025, 06:52
    Спасибо, очень полезно!
  • Алексей Мин
    21 октября 2025, 07:16
    Спасибо, давно искал простое решение для автоматизации обновления котировок!
  • Свин Копилкин (Дмитрий)
    21 октября 2025, 08:16
    Тема клевая. Вы большой молодец. Я тоже такое вел, делал на гугл таблицах. НО потом стало лень — купил вечную подписку на интелинвест. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн