
Наша компания BotHub представила новое приложение для электронных таблиц Google Sheets, которое позволяет запускать нейросети из ячеек электронных таблиц. Да‑да, без необходимости переключаться между программами или теряться во вкладках браузера! Просто берёте нужные данные — и... всё остальное делает ИИ. Красота, правда?
Я думаю (и, признаюсь, надеюсь), что статья перед вами — это что‑то вроде микса всеядного гайда и вдохновляющего мануала. Для всех, кто хоть раз открывал таблицу (а таких немало), это должно стать открытием.
Не откладываем в долгий ящик! Приготовьтесь к диалогу с ячейками — самому странному разговору в вашей жизни.

Какие задачи может решить новое приложение BotHub для Google Sheets?
Когда нейросети только начали покорять мир, их тут же начали тестить на всяких бытовых задачах, вроде автогенерации формул.
Идея, конечно, неплохая, но мы решили пойти дальше. Как именно? Теперь вы напрямую пишете ИИ‑промпты прямо в формулах Google Sheets. Всего одна команда — и результат будет у вас.
Наше приложение способно загреметь во множестве сценариев. Вот несколько особо важных примеров:
Создание контента. Хотите запустить рекламу или написать описание товара? Нейросеть легко предложит SEO‑тексты, коммерческие позиции или сформулирует заголовки.
Обработка данных. От простого анализа до сложных сценариев сортировки.
Быстрая локализация. Работаете на международный рынок? Переводы теперь можно получ��ть в момент ввода данных. Соорудили короткую строку промпта, добавили нужный язык — готово!
Оценка и редактура контента. Наш интеллект сможет оценить качество текста, найти недочёты, предложить решения или даже просто отредактировать описания ваших товаров.
О’кей... Как установить?
Для начала проверьте: вы вооружены аккаунтом Google и учетной записью BotHub? Замечательно, идем дальше.
Кстати, бонус: бесплатная версия BotHub на старте выдаёт вам 100 000 капсов. А чтобы получить их, регистрируемся по реферальной ссылке и моментально ловим эти приятные очки доверия!
Прежде чем прыгнуть в само приложение, советую заглянуть сначала на сайт bothub.chat и залогиниться там — так будет удобнее выполнить предварительные настройки.
Чувствуете, что это только начало? Подробнейшая инструкция ниже!
Она довольно‑таки длинная, со множеством скриншотов и делается один раз, поэтому я решил спрятать её под спойлер.
Скрытый текст
1.
Переходим на страницу приложения BotHub на Google Workspace Marketplace.
2.
Жмём Установить. И да, убедитесь, что вы вошли в систему через Google‑аккаунт.

3.
Для подтверждения безопасности потребуется подтвердить, какой из аккаунтов (если их несколько) использует приложение.

Выбираем нужный аккаунт, а на следующей странице жмем Продолжить.

4.
Дисклеймер: если казалось, что тут должно быть всё закончено... как в лучших сериалах, интрига ещё тянется.

Тут всё чётко — можно не задумываясь нажимать Разрешить.
5.

Так, уже почти! Дальше жмём Далее, затем открываем в новой вкладке Выполнить дополнительную настройку.
И это — та самая штука, о которой я говорил: ссылка на выполнение первоначальной настройки. Вот как выглядит страница, если перейти по ссылке:

На открывшейся странице:
Щёлкаем Добавить ключ;
Придумываем название ключа. Просто чтобы не запутаться — например, окрестите его «Google Sheets» или «API-ключ Google Sheets». Да‑да, ключ создается автоматически, но как мы назовём его — сугубо на нашей фантазии.

Всё готово, остаётся скопировать ключ. Смотрите на значок копирования рядом — жмите.

6.
Возвращаемся к нашим любимым Google Sheets. Если их вдруг нет, создайте новую таблицу. Всё просто: открываем Google Drive и жмём Создать → Google Таблицы.

7.
Идем в меню Расширения → BotHub → Установить API‑ключ.

В появившееся поле просто вставляем ранее скопированное значение. Ключ на месте, а значит — настроено правильно.

