Блог им. empenoso

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

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

13.9К | ★119
43 комментария
Отлично! Спасибо!
avatar
T-800, спасибо 🤗
avatar
Спасибо, очень полезно!
avatar
Марат Б., спасибо 🤗
avatar
Спасибо, давно искал простое решение для автоматизации обновления котировок!
avatar
Алексей Мин, спасибо 🤗
avatar
Тема клевая. Вы большой молодец. Я тоже такое вел, делал на гугл таблицах. НО потом стало лень — купил вечную подписку на интелинвест. 
Свин Копилкин (Дмитрий), бывает :)
avatar
нормально у меня справляются excel , и не нужно ни каких кодов.
Дмитрий Мамедиев, большинство в экселе
avatar
А чем Квик плох для получения тех же данных?!
avatar
myaucha, только динозавры им пользуются похоже :) 
avatar
Михаил Шардин, Динозавры пользовались, но вымерли, а Квик живет и по сей день
avatar
Долго пользовался гуглом, но в начале этого года переехал на эксель. В гугл таблицах все чаще выскакивали ошибки при обращении к апи мосбиржи, иногда могли висеть по несколько дней. В экселе такого нет. Такое впечатление, что мосбиржа подбанивает запросы из гугла
avatar
Alex_Kukolevsky, эксель быстрее и без ограничений на количество
avatar
Alex_Kukolevsky, какая ты сегодня пукашечка?
avatar

А где таблицы скачать?

avatar
Александр, все формулы прямо в статье приведены
avatar
Михаил Шардин,

Да зачем формулы, лучше сразу шаблон.

avatar
Александр, формулы и есть шаблон
avatar
Я уже писал — капец как рад что наткнулся на тебя)

avatar
BiggusDickus, спасибо 🤗
avatar
Спасибо атору! Полезно
avatar
bonds2-0, спасибо 🤗
avatar
Влад, можно
avatar
Google Docs имеет еще много полезных фишек. Вот одна из них. В windows 11 есть полезная фича — диктовка с голоса. Но (облом!)  работает (пока?) только на английском.
А вот Google Docs прекрасно понимает устный русский. Только приличным микрофоном надо озаботится. USB микрофон для стриминга (~2000р) вполне подойдет.
PS. Любителям экзотики. Обычно USB микрофон в Windows 11 не требует драйверов.
Но под Windows Server, Linux и т.п. они нужны, но их обычно нет от слова совсем …
avatar
Synthetic, спасибо за дополнение
avatar
интересно, спасибо!
avatar
Григорий, 🙏
avatar
Михаил, тема актуальная, спасибо Вам!
Можете подсказать аналогичную формулу для получения актуальной котировки по облигациям?
Благодарю!
Мне порой кажется, что Михаил сам даже не подозревает, насколько полезным скиллом обладает, и какой полезный скилл он несёт в массы. Реально возможности гораздо шире чем просто «скачать актуальные котировки с Мосбиржи», «посчитать свой портфель» и прочая мелочь. Но всех возможностей я конечно не раскрою. Вы, господа инвесторы, должны к этому сами прийти ;)
avatar
Эмиль К., заинтриговали!
avatar
Очень полезно! Благодарствую!
avatar
Достижение альфы к рынку требует поиска неэффективностей которые не видят другие. Верной дорогой идёте, товарищ! Обычно мы свои подобные наработки не рассказываем, так как афиширование даже некоторых идей делает рынок эффективнее и зарабатывать на нём становится сложнее.
avatar
V., мне кажется что именно эта статья не совсем про это
avatar
Так-то в Excel есть PowerQuery, там можно посчитать практически всё что угодно, распарсить json, xml и трансформировать как угодно, автообновление также можно настроить.
avatar
Smart One, дело привычки
avatar
При таком подходе, на каждую котировку будет запрашиваться xml со всеми котировками?
Лучше на отдельный лист достать все котировки, а потом уже с него формулами читать.
avatar
Отличный пост, спасибо за информацию! Гугл таблицы использую, но как аналог экселя с возможностью на разных устройствах вносить и корректировать данные по личным финансам, учёту расходов и доходов. Вы же интересный ракурс использования показали, появилось желание внедрить)
Это всё хорошо..-но! В итоге есть ли готовое готовое  решение для в общем то простой задачи- скачивание исторических котировок с ММВБ различных фреймов! Ранее не было ни Питона ни многих других новых  инструментов но при этом было несколько готовых удобных решений  этой простой задачи… Может что упустил- дайте ссылку…
avatar
igor12, есть, но готового нет
avatar
Глспади, это хорошо, но по итогу вы упретесь в одно — автоматизация! И придется вам искать ресурсы. Я тоже до сих пор работаю через это, но уперся банальные действия. Точнее их постоянно придется делать, чтоб учитывать точное состояние портфеля. Невыносимая головная боль! НО для тех кто любит купил и сижу, то самый хороший бесплатный вариант. Для среднесрочной и внутридневной абсолютно не подходит.
Хотя конечно можно заморочится если брокер апи дает. Но у вас хватит сил и времени на это?
avatar

Читайте на SMART-LAB:
Фото
USD/CAD: инициатива постепенно переходит к медведям?
Канадский доллар отскочил от точки пересечения пробитого даунтренда (на графике обозначен цифрами 1 и 2) и уровня поддержки 1.3730. Быки удержали...
Фото
Как изменились средние доходности облигаций (по рейтингам) за неделю? Для ВДО - сильно
Средние доходности облигаций в зависимости от рейтинга (бледные столбцы — доходности без сглаживания). И как они изменились за неделю (для...
Короткие тезисы с онлай-звонка Моzgovik-клуба на этой неделе. 
В среду на этой неделе мы провели традиционный онлайн звонок, где постарались ответить на вопросы наших клиентов. Напомню, что участие в звонках и...

теги блога Михаил Шардин

....все тэги



UPDONW
Новый дизайн