Автоматизация Google Таблиц и Excel с ИИ: пять рабочих схем
Автоматизировать Google Таблицы и Excel с ИИ проще всего так: оставить таблицу хранилищем, вынести логику наружу и дать ей расписание. Скрипт по расписанию забирает данные из почты, форм и чатов, модель разбирает неструктурированный текст в поля, проверка по справочнику отбрасывает мусор, строки дописываются в лист через API, а формула считает итоги. Первый такой контур собирается за один рабочий день; дальше новый источник добавляется за пару часов.
Главная ошибка — начинать с инструмента. «Поставьте нам ИИ в Excel» почти всегда означает, что задача ещё не сформулирована: непонятно, что на входе, кто отвечает за ошибку и как понять, что стало лучше. Сначала определяется результат, потом выбирается схема из пяти, описанных ниже.
Что обычно автоматизируют, а что нет
Автоматизируют: перенос строк из писем, форм, чатов и мессенджеров; нормализацию данных (телефоны, даты, названия компаний и услуг); дозаполнение справочников; сверку двух листов; сводку по расписанию в почту или Telegram; ответы на вопросы по таблице вроде «сколько заявок пришло на прошлой неделе».
Не стоит автоматизировать: согласования, у которых нет владельца процесса; решения вроде «что закупать»; расчёты, где формулы уже ошибались, — сначала лечится модель данных, иначе автоматизация просто ускорит неверный результат. И отдельно: таблица, которую правит пять человек без правил, не автоматизируется ничем, кроме наведения порядка.
Три уровня автоматизации
Первый уровень — внутри файла: формулы, сводные таблицы, Apps Script в Google Таблицах и Office Scripts в Excel. Плюс: ничего не нужно снаружи, всё живёт рядом с данными. Минус: логика привязана к файлу, ломается при копировании, не умеет ждать внешние системы и почти не видна новому сотруднику.
Второй уровень — внешний контур: отдельный скрипт или сценарий по расписанию читает и пишет через API. Здесь появляются журнал, повторные попытки и обработка ошибок — то, без чего автоматизация живёт до первого сбоя. Это уровень, на котором делается большинство рабочих задач.
Третий уровень — агент: те же чтение и запись плюс модель, которая разбирает текст, раскладывает его по полям, помечает сомнительное и отвечает на вопросы по данным. Агент не отменяет первые два уровня, он надстраивается над ними.
Схема 1. Google Sheets API: чтение, дописывание, обновление
Доступ собирается так: проект в Google Cloud, включённый Sheets API, сервисный аккаунт и его почта, которой выдан доступ к нужному файлу. Идентификатор таблицы берётся из адреса. Дальше три базовых вызова: values.get читает диапазон по A1-нотации, values.append дописывает строки в конец таблицы, values.update перезаписывает конкретный диапазон. Форматирование и ширины колонок — через batchUpdate.
У values.append есть неочевидное поведение: метод ищет «таблицу» внутри указанного диапазона и дописывает следующую строку, начиная с первого столбца этой таблицы (описание метода). Если в диапазон попали пустые столбцы справа или слева, строка может уехать не туда. Лечится точным диапазоном по факту данных и ключом в первой колонке.
Параметр valueInputOption решает, как таблица разберёт вход: RAW оставляет строку как есть, USER_ENTERED интерпретирует её так же, как ручной ввод, включая даты и числа. Из-за этого «2026-11-10» и «10.11.2026» могут превратиться в разные типы — формат даты лучше фиксировать до запуска.
Лимиты важнее, чем кажется: 300 запросов в минуту на проект и 60 в минуту на пользователя, плюс таймаут обработки запроса 180 секунд; при превышении API отвечает ошибкой и просит повторить после паузы с нарастающей задержкой (квоты Sheets API). Практический вывод: писать пачками, а не по строке в цикле, и разносить тяжёлые прогоны по расписанию.
Схема 2. Apps Script: скрипт внутри таблицы
Apps Script — это JavaScript внутри Google Таблиц. Он запускается по времени, при изменении файла, по отправке формы или по кнопке в меню. Хорош для рутины: сверить два листа, разложить строки по вкладкам, отправить сводку в Telegram или на почту, подчистить дубли. Сервер не нужен, доступы уже есть у владельца файла.
Ограничения честные: 6 минут на одно выполнение и 20 триггеров на пользователя на скрипт (квоты Apps Script), а сами триггеры принадлежат автору скрипта. Если автор уходит и его доступ отзывают, расписание тихо перестаёт работать. Поэтому в рабочем контуре у скрипта должен быть служебный владелец, а в журнале — отметка о последнем успешном запуске.
Ещё одно правило: тяжёлую часть (обращение к модели, разбор файлов, внешние API) лучше держать снаружи, а в таблице оставить тонкий клиент, который забирает готовые строки. Иначе шесть минут превращаются в потолок всей системы.
Схема 3. Excel и Microsoft Graph
Для файла, который лежит в OneDrive или SharePoint, вход — Microsoft Graph: ресурсы workbook, workbook/worksheets, диапазоны и таблицы (справочник Excel API). Нужна регистрация приложения в Azure AD, права на запись файлов и токен. Пакетные операции идут через сессию: одна сессия — много изменений, меньше запросов.
Квоты здесь щедрее, но не бесконечные: для Excel через Graph действует лимит 1500 запросов за 10 секунд на приложение в рамках тенанта и 5000 за 10 секунд суммарно по всем тенантам (лимиты Graph). Для типичной выгрузки на несколько тысяч строк это запас, для построчного обхода по одному запросу на ячейку — уже нет.
Когда брать: файл уже в Microsoft 365, есть администратор, который выдаст доступы, и нужен собственный код или интеграция с внутренней системой.
Схема 4. Power Automate и Excel Online (Business)
Конструктор без кода: триггер (новая форма, письмо, расписание) и действия коннектора — «List rows present in a table», «Add a row into a table», «Run script» (описание коннектора). «Run script» вызывает Office Scripts, то есть сложную логику можно написать кодом, а расписание и связки с другими сервисами оставить конструктору.
У коннектора есть прямо описанное ограничение: в действии «List rows present in a table» данные могут быть не самыми свежими, если используется фильтрация или сортировка. В отчётности это критично: цифра за вчера может прийти из кеша. Лечится отметкой времени синхронизации в самой таблице, а не доверием к ответу коннектора.
Когда брать: команда не пишет код, лицензии Microsoft 365 уже есть, а сценариев немного. Когда не брать: тысячи строк на прогон и жёсткие требования к задержке.
Схема 5. Агент, который ведёт таблицу
Агенту хватает четырёх инструментов: прочитать диапазон, дописать строку, обновить ячейку по ключу, отправить уведомление. Каждый работает в разрешённых границах: конкретный лист, конкретные колонки, максимум строк на запуск. Всё остальное — запрещено на уровне кода, а не в инструкции модели.
Модель включается там, где вход неструктурирован: письмо клиента, сообщение в чате, скан накладной, голосовое. На выходе — строго поля строки, проверенные по схеме: если модель не нашла значение, поле остаётся пустым, а строка уходит в лист «на проверку». Такой шаг важнее, чем кажется: агент, который заполняет любое поле любой ценой, портит базу быстрее, чем ручной ввод.
Запреты для такого агента формулируются коротко: не удалять строки, не перезаписывать историю, не считать итоги. Итоги считает формула, потому что её результат можно перепроверить, а ответ модели — нет. И каждое действие пишется в журнал: дата, источник, кто подтвердил, идентификатор строки.
Правила схемы данных
Одна строка — одна запись. Первая строка — заголовки, без объединённых ячеек. Идентификатор в первой колонке. Отдельные листы: данные, справочники, журнал. Даты в одном формате, числа без текстовых приписок. Никаких «итого» внутри данных — итоги живут на отдельном листе или в формуле над диапазоном.
Формат меняется только с версией: если добавляется колонка, старый скрипт должен падать с понятной ошибкой, а не писать значение в соседнюю. Это скучная часть, но именно она отличает контур, который живёт годами, от демонстрации.
Где ломается чаще всего
Права. Сервисный аккаунт не видит файл, пока файл ему не открыт; приложение Azure AD получает не те права; триггер Apps Script принадлежит человеку, который уже не работает в компании. Половина «неработающих автоматизаций» — это доступы, а не код.
Лимиты. Обход пяти тысяч строк по одному запросу — это пять тысяч запросов и почти гарантированная ошибка квоты. Лечится пачками, расписанием и повторными попытками с задержкой.
Устаревшие данные. Кеш коннектора, часовая синхронизация, «вчерашняя» выгрузка: отчёт выглядит рабочим, но показывает не то. Отметка времени последней синхронизации в самой таблице снимает вопрос.
Модель без справочника. Если в таблице нет списка допустимых значений, модель уверенно поставит неверную категорию. Валидация по справочнику и лист «на проверку» решают это дешевле, чем смена модели.
Формулы и данные на одном листе. Вставка строки ломает абсолютные ссылки, а сортировка перемешивает расчёты. Отдельный лист данных — самое дешёвое профилактическое средство.
Сколько времени занимает
Схема внутри файла (формулы, Apps Script, Office Scripts): два-четыре часа на первый сценарий. Внешний контур на Sheets API или Microsoft Graph: один рабочий день, включая доступы и журнал; каждый следующий источник — два-три часа. Агент с разбором текста и приёмкой: два-три дня, и примерно половина этого времени уходит на правила, справочники и проверку на реальных строках, а не на код.
Если доступ к API закрыт корпоративной политикой, срок не считается: сначала администратор и права. Это самая частая причина, по которой проект «на день» занимает две недели.
Чек-лист запуска
Задача сформулирована в терминах результата: какая строка должна появиться в таблице и откуда. Определён владелец процесса и тот, кто разбирает ошибки. Есть ключ и фиксированные заголовки. Выданы доступы: сервисный аккаунт или приложение Azure AD. Задано расписание и лимит строк на прогон. Написаны правила «что делать при сбое». Ведётся журнал с временем последней успешной синхронизации. Первые две недели — приёмка человеком. И тест на десяти реальных записях до включения расписания.
Если из списка есть только таблица и желание, начинайте с ключа, заголовков и справочников: они нужны в любой из пяти схем и не зависят от того, какой инструмент вы выберете.