8.
И вуаля, установка завершена. С этой минуты вам доступна функция:
gpt(prompt; model; enable_web_search)
. Работайте с ней прямо внутри таблицы. (Как? Рассказываем дальше в статье.)
P. S...
Если вы случайно забыли добавить API‑ключ — не паникуйте: позже его всё равно можно создать и скопировать через страницу для разработчиков, а добавить в Google Sheets через тот же пункт меню: Расширения → Установить API‑ключ.
Звучит как квест? Немного. Но результат того стоит, уверяю! Вместо того чтобы бороться с проблемами вручную, теперь у вас всегда под рукой будет умный помощник, работающий прямо внутри таблиц.
Когда завершите настройку, переходите к следующему этапу. Там начинается самое интересное: как пользоваться новой функцией gpt()
. А пока — пару минут на кофе‑брейк ?
Как пользоваться новой функцией gpt()?
Итак, друзья, настал момент познакомить вас с функцией gpt() — это не просто набор символов, а ваш новый лучший друг в Google Sheets, если, конечно, вы хотите прокачать рабочий процесс. Эта функция принимает три параметра, где лишь один из них обязателен. Давайте разберёмся подробно.
=gpt(prompt, model, enable_web_search)
prompt
(строка) — это то, что вы отправляете в нейросеть. Представьте себе, что вы переписываетесь с чат‑ботом. Запрос должен чётко объяснять задачу.model
(строка) — этот параметр означает выбранную ИИ‑модель, через которую вы хотите сгенерировать результат.enable_web_search
(логическое значение) — параметр, отвечающий за доступ к интернет‑данным. Если задатьTRUE
, модель исследует актуальные данные на просторах сети. Если же написатьFALSE
(по умолчанию) — нейросеть ограничится своей внутренней базой данных.
Лишь первый параметр является обязательным, а последующие два можно не указывать. Причём можно указать каждый из них по отдельности или не указывать ни тот ни другой. Допустим, такой синтаксис корректен:
Параметры model и enable_web_search вовсе не обязательны. Вы можете спокойно использовать функцию без них, как в примерах =gpt("Переведи этот текст на французский: " & E3)
или =gpt("Текст какого-то промпта, ищущего информацию в интернете...";; TRUE)
.
Примеры использования функции gpt():
gpt("Переведи текст на английский. Выведи только результат: " & B2; "gpt-4o")
. Этот запрос переводит текст, который находится в ячейке B2, и результат вставляет в текущую ячейку с формулой.gpt("Напиши формулу Google Sheets для описанной задачи: " & B7; "gpt-4o")
. Здесь модель сгенерирует формулу для задачи из ячейки B7, применяя модель ChatGPT 4o.gpt("Объясни простыми словами формулу: " & C8; "gpt-5")
.gpt("Придумай рекламные слоганы для продуктов: " & D9 & char(10) & D10 & char(10) & D11; "deepseek-r1-0528")
. С таким запросом модель создаст продающие тексты. Мы добавляем перенос строки черезchar(10)
, чтобы продукты не смешались в строке.gpt("Исправь орфографию и пунктуацию в тексте. Выведи только результат: " & B12; "gpt-o3")
. Удобный промпт, чтобы автоматически исправить правописание.
Подробный пример со скриншотами смотрите далее в статье!
Какая модель лучше подойдёт именно для электронных таблиц?
Всё зависит от масштаба задачи.
Для стандартных и механических задач (без глубокой аналитики). Подойдут нейросети с суффиксами nano, mini; семейства Mistral, Qwen, а также, например, gpt‑oss-20b. Эти модели просты и бюджетны, но важно учитывать, что меньший объём параметров делает их более специфичными. Протестируйте их на ваших задачах и проверьте, будут ли они работать так, как нужно.
Для чего‑то посложнее. Если задачка «с выдумкой» — используйте такие модели, как gpt-4o, o3, gpt‑oss-120b или deepseek‑r1-0528. Они хороши для генерации текста, сложной аналитики и многосоставных запросов.
Полный список моделей здесь.
Какие модели точно не подойдут?
Например, те, которые генерируют картинки или видео;‑)
Параметр веб-поиска
Обратим внимание на третий параметр функции gpt()
!
Этот параметр, как оказалось, может существенно расширить возможности запроса за счёт... интернета. Умный веб‑поиск — уже не фантастика, а часть ваших таблиц.
Всё максимально просто: он принимает два значения — TRUE (активен) и FALSE (неактивен). Включив веб‑поиск через TRUE
, вы удваиваете мощь модели: теперь она способна черпать реальные и актуальные данные из интернета.
Пример с включенным веб‑поиском. Допустим, вам нужно описать продукт для SEO, основываясь на самых свежих данных. Вот как это может выглядеть:
=gpt("Напиши уникальное SEO-описание для товара: Ноутбук Lenovo ThinkPad X1 Carbon. Объём 400 символов. Используй абзац и список.", " deepseek-r1-0528", TRUE)
И тут модель буквально превращается в мини‑исследователя: она собирает актуальные данные из интернета и на их основе генерирует описание.
Данные нескольких ячеек или диапазонов — как всё это собрать в одну функцию gpt()?
Давайте уделим внимание интересному вопросу: как можно отправить несколько ячеек или даже диапазоны через нашу функцию gpt()
? Ведь сама функция ожидает один текстовый параметр, а бывает, что данные разбросаны по разным участкам таблицы. Пора разобраться, как ловко обойти это ограничение.
Подстановка значений: немного магии с &
Начнём с простого. Хотите объединить текст из нескольких ячеек в один параметр? Вам на помощь приходит оператор конкатенации (то есть соединения строк), в Google Sheets обозначаемый символом &
. Он позволяет объединить содержимое нескольких ячеек в одну строку и передать её в промпт.
Вот пример простой формулы:
gpt("Напиши текст, сравнивающий эти программы. 1) " & A1 & "; 2) " & A2 & "; 3) " & A3 & "; 4) " & A4 & "; 5) " & A5 & ".")
Что тут происходит?
Указанные ячейки (A1, A2...) соединяются с текстом в одну строку, разделяясь порядковыми числами.
Промпт получается полностью готовым для отправки в нейросеть, вместе со всеми вашими данными.
С таким подходом вы можете собрать в промпт хоть десяток значений, сочетая текст с ячейками. Быстро и удобно, если данные разбросаны несильно.
Диапазоны: когда нужен текстовый список
Иногда данные бывают более сложными — не отдельные ячейки, а целые диапазоны. Например, A1:E20.
И тут накручивать &
становится неудобным (а выглядит такая формула и вовсе пугающе).
Что же делать? Мы пойдём другим путём — напишем дополнительную функцию, которая преобразует диапазоны в текстовый массив. Она превратит ваши данные в удобный для нейросети формат, вроде JSON.
Это очень быстро. Вот как можно это сделать:
1. Зайдём в Расширения → Apps Script.

2. Напишем в поле исходного кода (большая пустая область) следующую функцию:
function sr(...ranges) {
return [““, JSON.stringify(ranges), ““].join(‘\n’);
}
Что делает функция?
Она принимает набор, состоящий из ячеек и/или диапазонов (например:
A1:B5, C1:C10
).Конвертирует их содержимое в JSON‑формат, который легко понять нейросети.
Возвращает результат текстом для использования в промпте.
Название sr
— это сокращение от «serialize ranges» (сериализовать диапазоны, если по‑русски). Хотите, можете переименовать её, например, в serializeRanges
. Главное, чтобы понятно было потом, зачем мы это сделали.
3. Жмём кнопку Сохранить проект на диск:

4. Готово! Теперь вы можете свободно использовать функцию sr()
в своих ячейках.
Вот пример:
gpt("Проанализируй данные и сделай выводы: " & sr(A1:E20))
Что происходит?
Данные из диапазона A1:E20 преобразуются в текстовый массив через
sr()
. Примерно в такой вид:[["Значение ячейки A1", "Значение ячейки B1"...], ["Значение ячейки A2", "Значение ячейки B2"...]...
.Этот массив присоединяется к вашему текстовому промпту.
Готовый запрос отправляется нейросети.
Важный момент!
Учтите, что функция sr()
привязывается к конкретной таблице. Это значит:
В других файлах она работать не будет, пока вы её туда не добавите.
Но на копирование‑вставку уйдёт максимум минута времени, согласитесь?
Функция sr() подойдёт для любого формата и количества данных?
Да, диапазон может быть горизонтальным (A1:ZZ1), вертикальным (A1:A1000), двухмерным (A1:G19). Их даже может быть несколько: sr(A1:ZZ1; B1:C100)
. А если он вдруг случайно окажется единичной ячейкой, ошибки не произойдет — в функцию просто передастся её значение.
А теперь — практика: генератор описаний для смартфонов
Давайте посмотрим, как теория превращается в реальный инструмент. Для демо я взял данные из интернет‑магазина и попробовал сделать генератор продающих описаний смартфонов. Результат? Судите сами:

Но давайте сразу взглянем на всю таблицу, чтобы было удобнее описывать её структуру. Собственно, вот как выглядит весь скриншот таблицы, с исходными данными и промптами. Думаю, лучше один раз увидеть, чем описывать:
Скрытый текст

Формула генератора
Вот ключевая формула, которой мы всё это сделали:
=gpt($A$77 & sr({$C$2:$C$76, D$2:D$76}), $C77)
(Кстати, тут я применил встроенную в Google Sheets возможность склеивания столбцов с помощью фигурных скообок: {столбец1, столбец2}
. Она позволяет объединить сразу два столбца в один диапазон. Это очень удобно для передачи данных. А если вместо запятой поставить точку с запятой — соединятся не горизонтально, а вертикально: {столбец1; продолжение_столбца1}
.)
Если, читая формулу, вам захотелось вскрикнуть «Что это вообще значит?!» — давайте на всякий случай распишу, что здесь происходит:
Склеиваем диапазоны:
— Участокsr({$C$2:$C$76, D$2:D$76})
— это объединение, а затем преобразование в строку-массив двух столбцов.
— Первый столбец (C2:C76) содержит имена характеристик, второй (D2:D76) — их значения.
— В итоге получается мини‑таблица 2 × 75.Добавляем промпт:
— Сначала мы берём содержимое ячейки A77, где хранится основной промпт, а затем оператором&
добавляем к ней сериализованные данные.
— Промпт готов и собран как единое целое.Далее в функцию передается второй параметр, имя модели. Он берется из ячейки C77…C79.
Собственно, это и есть весь хитрый механизм.
Результативное тестирование
Но зачем генерировать одно и то же описание на нескольких моделях? Всё просто — чтобы понять, какая модель даёт наиболее подходящий результат.
Например, как видно из примера, модель DeepSeek R1-0528 справилась лучше остальных.
Это можно было бы выяснить через чат‑бот, но сравнение в таблице и визуализация — куда удобнее.
Таким образом, вы можете не только генерировать данные, но и анализировать результаты, чтобы подобрать идеальный инструмент для вашей задачи.
Отлично, генератор описаний готов? Осталось лишь выбрать наиболее подходящую для вас модель и, возможно, отрегулировать промпт.
Хм... А как писать промпт? Есть ли особенности?
На ваш вопрос — да, есть! В общем и целом в промпт можно добавлять практически любые пожелания по оформлению результата: стиль, количество абзацев, ограничения по символам и так далее. Иногда кажущиеся мелочи оказываются решающими, поэтому выделим самые важные моменты.
1. Убираем разметку Markdown
Давайте начнём с неожиданности: вывод, который мы получаем от нейросети, на самом деле состоит из абсолютно обычного текста. Никаких реальных заголовков, полужирных шрифтов или курсивов там нет. Всё это — визуальная интерпретация. Браузер берёт текст и превращает его в тот форматированный вид, что нам привычен.
Пример необработанной Markdown‑разметки

Итак, а как нам избавиться от этого оформления в ячейках таблиц, если оно вдруг не нужно?
Предлагаем вот такую «магическую добавку» в ваш промпт:
Не применяй Markdown‑форматирование, такое как символы «*» или «_» для полужирного, курсива, а также «#» для заголовков. Заголовки обозначай просто отдельным абзацем, отделяя пустой строкой сверху и снизу, как и обычные абзацы. Заголовки 1-го уровня выделяй капсом. Элементы маркированного списка обозначай символом «•» с последующим пробелом (не табуляцией), нумерованного — числом/буквой с точкой (или скобкой) и пробелом; элементы списков оканчиваются точкой с запятой либо точкой. Гиперссылки обозначай в виде URL в круглых скобках (не применяя предваряющие квадратные скобки). В качестве горизонтальной линии применяй 5 тире подряд. Однако оформление фрагментов кода оставляй в исходном Markdown‑виде.
Фух, звучит строго, но нейросеть поймёт. Добавив это в ваш запрос (при желании можете что‑то добавить, убрать или изменить), вы получите чистый текст, отлично подходящий для использования в таблицах. А если Markdown вам нужен — просто пропустите этот довесок. Всё просто.
2. Предотвращяем диалог с пользователем
Вот честно, если бы ответы нейросети выглядели как оживлённый разговор, в таблицах это вызывало бы скорее смех (и неудобство), чем радость. Представьте себе: вместо изолированного результата — Конечно! Вот ваш текст...
в начале ячейки и Если нужно, могу доработать...
в конце... Да ну!
Как бороться? Очень просто — нужно заранее уточнить, что вас интересует только результат. Вот правило, которое вы можете прикрепить к промпту:
Выведи только результат операции (без сообщений или комментариев для пользователя чат-бота).
3. Добавить что-нибудь ещё?
Ещё несколько полезных штук, которые можно включить в промпт. Как пример:
Выведи результат одной строкой, без переносов.
Выведи результат одним целым числом.
Если произошла ошибка (например, недостаточно исходных данных), выведи информацию в формате [ОШИБКА: <Информация об ошибке>].
Для максимального удобства заготовьте такие правила и храните их в отдельных ячейках. Вам останется лишь объединять их оператором &
с основным текстом промпта. Например:
=gpt("Здесь основной текст промпта..." & Char(10) & $A$1 & Char(10) & $B$1)
,
где в ячейках A1 и B1 хранятся дополнительные правила. Функция Char(10)
добавляет перенос строки.
Где можно отслеживать баланс
В процессе использования приложения бывает интересно посмотреть баланс, например чтобы понять, какая модель больше подходит. Это можно сделать в двух местах:
Страница для разработчиков (да, та самая, откуда мы копировали API‑ключ).
Я увидел очень интересный сгенерированный результат. Как мне сохранить его?
Бывает же так, что результат просто вызывает восторг — отличный текст или описание... И конечно, вы не хотите потерять его в недрах таблицы.
Чтобы сохранить важные сгенерированные данные, просто скачайте файл в одном из популярных форматов. Это делается через Файл → Скачать → …:
Формат PDF (.pdf);
Веб‑страница (.html);
Формат TSV (.tsv).
PDF идеален для печати, а также чтения с экрана. Формат HTML легко просматривать на компьютере и редактировать. А TSV — минималистичная находка для разработчиков, такой файл проще всего обработать с помощью скриптов или встроить в рабочий процесс.
Напоследок... ??
Признаюсь, что тестировать это приложение безумно интересно. Я многие годы применяю в работе Excel, а еще чаще Google Sheets и даже никогда не задумывался, что появится функция, которая позволит писать внутрь формулы... буквально всё что угодно. И процесс ощущается настолько простым, что кажется, будто был здесь всегда.
Последующий важный этап для каждого из нас — внедрить конкретные сценарии работы с приложением BotHub в свой табличный воркфлоу, чтобы автоматизировать рутину.
Если у вас возникли вопросы или идеи — обязательно пишите в комментариях! Кто знает, возможно, ваша идея станет следующим шагом в развитии приложения. Удачи вам и пусть ваши таблицы всегда будут умнее!